| Autor | 
Beitrag | 
 
Kralle 
        
 
Beiträge: 65 
 
Windows XP,Win7 
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus 
 | 
Verfasst: Do 21.07.11 21:47 
 
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 
 
 | 
 
 |  
Luckie 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Do 21.07.11 22:02 
 
 Für diesen Beitrag haben gedankt: Kralle
 | 
 
 |  
BenBE 
        
 
Beiträge: 8721 
Erhaltene Danke: 191 
 
Win95, Win98SE, Win2K, WinXP 
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0 
 | 
Verfasst: Do 21.07.11 22:23 
 
		                                                          Delphi-Quelltext                                	 															1:
  				 | 									Pos(',1,', ','+SuchString+',');									 | 			 		 	   
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
 Ich code EdgeMonkey - In dubio pro Setting. 
 
 Für diesen Beitrag haben gedankt: Kralle
 | 
 
 |  
Kralle   
        
 
Beiträge: 65 
 
Windows XP,Win7 
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus 
 | 
Verfasst: 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 
        
 
Beiträge: 8550 
Erhaltene Danke: 478 
 
Windows 7, Windows 10 
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE 
 | 
Verfasst: 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;					 				 | 			 		 	   
_________________ We are, we were and will not be.
  
 Für diesen Beitrag haben gedankt: Kralle
 | 
 
 |  
HenryHux 
        
 
Beiträge: 542 
Erhaltene Danke: 33 
 
Windows 7 Premium 
Delphi XE, Eclipse 
 | 
Verfasst: Fr 22.07.11 07:33 
 
Wieso holst du dir nicht das Pos Ergebnis und überprüfst dann pos-1 und pos+1?
 
 lg 
 
 Für diesen Beitrag haben gedankt: Kralle
 | 
 
 |  
Kralle   
        
 
Beiträge: 65 
 
Windows XP,Win7 
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus 
 | 
Verfasst: 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   
        
 
Beiträge: 65 
 
Windows XP,Win7 
Delphi 6, Turbo Delphi Pro, Delphi 7 Enterprise, Delphi XE2 Lazarus 
 | 
Verfasst: 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 
        
 
Beiträge: 8550 
Erhaltene Danke: 478 
 
Windows 7, Windows 10 
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE 
 | 
Verfasst: 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.  
_________________ We are, we were and will not be.
  
 Für diesen Beitrag haben gedankt: Kralle
 | 
 
 |  
Horschdware 
        
 
Beiträge: 744 
Erhaltene Danke: 54 
 
Win XP Pro, Win 7 Pro x64 
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3 
 | 
Verfasst: Fr 22.07.11 10:27 
 
Eigentlich ist das ja ein tolles Beispiel für die Anwendung regulärer Ausdrücke.
 		                                                          Delphi-Quelltext                                	 	 
 würde mir da spontan in den Sinn kommen.  
_________________ Delphi: XE -  OS: Windows 7 Professional x64
 
 Für diesen Beitrag haben gedankt: Kralle
 | 
 
 |  
 
 
 |