![]() |
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?? |
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:
... ist nicht getestet!
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 zeile ein string??
Delphi-Quellcode:
Wenn ja
Readln(ein_datei, zeile);
Fehlermeldung Inkompatible Typen: 'Char' und 'String' :?: |
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. |
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 |
Habs gelöst.
Danke an alle für die Hilfe :firejump: :dancer: :dancer2: :bounce2: :bouncing4: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz