Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - string durchsuchen nach position [gelöst]


kostenix - Mo 24.05.04 12:01
Titel: string durchsuchen nach position [gelöst]
hallo,

gibt es eine möglichkeit einen string nach zb '12345' an einer bestimmten position zu durchsuchen?

if POS('12345', Textzeile) > 0 then begin....

das geht auch aber es liefert alle strings zurück die den suchstring irgendwo enthalten und nicht nur da wo ich eigentlich suchen will...

mein 12345 steht an position 129-133 des strings...


bin für jede hilfe dankbar


FaTaLGuiLLoTiNe - Mo 24.05.04 12:04

Da Pos ja den Index des ersten Zeichens des gesuchten Begriffs zurückgibt, sollte folgendes funktionieren:


Delphi-Quelltext
1:
2:
If Pos('12345', Textzeile) = ErwartetePosition
 then ...


FaTaLGuiLLoTiNe - Mo 24.05.04 12:06

Hmm, das klappt natürlich nicht wenn '12345' schon vorher einmal im Text vorkommt, da Pos nur das erste Vorkommen des Suchbegriffs ermittelt. Ansonsten geht es natürlich mit Copy:


Delphi-Quelltext
1:
2:
If Copy(Textzeile, ErwartetePosition, 5) = '12345'
 then ...


kostenix - Mo 24.05.04 12:18

wie würde der quellcode aussehen wenn ich diese '12345' nur an der stelle 129 bis 133 erwarte?

1 = zeichenposition im string: 129
2 = zeichenposition im string: 130
3 = zeichenposition im string: 131
4 = zeichenposition im string: 132
5 = zeichenposition im string: 133

diese zeichen positionen müssen so belegt sein, dann ist es true...

meine zeilen werden in einer for schleife einzeln geladen und dann durchsucht....


MartinPb - Mo 24.05.04 12:21


Delphi-Quelltext
1:
if POS('12345', Textzeile) = 129 then begin....                    


kostenix - Mo 24.05.04 12:27

super! funktioniert!

danke schön


IngoD7 - Mo 24.05.04 12:52
Titel: Re: string durchsuchen nach position
kostenix hat folgendes geschrieben:
hallo,

gibt es eine möglichkeit einen string nach zb '12345' an einer bestimmten position zu durchsuchen?


Ja, mit PosEx.