Entwickler-Ecke

Sonstiges (Delphi) - Wie zerschneide ich einen String?


Gosa - Do 26.02.04 04:03
Titel: Wie zerschneide ich einen String?
Mal wieder eine Frage :?

Wie kann ich einen String zerschneider der z.B. so aussieht: Hallo0046720012

Ich hätte das gerne so das ich danach in einer variablen nur die Zahlen und in der anderen nur die Zeichen habe. Dabei ist aber das Problem das die Worte die vor den Zahlen stehen unterschiedlich lang sind.

Danke schonmal im vorraus!


Delete - Do 26.02.04 06:23

Such dir mit pos die erste Ziffer oder geh den String in einer Schleife Zeichen für Zeichen durch und kuck, ob es eine Ziffer ist, wenn gefunden, Schleifenzähler merken und dann mit copy die gewünschten Zeichen rauskopieren.


MaxiTB - Do 26.02.04 10:07

::Luckie

Erweiterte Frage zu dem Thema (Zerschneiden):

Strings kopieren ist ja nicht immer wirklich das schnellste. Da ich aus der C-Ecke komme, bin ich sehr komfortable (und vor allem schnelle) String-Manipultionsfunktionen gewohnt. Wenn ich z.B. einen String abscheiden will, dann sag ich nur:


Quelltext
1:
2:
3:
4:
lHelp[llPosition]=0;

Values: lHelp="Maxi"; lPosition=2
Result: "Ma"


da alle Strings ja ASCIIZ/UNIZ sind, also Null-terminiert. Weiters bekomme ich ja per


Quelltext
1:
2:
3:
4:
lResult=lHelp+lPosition;

Values: lHelp="Maxi"; lPosition=2
Result: "xi"


sehr schnell einen Teilstring ... alle Operationen sind keine Kopieroperationen (welche man eigentlich selten braucht) und sehr schnell (genaugenommen 2 und 4 Taktzyklen).

Gibts da eigentlich auch entsprechend schnelle String-Routinen in Delphi ?