AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi textdatei mit mehren zeilen pro datensatz speichern??
Thema durchsuchen
Ansicht
Themen-Optionen

textdatei mit mehren zeilen pro datensatz speichern??

Ein Thema von CVi · begonnen am 6. Jun 2012 · letzter Beitrag vom 6. Jun 2012
Antwort Antwort
Seite 1 von 2  1 2      
CVi

Registriert seit: 21. Nov 2010
15 Beiträge
 
#1

textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 13:59
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
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 14:15
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.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 14:19
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
CVi

Registriert seit: 21. Nov 2010
15 Beiträge
 
#4

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 14:58
mit dem dbgrid war nur ein beispiel. soll in einer datenquelle gespeichert werden.

mein altes delphi7 kennt "StrictDelimiter" leider nicht
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 15:05
Zitat:
mein altes delphi7 kennt "StrictDelimiter" leider nicht
geht auch ohne...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 15:11
Aber nur, solange die Daten keine Leerzeichen enthalten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 15:23
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
CVi

Registriert seit: 21. Nov 2010
15 Beiträge
 
#8

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 16:02
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
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 16:19
nimm Posting #7 mit einem Trim()
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: textdatei mit mehren zeilen pro datensatz speichern??

  Alt 6. Jun 2012, 16:23
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr.
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