Veröffentlicht am :
Makro CREATION_INTERNE

Dienstprogramm-Makro _PAD für Textauffüllung

Dieser Code ist auch verfügbar auf: Français English Español
Das Makro _PAD akzeptiert ein Positionsargument (ARG1), das das Zeichen oder die Zeichenkette definiert, das/die zum Auffüllen verwendet werden soll. Ein optionaler benannter Parameter, LS, ermöglicht die Angabe der gewünschten Gesamtlänge für die Ausgabestrings. Wenn ARG1 leer ist, verwendet das Makro '20' als Standardauffüllzeichenkette und ein 'X' als speziellen Indikator, was die Berechnung der Auffülllänge ändert (sie wird halbiert). Das Makro konstruiert die Ausgabestring, indem es das Auffüllmuster wiederholt, bis die Länge LS erreicht oder überschritten wird, und gibt dann die resultierende Zeichenkette zurück, möglicherweise gefolgt von einem Sonderzeichen. Das Ergebnis wird in doppelten Anführungszeichen zurückgegeben.
Datenanalyse

Type : CREATION_INTERNE


Das Makro verarbeitet keine externen Daten. Es generiert intern eine Zeichenkette basierend auf den Eingabeparametern, hauptsächlich für Anzeige- oder Textformatierungszwecke.

1 Codeblock
MACRO _PAD
Erklärung :
Dieser Codeblock definiert das Makro _PAD. Es beginnt mit der Deklaration lokaler Makrovariablen (i, x, return). Das Makro bewertet die Länge des Parameters 'pad'. Wenn 'pad' angegeben ist, versucht es, einen zweiten Teil (für 'x') zu extrahieren und verwendet den ersten Teil als 'pad'. Wenn 'pad' leer ist, verwendet es '20' als Standardwert für 'pad' und 'X' für 'x'. Anschließend wird die Länge von 'pad' in 'i' neu berechnet. Wenn 'x' 'X' ist, wird die Länge 'i' halbiert. Eine `%do`-Schleife verkettet die Zeichenkette 'pad' wiederholt mit der Variablen 'return', inkrementiert um die Länge 'i', bis die Länge 'ls' erreicht oder überschritten wird. Schließlich gibt es die konstruierte Zeichenkette 'return' zurück, die von doppelten Anführungszeichen umgeben ist und möglicherweise von dem Zeichen 'x' gefolgt wird.
Kopiert!
1%macro _pad(arg1, pad=&arg1, ls=%_ls);
2 
3%IF %eval(&ls)>0 %THEN %DO;
4 %local i x return;
5 
6 %let i=%LENGTH(&pad);
7
8 %IF &i %THEN %DO;
9 %let x=%upcase(%scan(&pad, 2, ''""));
10 %let pad=%scan(&pad, 1, ''"");
11 %END;
12 %ELSE %DO;
13 %let pad=20;
14 %let x=X;
15 %END;
16 
17 %let i=%LENGTH(&pad);
18
19 %IF &x=X %THEN %let i=%eval(&i/2);
20
21 %DO i=1 %to &ls %BY &i;
22 %let return=&return.&pad;
23 %END;
24
25 "&return"&x
26%END;
27 
28%mend _pad;
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.
Urheberrechtsinformationen : Copyright (c) 2001-2004 Rodney Sparapani. Verteilt unter den Bedingungen der GNU General Public License Version 2 oder höher.