Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Spaltenweises Lesen/Schreiben aus/in Text-Datei (https://www.delphipraxis.net/132836-spaltenweises-lesen-schreiben-aus-text-datei.html)

Socke_SG 20. Apr 2009 19:36


Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Hallo zusammen,

ich möchte eine Textdatei erstellen, die spalten enthält. Wie ich die Daten Spaltenweise in die Datei einfüge weiss ich, bzw. krieg ich ganz gut hin. Nur hab ich keinen Plan, wie ich das genau auslesen soll..

Kann mir da vielleicht jemand helfen?

mfg

mkinzler 20. Apr 2009 19:37

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Was meinst du mit Spaltenweise? Tabgetrennt? Zeig mal deinen Speichercode

Socke_SG 20. Apr 2009 19:41

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
naja ich habe genaugenommen eine Datei mit Datenpunkten, die durch ein Leerzeichen getrennt sind. In die Datei reinschreiben tu ich über:

Delphi-Quellcode:
writeln(myfile,FloatToStr(t)+' '+FloatToStr(a_apo)+' '+' '+FloatToStr(ecc)+' '+FloatToStr(semia)+' '+FloatToStr(vel)+' '+FloatToStr(distance)+' '+FloatToStr(r[0])+' '+FloatToStr(r[1])+' '+FloatToStr(r[2])+' '+FloatToStr(v[0])+' '+FloatToStr(v[1])+' '+FloatToStr(v[2])+' '+FloatToStr(p));
Kommt auch so raus wie ichs will. Aber weiss halt nicht wie ich das auslesen kann

himitsu 20. Apr 2009 19:43

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
kommt drauf an mit Read könnte man was machen

oder die ganze Zeile auslesen und dann mit Funktionen wie SplitString auftrennen.

Socke_SG 20. Apr 2009 19:45

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Hmm...okay. Hast du da mal nen Code zu zufällig. Weil hab mit SplitString noch nie gearbeitet

mkinzler 20. Apr 2009 19:54

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Am Einfachsten mit Hilfe von Stringlisten:

Delphi-Quellcode:
var
  sl, sl2: TStrings;
  s: string;
  i: Integer;
...
  sl := TStringList.Create();
  sl2 := TStringList.Create();
  sl2.Delimiter := ' ';
  sl.LoadFromFile(<Dateiname>);
  //Lese Datei Zeile für Zeile
  for i := 0 to sl.Count -1 do
  begin
      sl2.DelimitedText := sl[i];
      //Nun befinden sich die Spalten in sl2[0] bis sl2[<Anzahl Spalten -1>);
  end;

Socke_SG 20. Apr 2009 19:56

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Jo super. Ich probier das direkt mal aus

Socke_SG 20. Apr 2009 19:59

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Klappt! Aber wofür steht die Variable s

mkinzler 20. Apr 2009 20:04

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
Diese wird eigentlich nicht benötigt.

Zudem würde ich einen anderen Trenner verwenden und in diesem Fall noch
Delphi-Quellcode:
sl2.StrictDelimiter := True;
ergänzen

himitsu 20. Apr 2009 20:04

Re: Spaltenweises Lesen/Schreiben aus/in Text-Datei
 
versuch mal sowas: :gruebel:
Delphi-Quellcode:
//schreiben
WriteLn(myfile, t, a_apo, ecc, semia, vel, distance, r[0], r[1], r[2], v[0], v[1], v[2], p);

//lesen
ReadLn(myfile, t, a_apo, ecc, semia, vel, distance, r[0], r[1], r[2], v[0], v[1], v[2], p);

[add]
getestet und geht
Delphi-Quellcode:
var F: TextFile;
  r, r2, r3: Real;
begin
  r := 1.23; r2 := 54.6; r3 := 7.89;

  AssignFile(F, 'test.txt');
  Rewrite(F);
  WriteLn(F, r, r2, r3);
  CloseFile(F);

  r := 0; r2 := 0; r3 := 0;

  AssignFile(F, 'test.txt');
  Reset(F);
  ReadLn(F, r, r2, r3);
  CloseFile(F);

  if r = r2 + r3 then ; // mit'm Debugger die einfach mal Variablen angucken

  r := 0; r2 := 0; r3 := 0;

  AssignFile(F, 'test.txt');
  Reset(F);
  Read(F, r);
  Read(F, r2);
  ReadLn(F, r3);
  CloseFile(F);

  if r = r2 + r3 then ; // mit'm Debugger die einfach mal Variablen angucken
end;


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