Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - pos für genaues Suchen und Finden
Kralle - Do 21.07.11 22:47
Titel: pos für genaues Suchen und Finden
Hallo,
pos('1','"1,2,3"') >0 ist true genauso wie pos('1','"11,2,3"'), denn 11 enthält ja auch eine 1.
Gibt es eine Pascal bzw Delphi-Funktion für die 1 <> 11 ist?
Gruß Heiko
Delete - Do 21.07.11 23:02
Nicht das sich wüsste.
BenBE - Do 21.07.11 23:23
Delphi-Quelltext
1:
| Pos(',1,', ','+SuchString+','); |
Kralle - Fr 22.07.11 06:56
Moin,
BenBE hat folgendes geschrieben : |
Delphi-Quelltext 1:
| Pos(',1,', ','+SuchString+','); | |
das funktioniert aber nicht für die erste und letzte Zahl, weil der Suchstring
ist und so die erste Abfrage so aussieht
pos(',1,',',"11,2,3",') und ,1, nicht ,"1, ist.
Ich weiß ich habe in meinem Beispiel Zahlen benutzt, aber auch bei Texten gebe es das Problem.
Z.B.
pos(',ab,',',"ab,und,zu",')
Gruß Heiko
Gausi - Fr 22.07.11 07:44
Spiel mal ein bißchen mit TStringlist und deren Eigenschaft CommaText rum, z.B. so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| sl := TStringList.Create; try sl.CommaText := DeinStringMitKommasDrin; for i := 0 to sl.Count-1 do if sl[i] = SuchString then begin showMessage('Suchstring gefunden'); break; end; finally sl.free; end; |
HenryHux - Fr 22.07.11 08:33
Wieso holst du dir nicht das Pos Ergebnis und überprüfst dann pos-1 und pos+1?
lg
Kralle - Fr 22.07.11 09:31
Hallo,
HenryHux hat folgendes geschrieben : |
Wieso holst du dir nicht das Pos Ergebnis und überprüfst dann pos-1 und pos+1?
lg |
An so einer Lösung war ich jetzt grade am basteln (hätte eine Funktion werden sollen).
Gruß Heiko
Kralle - Fr 22.07.11 09:35
Hallo Gausi,
Gausi hat folgendes geschrieben : |
Spiel mal ein bißchen mit TStringlist und deren Eigenschaft CommaText rum, z.B. so:
|
Ehrlich gesagt, war mir "CommaText" kein Begriff.
Ich habe jetzt Deine Lösung etwas überarbeitet:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| function cpos(searchstring,text:string):integer; var i: integer; tmplist: TStringList; begin tmplist := TStringList.Create; try tmplist.CommaText := text; i:=0; while i < tmplist.Count do begin if tmplist[i] = searchstring then Begin Result:=i+1; i:= tmplist.Count; End else Result:=-1; inc(i); end; finally tmplist.free; end; end; |
Danke, für den Schubs in die richtige Richtung.
Gruß Heiko
P.S. Unter Deinem Namen steht: "Erhaltene Danke:", wie "Bedankt" man sich? Sehe keinen Button dafür.
Gausi - Fr 22.07.11 09:49
Oh, da ist wohl jemand absolut gegen Breaks, was? ;-)
Der Danke-Button ist der Button mit dem Daumen-Hoch-Smilie links unten an jedem Beitrag.
Horschdware - Fr 22.07.11 11:27
Eigentlich ist das ja ein tolles Beispiel für die Anwendung regulärer Ausdrücke.
würde mir da spontan in den Sinn kommen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!