// Get the number of rows, Anzahl der Zeilen ermitteln CountLines := Les_Strings.Count + SG.FixedRows;
// Get the number of columns, Anzahl der Spalten ermitteln T := Les_Strings[0]; for i := 0 to Length(T) - 1 do Inc(CountCols, Ord(IsDelimiter(FieldSeparator, T, i)));
Inc(CountCols, 1 + SG.FixedCols);
// Adjust Grid dimensions, Anpassung der Grid-Größe if CountLines > SG.RowCount then SG.RowCount := CountLines; if CountCols > SG.ColCount then SG.ColCount := CountCols;
// Iterate through all rows of the table
// Schleife durch allen Zeilen der Tabelle for i := 0 to Les_Strings.Count - 1 do
begin Colonne := InitialCol;
Inc(Ligne);
StartPos := 1;
S := Les_Strings[i];
TabPos := Pos(FieldSeparator, S); repeat Inc(Colonne);
SG.Cells[Colonne, Ligne] := Copy(S, StartPos, TabPos - 1);
S := Copy(S, TabPos + 1, 999);
TabPos := Pos(FieldSeparator, S); until TabPos = 0; end; finally Les_Strings.Free; end; end;
// Example, Beispiel:
procedure TForm1.Button1Click(Sender: TObject); begin Screen.Cursor := crHourGlass; // Open tab-delimited files ReadTabFile('C:\TEST.TXT', #9, StringGrid1);
Screen.Cursor := crDefault; end;