Gliedern()

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

Johnny R
Posts: 348
Joined: 03 Oct 2013, 02:07

Gliedern()

Post by Johnny R » 07 May 2023, 06:25

Ein kleines Tool, das ich mir geschrieben habe, um ungegliederte SEPA-Kontonamen (oder auch andere ungegliederte Strings wie Telefonnummern etc.) richtig vierstellig (oder auch mit anderen Stellenzahlen) zu gliedern:

Code: Select all

SEPA := "DE85500502011453146434"
Msgbox % Gliedern(SEPA)
Return

Gliedern(x, Stellen=4) {
   x := StrReplace(x, A_Space) ; Entfernt Leerzeichen
   RückG := ""
   Start := 1
   Loop {
      Zwi := SubStr(x, Start, Stellen)
      RückG := RückG . Zwi . " "
      Start := Start+Stellen
   } Until StrLen(Zwi)=0
   RückG := TRIM(RückG)
   Return RückG
}

garry
Posts: 3771
Joined: 22 Dec 2013, 12:50

Re: Gliedern()

Post by garry » 07 May 2023, 08:15

@Johnny R danke , hier noch ein altes Beispiel

Code: Select all

#Warn
e:=""
SEPA := "DE85500502011453146434"
loop,parse,sepa
 {
 IF !Mod(a_index, 4)
   e .= a_loopfield . " "
 else
   e .= a_loopfield
 }
e=%e% 
msgbox,"%e%"

halweg
Posts: 93
Joined: 17 Apr 2018, 10:34
Location: Dresden

Re: Gliedern()

Post by halweg » 08 May 2023, 03:06

Bitte seht es mir nach, aber ich mag Programmierübungen.
Und ja, das Gliedern der langen Zahlenfolge ruft förmlich nach RegExReplace...

Code: Select all

sepa=DE85500502011453146434
MSGBOX, % REGEXREPLACE(sepa,"(.{4})","$1 ")
RETURN

Johnny R
Posts: 348
Joined: 03 Oct 2013, 02:07

Re: Gliedern()

Post by Johnny R » 08 May 2023, 07:34

Hallo @halweg, wenn jemals der unwahrscheinliche Fall einträte, dass ich Regex verstünde, könnte ich das auch. :D Bis dahin muß ich mich wohl weiterhin mit allen möglichen Umwegen abmühen. Danke für Deine kleine Präsentation, wie einfach alles wäre, wenn man genügend Geist mitbrächte... :(

halweg
Posts: 93
Joined: 17 Apr 2018, 10:34
Location: Dresden

Re: Gliedern()

Post by halweg » 08 May 2023, 08:38

Johnny, das kann ich gut verstehen. Im Unterschied zu "normalem" Programmcode mit Kommentaren und sprechenden Variablennamen sind reguläre Ausdrücke für mich eher so was wie Maschinencode. In meinen Programmen schreibe ich deshalb oft unter jede RegEx-Zeile mehrere Kommentarzeilen, um jedes Element des Ausdrucks zu erläutern. Damit ich nach 1/2 Jahr noch weiß, was ich da getan habe.

gero
Posts: 171
Joined: 02 Oct 2013, 05:36

Re: Gliedern()

Post by gero » 11 May 2023, 06:38

Ich (RegEx-Legastheniker) gruppiere Kolonnen immer so:

Code: Select all

AutoTrim,on
sepa=DE85500502011453146434
MsgBox,% spaced_string(sepa,1,4)

spaced_string(a,b,c) {
Loop,% ceil(StrLen(a)/c) {
    x%a_Index% := substr(a,b,c) , b += c , z .= x%a_index% . " " 
    } z=%z%    
return z
}
gruss
gero

//1xedit

Post Reply

Return to “Skripte und Funktionen”