Entwickler-Ecke

Sonstiges (Delphi) - Pos


Muck22 - Mi 08.03.06 18:45
Titel: Pos

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button4Click(Sender: TObject);
var Zeile:String;
var x:Integer;
begin
  s:=TStringList.Create; //StringListe erzeugen
  s.LoadFromFile('C:\daten.txt'); //aus der Datei einlesen
  Zeile:=s.Strings[0];
   x:=Pos(',',Zeile);

  showmessage(IntToStr(x));

end;


Damit kann ich mir ja die Position des ersten Kommas anzeigen lassen!
Der String sieht ungefähr so aus:

Hans,Mustermann,Musterstrasse,usw,usw

Ergebnis wäre dann ja 5.
Wie komm ich an die Position des zweiten Kommas ran???? :-)
(Und wie kann ich den Code oben im Forum vernünftig dargestellt erscheinen lassen?) :-)

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Christian S. - Mi 08.03.06 18:53

Hallo!

Schau Dir mal die Funktion "PosEx" an. Damit kannst Du IIRC das bewerkstelligen, was Du machen willst.

Wie Du Code hier im Forum richtig darstellst, verrät Dir die Hilfe [http://www.delphi-forum.de/help_schreiben_bbcodes_source.html&sub=,19,27,32] ;-)

Grüße
Christian


DarkLord05 - Mi 08.03.06 18:54

Den Code kannste richtig machen (ist zwar nu schon, aber für die Zukunft) über "Bereiche" und dann Delphi.

Also wenn du einen string teilen willst der so aussieht, dann würd ich dir emfehlen das so zu machen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var x, y : String;
    i : Intger;
begin
x := Hans,Mustermann,Musterstrasse,usw,usw
i := Pos (x);
y := Copy (x, 0, i-1);


Und dann löschst du den teil bis zum 1. Komma. Das inner schleife bis kein "," mehr da ist, und dann passt das.^^

//EDIT...zu spät und...das kannte ich gar net^^ Danke Christian.


Muck22 - Mi 08.03.06 18:56


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button4Click(Sender: TObject);
var Zeile:String;
var x,y:Integer;
begin
  s:=TStringList.Create; //StringListe erzeugen
  s.LoadFromFile('C:\daten.txt'); //aus der Datei einlesen
  Zeile:=s.Strings[1];
   x:=Pos(',',Zeile);
   y:=x+Pos(',',Zeile);
  showmessage(IntToStr(y));

end;


Danke ich hab es ein wenig uneleganter gelöst! :-)


Muck22 - Mi 08.03.06 19:11


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button4Click(Sender: TObject);
 var x,y:String;
 i,n:Integer;
begin
  s:=TStringList.Create; //StringListe erzeugen
  s.LoadFromFile('C:\daten.txt'); //aus der Datei einlesen
  x:=s.Strings[0];
  i:=Pos(',',x);
  n:=i+Pos(',',x);
  y:=Copy(x, 0, n-2);
  showmessage(y);

end;


Für meine Zwecke sieht das dann so aus!

Vielen Dank für Eure Hilfe! :-)