Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fremdes Datenformat einfach lesen in Delphi (https://www.delphipraxis.net/69489-fremdes-datenformat-einfach-lesen-delphi.html)

Klaus01 27. Mai 2006 14:37

Re: Fremdes Datenformat einfach lesen in Delphi
 
Ich dachte auch eher an die Zeilenlänge, also die Anzahl an Zeichen pro Zeile.

Das ist bei der Datei wohl nicht der Fall.
Da wirst Du wohl bei Readln bleiben müssen.

Mußt Du denn ein und dieselbe Datei öfter einlesen?
Wenn ja, kannst Du Sie ja in eine datensatzorientierte Datei umwandeln.

Grüße
Klaus

marabu 27. Mai 2006 16:14

Re: Fremdes Datenformat einfach lesen in Delphi
 
Hallo Ronny,

hier ein kleines Code-Fragment für dich - vielleicht zeigt es dir den Weg zu einer etwas professionelleren Lösung. Die Daten würde ich aber in einem Konsolprogramm verarbeiten. Plausibilitätskontrollen und Behandlung von Datenfehlern habe ich weggelassen, damit man den eigentlichen Ansatz besser erkennt.

Delphi-Quellcode:
procedure TDemoForm.ProcessLine(groupCode: Char; index: Integer; line: String);
var
  iRow: Integer;
begin
  case groupCode of
    'K': ProcessK(index, line);
    'F': ProcessF(index, line);
    'D': ProcessD(index, line);
    'U': ProcessD(index, line);
    'I': ProcessD(index, line);
    else LogError();
  end;

{ === nur zum Testen ===
  with StringGrid do
  begin
    iRow := RowCount;
    RowCount := RowCount + 1;
    FixedRows := 1;
    Cells[0, iRow] := groupCode;
    Cells[1, iRow] := IntToStr(index);
    Cells[2, iRow] := line;
  end;
  === }
end;

procedure TDemoForm.ProcessActionExecute(Sender: TObject);
var
  tf: TextFile;
  index: Integer;  // record index
  sIndex: String[2];
  s: String;
  sGroup: String[1];
begin
  sGroup := ' ';
  AssignFile(tf, ParamStr(1));
  Reset(tf);
  while not Eof(tf) do
  begin
    ReadLn(tf, sIndex, s);
    index := StrToInt(sIndex);
    if index = 0
      then sGroup := Copy(s + ' ', 1, 1)
      else ProcessLine(sGroup[1], index, s);
  end;
  CloseFile(tf);
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz