Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei in Liste laden (https://www.delphipraxis.net/139972-textdatei-liste-laden.html)

Schnittcher 9. Sep 2009 12:31


Textdatei in Liste laden
 
Hallo,

ich speicher meine Liste so:

Delphi-Quellcode:
procedure TForm1.cmdListSpeichernClick(Sender: TObject);
var
  i: integer;
  pAuto: IAuto;
  myfile: TextFile;
  temp, temp2, temp3: string;
begin
  try
    if AutoList = nil then
      raise
        EBerechnung.Create('Wenn es keine Liste gibt, kann man sie auch nicht speichern.');
    if SaveDialog1.Execute then
      AssignFile(myFile, SaveDialog1.FileName);
    Rewrite(myFile);
    for i := 0 to AutoList.Count - 1 do
    begin
      pAuto := AutoList.Items[i];
      temp := pAuto.ErgebnisName;
      temp2 := FloatToStr(pAuto.ErgebnisKW);
      temp3 := FloatToStr(pAuto.ErgebnisPS);
      WriteLn(myfile, 'Name:   ', temp, 'KW:   ', temp2, 'PS:   ',
        temp3);
    end;
    CloseFile(myFile);
  except
    on E: EBerechnung do
      MessageDlg(E.Message, mtInformation, [mbOK], -1);
  end;
end;
Wie kann ich diese Liste jetzt wieder laden?

Gruß,
Schnittcher

Forlan 9. Sep 2009 12:33

Re: Textdatei laden und in Liste speichern
 
Hier im Forum suchenRead etc...
Ansonsten könnte man auch direkt nach "Textdatei laden" googlen oder hier suchen.

MfG

Schnittcher 9. Sep 2009 12:34

Re: Textdatei in Liste laden
 
Hallo,

vielleicht hätte ich dabei schreiben sollen, dass ich das mit dem OpenDialog machen wollte.

Und das ist eine IInterfacedList.

Gruß,
Schnittcher

DeddyH 9. Sep 2009 12:37

Re: Textdatei in Liste laden
 
Da es sich ja eh um reine Textspeicherung handelt, könnte man auch eine TStringlist verwenden. Außerdem fällt mir auf, dass da wohl noch ein begin-end fehlt.
Zitat:

Delphi-Quellcode:
if SaveDialog1.Execute then
      AssignFile(myFile, SaveDialog1.FileName);
    Rewrite(myFile);

Wenn der Dialog abgebrochen wird, dürfte das Rewrite in die Hose gehen. Desweiteren würde ich einen try-finally-Block einsetzen, in dessen finally das CloseFile steht.

himitsu 9. Sep 2009 12:54

Re: Textdatei in Liste laden
 
Zitat:

Zitat von Schnittcher
vielleicht hätte ich dabei schreiben sollen, dass ich das mit dem OpenDialog machen wollte.

Und das ist eine IInterfacedList.

Das ist im Prinzip egal.

Du hast das Speichern schon und das Laden ist praktisch genau andersrum.

Rewrite > Delphi-Referenz durchsuchenReset
WriteLn > Delphi-Referenz durchsuchenReadLn
auch kann Delphi-Referenz durchsuchenEoF helfen, wenn man die Anzahl der Einträge nicht gespeichert hat

dann den String vom ReadLn in seine Bestandteile zerlegen
eventuell noch das Objekt/Interfact in AutoList erzeugen
und dem Objekt/Interfact die Werte zuweisen

Schnittcher 9. Sep 2009 13:06

Re: Textdatei in Liste laden
 
Hallo,

kann mir denn einer sagen wie ich das mache, dass ich

Delphi-Quellcode:
WriteLn(myfile, 'Name:   ', temp, 'KW:   ', temp2, 'PS:   ',
'Name: '
'KW: '
'PS: '

teile und die werte davon in

pAuto.ErgebnisName
pAuto.ErgebnisKW
pAuto.ErgebnisPS

eintrage?

Gruß,
Schnittcher

DeddyH 9. Sep 2009 13:09

Re: Textdatei in Liste laden
 
Mit Pos() und Copy() könntest Du die Zeile wieder zerlegen. Allerdings wäre es IMHO einfacher, typisierte Dateien statt Textdateien zu verwenden, das spart die ganze Stringfrickelei samt Konvertierung.

Schnittcher 9. Sep 2009 13:10

Re: Textdatei in Liste laden
 
Hallo,

Zitat:

Zitat von DeddyH
Mit Pos() und Copy() könntest Du die Zeile wieder zerlegen. Allerdings wäre es IMHO einfacher, typisierte Dateien statt Textdateien zu verwenden, das spart die ganze Stringfrickelei samt Konvertierung.

könntest du mir das mal genauer erklären?

Gruß,
Schnittcher

Klaus01 9. Sep 2009 13:11

Re: Textdatei in Liste laden
 
Zitat:

Zitat von DeddyH
Mit Pos() und Copy() könntest Du die Zeile wieder zerlegen. Allerdings wäre es IMHO einfacher, typisierte Dateien statt Textdateien zu verwenden, das spart die ganze Stringfrickelei samt Konvertierung.

.. oder eine kleine Datenbank (SqLite o.ä) nehmen

Grüße
Klaus

DeddyH 9. Sep 2009 13:21

Re: Textdatei in Liste laden
 
@Klaus: Das Thema Datenbank hatte ich bewusst vermieden :zwinker:
@Schnittcher: Was genau soll ich Dir erklären?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:52 Uhr.
Seite 1 von 3  1 23      

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