Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Txt datei in Paradox einlesen (https://www.delphipraxis.net/5293-txt-datei-paradox-einlesen.html)

Bedrock 3. Jun 2003 18:35

ok habe bis jetzt vollgendes

Delphi-Quellcode:
function Split(InStr, SplitAt: String): TStringArray;
var
  I, L: Integer;
begin
  SetLength(Result, 0);
  if InStr = '' then
    Exit;
  I := Pos(SplitAt, InStr);
  L := Length(SplitAt);
  while I > 0 do
  begin
    SetLength(Result, Succ(Length(Result)));
    Result[High(Result)] := Copy(InStr, 1, Pred(I));
    Delete(InStr, 1, Pred(I + L));
    I := Pos(SplitAt, InStr);

  end;

end;


procedure TForm2.Button1Click(Sender: TObject);
var  I: Integer;
  Strings: TStringArray;
    ein_datei:file of char;
begin
assignfile (ein_Datei, 'c:\sms\sat.txt');
reset (ein_datei);
begin
  { zeile einlesen }
  Strings := Split(zeile, Chr(9));
  if Length(Strings) > 0 then
    for I := Low(Strings) to High(Strings) do
      ShowMessage(Strings[I]);
  end;

Meine Frage nun

Wo liegen die Zeilen jetzt??
Ich vermute mal im strings:TStringsarray
Wie bekomm ich die Zeilen da wieder raus??
Wie kann ich diesen StringArray auslesen??

MrSpock 3. Jun 2003 19:05

Hallo Bedrock,

es die Zeilen sind leider verschwunden :shock: . Jede Zeile wird der Liste "strings" zugewiesen und hinterher wieder überschrieben. Du musst also das Ergebnis der Zerlegung erst wieder in die Tabelle schreiben:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var  I: Integer;
  Strings: TStringArray;
   ein_datei:file of char;
begin
  assignfile (ein_Datei, 'c:\sms\sat.txt');
  reset (ein_datei);
  while Not EOF(ein_datei) do
  begin
     Readln(ein_datei, zeile);
     Strings := Split(zeile, Chr(9));
     if Length(Strings) > 0 then
     begin
       myTable.Append;
       for I := Low(Strings) to High(Strings) do
         if I < myTable.FieldCount then
           myTable.Fields[I].AsString := Strings[I];
       myTable.Post;
     end
  end;
   CloseFile(ein_datei);
end;
... ist nicht getestet!

Bedrock 3. Jun 2003 19:30

ist zeile ein string??

Delphi-Quellcode:
Readln(ein_datei, zeile);
Wenn ja

Fehlermeldung
Inkompatible Typen: 'Char' und 'String'

:?:

MrSpock 3. Jun 2003 19:44

Hallo Bedrock,

ja, zeile ist ein String. Der Fehler liegt in der Deklaration von ein_datei. Diese muss als TextFile und nicht file of char deklariert werden.

Bedrock 3. Jun 2003 20:25

Ok sieht jetzt schon besser aus.

Noch zwei kleine Probleme.
Im DB Grid werden nur solange Daten eingefügt wie das feld groß ist.
Es wird immer nur eine Spalte geschrieben.
bei mir in diesem fall immer nur T (Siehe Auschnitt Text Datei weiter oben)

Tabelle wird nicht gespeichert??

Aber im großen und ganzen schon nicht schlecht :bounce2:

Mercy

Bedrock 3. Jun 2003 22:26

Habs gelöst.

Danke an alle für die Hilfe

:firejump: :dancer: :dancer2: :bounce2: :bouncing4:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 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