Extrahieren des Basispfads einer Datei

Dieser Code ist auch verfügbar auf: English Español Français
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
Dieses Makro nimmt einen vollständigen Dateipfad als Eingabe über den Parameter 'pth' und gibt nur den Teil des Pfades zurück, der dem letzten Verzeichnistrennzeichen (Schrägstrich oder umgekehrter Schrägstrich) vorausgeht, wodurch der Dateiname und seine Erweiterung ausgeschlossen werden. Es ist für die Manipulation von Zeichenketten innerhalb der SAS©-Makroumgebung konzipiert.
Datenanalyse

Type : CREATION_INTERNE


Das Makro operiert auf einer als Parameter ('pth') übergebenen Zeichenkette und liest keine Daten aus SASHELP-Tabellen oder externen Quellen. Es manipuliert Zeichenketten im Speicher, um das Ergebnis zu konstruieren.

1 Codeblock
MACRO DÉFINITION
Erklärung :
Dieser Block definiert das Makro `getFileStem`. Es verwendet die SAS-Funktionen `reverse`, um die Pfadzeichenkette umzukehren, `indexc`, um die Position des ersten Verzeichnistrennzeichens (Schrägstrich oder umgekehrter Schrägstrich, der dem letzten in der ursprünglich umgekehrten Zeichenkette entspricht) zu finden, und `qsubstr`, um den relevanten Teil zu extrahieren. Das Ergebnis wird dann erneut umgekehrt, um den Basispfad zu erhalten. Die Funktionen `qleft` und `qsysfunc` werden verwendet, um Anführungszeichen zu handhaben und SAS-Funktionen im Makromodus auszuführen, was die Robustheit der Zeichenkettenverarbeitung gewährleistet.
Kopiert!
1%macro getFileStem(pth)/des="Extract the path without the file name and extension";
2 %local revstr cutstr gotstm;
3 %let revstr=%qleft(%qsysfunc(reverse(&pth)));
4 %let cutstr=%qsubstr(&revstr,%qsysfunc(indexc(&revstr,%str(/\))));
5 %let gotstm=%qleft(%qsysfunc(reverse(&cutstr)));
6 %str(&gotstm)
7%mend getFileStem;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.

Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.