Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - pos für genaues Suchen und Finden
Kralle - Do 21.07.11 21: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 22:02
Nicht das sich wüsste.
BenBE - Do 21.07.11 22:23
            
Delphi-Quelltext    
                                        | 1:
 | Pos(',1,', ','+SuchString+',');                     | 
        
      
 
Kralle - Fr 22.07.11 05: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 06: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 07:33
Wieso holst du dir nicht das Pos Ergebnis und überprüfst dann pos-1 und pos+1?
lg
Kralle - Fr 22.07.11 08: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 08: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 08: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 10: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!