Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
Re: Datei in Stringgrid einlesen
8. Dez 2003, 18:13
Also noch ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,
Delphi-Quellcode:
Uses Types;
Function Explode(Const Separator, S: String; Limit: Integer = 0): TStringDynArray;
Var SepLen: Integer;
F, P: PChar;
ALen, Index: Integer;
Begin
SetLength(Result, 0);
If (S = '') or (Limit < 0) Then Exit;
If Separator = '' Then Begin
SetLength(Result, 1);
Result[0] := S;
Exit;
End;
SepLen := Length(Separator);
ALen := Limit;
SetLength(Result, ALen);
Index := 0;
P := PChar(S);
While P^ <> #0 do Begin
F := P;
P := AnsiStrPos(P, PChar(Separator));
If (P = nil) or ((Limit > 0) and (Index = Limit - 1)) Then P := StrEnd(F);
If Index >= ALen Then Begin
Inc(ALen, 5);
SetLength(Result, ALen);
End;
SetString(Result[Index], F, P - F);
Inc(Index);
If P^ <> #0 Then Inc(P, SepLen);
End;
If Index < ALen Then SetLength(Result, Index);
End;
Procedure TForm1.btStartClick(Sender: TObject);
Var f: TextFile;
Zeile, I: Integer;
ZeileS: String;
ZeileA: TStringDynArray;
Begin
OpenDialog1.Execute;
Zeile := 0;
StringGrid1.RowCount := StringGrid1.FixedRows + 1;
StringGrid1.ColCount := StringGrid1.FixedCols + 1;
StringGrid1.Cells[StringGrid1.FixedCols, StringGrid1.FixedRows] := '';
AssignFile(f, OpenDialog1.FileName);
Reset(f);
While not EoF(f) do Begin
ReadLn(f, ZeileS);
ZeileA := Explode('.', ZeileS);
Inc(Zeile);
StringGrid1.RowCount := StringGrid1.FixedRows + Zeile;
If StringGrid1.ColCount < StringGrid1.FixedCols + Length(ZeileA) Then
StringGrid1.ColCount := StringGrid1.FixedCols + Length(ZeileA);
For I := 0 to Length(ZeileA) - 1 do
StringGrid1.Cells[StringGrid1.FixedCols + I, StringGrid1.FixedRows + Zeile - 1] := ZeileA[I];
End;
CloseFile(f);
End;
TStringDynArray ist in der Unit Types deklariert.
Fals die Unit Types nicht vorhanden ist, brauchst du nur diese Zeile Uses Types;
durch diese Type TStringDynArray = Array of String;
ersetzen.
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
$2B or not $2B
|
|
Zitat
|