Einzelnen Beitrag anzeigen

Budda

Registriert seit: 3. Sep 2003
96 Beiträge
 
Delphi 7 Professional
 
#4

Re: Textdatei in ein Stringgrid einlesen

  Alt 14. Jan 2005, 08:45
Hallo,

habe das einlesen nun mit folgender Procedure gelöst:
Code:
procedure ReadTabFile(FN: TFileName; FieldSeparator: Char; SG: TStringGrid);
var
  i: Integer;
  S: string;
  T: string;
  Colonne, ligne: Integer;
  Les_Strings: TStringList;
  CountCols: Integer;
  CountLines: Integer;
  TabPos: Integer;
  StartPos: Integer;
  InitialCol: Integer;
begin
  Les_Strings := TStringList.Create;
  try
    Les_Strings.LoadFromFile(FN);

    CountLines := Les_Strings.Count + SG.FixedRows;

    T := Les_Strings[0];
    for i := 0 to Length(T) - 1 do Inc(CountCols, Ord(IsDelimiter(FieldSeparator, T, i)));
    Inc(CountCols, 1 + SG.FixedCols);

    if CountLines > SG.RowCount then SG.RowCount := CountLines;
    if CountCols > SG.ColCount then SG.ColCount := CountCols;

    InitialCol := SG.FixedCols - 1;
    Ligne := SG.FixedRows - 1;

    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;
Die Textdatei hat das Semikolon als Trennzeichen, nun kommt es aber leider auch vor das in einem Feld Semikolons im Text sind, hier soll er dann natürlich nicht trennen. Kann man das irgendwie abfangen?


Gruß
Budda
  Mit Zitat antworten Zitat