Veröffentlicht am :
Makro CREATION_INTERNE

Suche nach dem zweiten Trennzeichen in einer Zeichenkette

Dieser Code ist auch verfügbar auf: English Español Français
Das Makro `AHGindex2` nimmt zwei Argumente: `str` (die zu analysierende Zeichenkette) und `dlm` (das zu suchende Trennzeichen). Es initialisiert eine Variable `result` mit 0 und durchläuft die Zeichenkette Zeichen für Zeichen. Es verwendet die lokalen Variablen `one`, um das erste Vorkommen des Trennzeichens zu markieren, und `result`, um den Index des zweiten Vorkommens zu speichern. Das Makro gibt den Index des zweiten Vorkommens des Trennzeichens zurück. Wenn das zweite Trennzeichen nicht gefunden wird oder es nur ein einziges Vorkommen gibt, wird 0 zurückgegeben.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt über die Makroparameter (`str` und `dlm`) bereitgestellt. Es wird keine externe Datei oder SAS-Bibliothek gelesen.

1 Codeblock
MACRO DEFINITION
Erklärung :
Dieser Block definiert das Makro `AHGindex2`. Es verwendet eine `%do`-Schleife, um die Zeichenkette `str` zu durchlaufen. Die Funktion `%qsubstr` wird verwendet, um ein Zeichen nach dem anderen zu extrahieren. Die Logik identifiziert das erste Vorkommen des Trennzeichens mithilfe der Variablen `one` und sucht, sobald es gefunden wurde, das zweite Vorkommen, indem dessen Index in `result` gespeichert wird.
Kopiert!
1%macro AHGindex2(str,dlm);
2%local i one RESULT;
3%let RESULT=0;
4%DO i=1 %to %LENGTH(&str);
5%IF %qsubstr(&str,&i,1) = &dlm and (&RESULT=0) and (&one=1) %THEN %let RESULT=&i;
6%IF %qsubstr(&str,&i,1) eq &dlm %THEN %let one=1;
7%END;
8&RESULT
9%mend;
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.