![]() |
textdatei mit mehren zeilen pro datensatz speichern??
wie kann ich eine textdatei mit folgendem inhalt in ein dbgrid speichern?
wobei zwischen anfang und ende immer ein datensatz mit 3 feldern besteht. es sollen natürlich nur die daten zwischen den " " übernommen werden. -inhalt textdatei- anfang Vorname "Thorsten" Nachname "Meyer" Strasse "Hauptstrasse" ende anfang Vorname "Sven" Nachname "Schmidt" Strasse "Schulstrasse" ende anfang Vorname "Heinrich" Nachname "Schröder" Strasse "Rosenweg" ende ... usw |
AW: textdatei mit mehren zeilen pro datensatz speichern??
Du könntest die Datei in eine Stringlist laden und diese Zeile für Zeile durchgehen und die Daten speichern. Anfang und Ende eines Datensatzes sollten ja leicht zu indetifizieren sein :-)
Aber willst du sie in wirklich ein DBGrid speichern oder meinst du in die dahinter stehende Datenquelle? Oder willst du sie nur in einem Grid anzeigen, dann wäre evtl. ein StringGrid oder sowas besser geeignet. |
AW: textdatei mit mehren zeilen pro datensatz speichern??
Delphi-Quellcode:
Procedure TRimList(sl:TStringList);
begin sl.Delete(0); sl.Delete(sl.Count-1); sl.text := StringReplace(sl.text,'ende'#13#10'anfang','',[rfReplaceAll]); sl.text := StringReplace(sl.text,' "','=',[rfReplaceAll]); sl.text := StringReplace(sl.text,'"'#13#10,';',[rfreplaceAll]); end; procedure TForm5.Button1Click(Sender: TObject); var sl,sl2:TStringList; i:Integer; begin sl :=TStringList.create; sl2:=TStringList.Create; sl2.Delimiter :=';'; sl2.StrictDelimiter := true; try sl.assign(memo1.Lines); TRimList(sl); for I := 0 to sl.Count -1 do begin sl2.DelimitedText := sl[i]; // hier dann Dein eigentlicher Edit/InserCode Showmessage(sl2.Values['Vorname'] +'-' + sl2.Values['Nachname'] + '-'+ sl2.Values['Strasse']) end; finally sl.Free; sl2.free; end; end; |
AW: textdatei mit mehren zeilen pro datensatz speichern??
mit dem dbgrid war nur ein beispiel. soll in einer datenquelle gespeichert werden.
mein altes delphi7 kennt "StrictDelimiter" leider nicht :( |
AW: textdatei mit mehren zeilen pro datensatz speichern??
Zitat:
|
AW: textdatei mit mehren zeilen pro datensatz speichern??
Aber nur, solange die Daten keine Leerzeichen enthalten.
|
AW: textdatei mit mehren zeilen pro datensatz speichern??
im Zweifelsfalle so ...
Delphi-Quellcode:
begin
sl :=TStringList.create; sl2:=TStringList.Create; try sl.assign(memo1.Lines); TRimList(sl); for I := 0 to sl.Count -1 do begin sl2.Text := StringReplace(sl[i],';',#13#10,[rfReplaceAll]); // hier dann Dein eigentlicher Edit/InserCode Showmessage(sl2.Values['Vorname'] +'-' + sl2.Values['Nachname'] + '-'+ sl2.Values['Strasse']) end; finally sl.Free; sl2.free; end; end; |
AW: textdatei mit mehren zeilen pro datensatz speichern??
ansich funktioniert das so schon ganz gut. nur leider hat DeddyH recht mit den leerzeichen.
die quelle hat leider welche und so klappts dann leider nicht. hab anfangs leider die datei hier nicht richtig dargestellt -inhalt textdatei- anfang Vorname "Thorsten " Nachname "Meyer " Strasse "Hauptstrasse " ende anfang Vorname "Sven " Nachname "Schmidt " Strasse "Schulstrasse " ende anfang Vorname "Heinrich " Nachname "Schröder " Strasse "Rosenweg " ende |
AW: textdatei mit mehren zeilen pro datensatz speichern??
nimm Posting #7 mit einem Trim()
|
AW: textdatei mit mehren zeilen pro datensatz speichern??
Man könnte die Blanks, falls sie erhalten bleiben sollen, ja auch auch durch ein anderes Zeichen ersetzen, z.B. das Pipe-Zeichen.
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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