Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
31. Okt 2002, 18:07
Code:
[b]type[/b] TZeile = [b]array[/b] [b]of[/b] [b]string[/b];
[color=#000080][i]{ Zeile parsen }[/i][/color]
[b]function[/b] Parse(zeile: [b]string[/b];zeilennummer:longint ):TZeile;
[b]var[/b] i :longint;
anzahl:longint;
pos :[b]array[/b] [b]of[/b] integer;
[b]begin[/b]
anzahl:=0;
SetLength(pos,0);
SetLength(result, 0);
[b]for[/b] i := 1 [b]to[/b] Length(zeile) [b]do[/b]
[b]if[/b] zeile[ i ] = ';' [b]then[/b] // <-- ACHTUNG KORRIGIERT!!!
[b]begin[/b]
inc(anzahl);
SetLength(pos, anzahl);
pos[anzahl-1]:=i;
SetLength(result, anzahl);
[b]end[/b];
[b]for[/b] i:=0 [b]to[/b] high(result) [b]do[/b]
[b]begin[/b]
[b]if[/b] i=0 [b]then[/b]
result[i ]:=copy(zeile,1,pos[0]-1)
[b]else[/b]
result[i ]:=copy(zeile,pos[i-1]+1,pos[i ]-1-pos[i-1]); // <-- ACHTUNG KORRIGIERT!!!
[b]end[/b];
[color=#000080][i ]//if Length(result)=0 then Messagebox(0, '', 'Fehler', 0);[/i][/color]
[b]end[/b];
Und auf ruf mit:
Code:
[b]var[/b]
Zeile : TZeile;
[b]begin[/b]
Zeile := Parse(s, 0);
Auf die einzelnen Elemente kannst du dann mit den Index zugreifen. Das erste Element bekommst du dann mit Zeile[0].
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|