Um Teilstrings in einem String zu sortieren. Sollte angepaßt werden, wenn Leerzeichen unwichtig sind. Um damit Zahlen zu sortieren sollten Ganz-/Fließkommazahlen noch extra aufbereitet werden.
Code
' Teilstrings sortieren
' (in dieser Version ungeeignet für Zahlen; na ja, fast)
Proc Sort_StrPart
Parameters StrPart$, Trenner$
Declare Erg$, hListe&
If (Len(StrPart$) = 0) or (Len(Trenner$) = 0)
Erg$ = StrPart$
Else
hListe& = Create("List",1) 'sortierte Liste
ClearList 0 'lösche Listbox-Liste (LBL)
MoveStrToList(StrPart$, Trenner$) 'Teilstrings in LBL
MoveListToHandle(hListe&) 'in sortierte Liste
ClearList 0
MoveHandleToList(hListe&) 'zurück in LBL
Erg$ = MoveListToStr$(Trenner$)
ClearList 0 ' LBL sauber hinterlassen
DestroyWindow(hListe&)
Case Right$(Erg$,Len(Trenner$)) = Trenner$ : Erg$ = Left$(Erg$,Len(Erg$)-Len(Trenner$))
EndIf
Return Erg$
EndProc
cls
Print "Version:",$ProfVer;"\n"
Declare Test$
Test$ = "Delta,Bravo,Echo,Charlie,Fuchstritt,Alfa"
Print "alt:", Test$
Print "neu:", Sort_StrPart(Test$, ",");"\n"
Test$ = "037;081;019;007;012;024;080"
Print "alt:", Test$
Print "neu:", Sort_StrPart(Test$, ";");"\n"
Print "TASTE=Ende"
WaitKey
End
Alles anzeigen
Gruß
Michael Wodrich