Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi textdatei aus edtifeld auslesen udn wieder einlesen (https://www.delphipraxis.net/128430-textdatei-aus-edtifeld-auslesen-udn-wieder-einlesen.html)

tspanni 29. Jan 2009 17:25


textdatei aus edtifeld auslesen udn wieder einlesen
 
Hallo
ihc habe mal ne frage und zwar möchte ich eine datei mit Assignfile erstellen wo dann mit nem button der text aus verschiedenen editfeldern in jeweils eine zeile geschrieben wird (also edit1 in zeile1, edit2 in zeile2...) und danach wieder in das jeweilige editfeld geladen wird
Delphi-Quellcode:
var x:textfile;

procedure TForm1.Button1Click(Sender: TObject);
begin
  assignfile(x,'C:stupla.stp');
  rewrite(x);
  writeln(x,Edit1.Text);
 
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    assignfile(x,'stupla.stp');
    reset(x);
    Readln(x,);

end;
so siehts bisher aus. die datei wird zwar erstellt aber es steht nichts drin... kann mir bitte jemand sagen wie ich den obigen code anpassen muss (sowohl writln als auch readln)

Vielen Dank im Voraus
Tim

taaktaak 29. Jan 2009 17:49

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
Es fehlt in beiden Procs das closefile()
und besser wäre auch eine Fehlerbehandlung mit {$I-}, IOresult usw.

mr_emre_d 29. Jan 2009 17:51

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
heißt es nicht "C:\stupla.stp" ?

tspanni 29. Jan 2009 18:00

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
oh stimmt danke. aber wie mache ich dass den ejtz mit dem abspeicher bzw. dem einlesen der edits in die jeweiligen zeilen und andersrum wiel iwei klappts so ned

taaktaak 29. Jan 2009 18:11

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
Delphi-Quellcode:
  // ..
  assignfile(x,'C:\stupla.stp'); // im Wurzelverzeichnis von C ??????????????
  {$I-} rewrite(x); {$I+}
  if IOresult<>0 then ShowMessage('Fehler')
                else begin
    writeln(x,Edit1.Text);
    writeln(x,Edit2.Text);
    //..
    closefile(x)
    end;
//..
Delphi-Quellcode:
  // ..
  assignfile(x,'C:\stupla.stp'); // im Wurzelverzeichnis von C ??????????????
  {$I-} reset(x); {$I+}
  if IOresult<>0 then ShowMessage('Fehler')
                else begin
    readln(x,Edit1.Text);
    readln(x,Edit2.Text);
    //..
    closefile(x)
    end;
 //..
Vielleicht so?
(Und benutze bitte eine etwas verständlichere Sprache)


/edit: die Null fehlte bei IOresult

Apollonius 29. Jan 2009 18:16

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
Ist es wirklich besser, mit dem Schalter I- zu arbeiten? Die Exception beeinhaltet wenigstens den Begriff IO und eine Fehlernummer. Für absolute DAUs würde ich lieber global im Application.OnException alle IO-Fehler abfangen und eine entsprechende Nachricht anzeigen.

taaktaak 29. Jan 2009 18:19

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
Tja, BESSER <> SCHLECHTER ?
Kenne die technischen Hintergründe nicht, es ist aber m. E. "traditionell üblich" bei Verwendung dieser uralt-Funktionen, diese Schalter zu verwenden

tspanni 29. Jan 2009 18:20

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
@taaktaak hmm naja also das abspeichern funktioniert jetzt. Nur wenn ich
Delphi-Quellcode:
ReadLn(x, Edit1.Text);
kommt die Fehlermeldung "[Fehler] Unit1.pas(148): Der linken Seite kann nichts zugewiesen werden"

taaktaak 29. Jan 2009 18:21

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
ahhh, schon fast vermutet. Dann zunächst in eine StringVariable einlesen, dann an .Text übergeben

Apollonius 29. Jan 2009 18:51

Re: textdatei aus edtifeld auslesen udn wieder einlesen
 
Wenn I+ aktiv ist, wird nach jeder Datei-Funktion automatisch IOResult geprüft und im Fehlerfall eine Exception ausgelöst. Im Prinzip ist eine eigene Fehlerbehandlung also nicht nötig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Seite 1 von 2  1 2      

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