| Autor |
Beitrag |
DK99
      
Beiträge: 46
Win Vista (64 Bit) + W7 Up
(Delphi 7,) Java 6 (Eclipse+ BlueJ), OpenGL2.0
|
Verfasst: Fr 11.07.08 11:04
Hallo
Kann mir mal jemand sagen wie man eine .txt Datei erstellen kann, wie man etwas hineinschreiben kann und wie man sie dann wieder auslesen und einer String Variable zuordnen kann?
Vielen Dank schonma für die Antworten
MFG Moderiert von Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 11.07.2008 um 12:08
_________________ "Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."-- Dan Salomon
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 11.07.08 11:09
Moin!
Schonmal in die Suche geschaut? STRINGLIST LOADFROMFILE
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 11.07.08 11:11
Hallo!
Zunächst einmal legen wir eine Variable vom Typ TextFile an.
Delphi-Quelltext
Danach vielleicht noch eine Variable mit dem Pfad zur Datei.
Delphi-Quelltext 1: 2:
| var Datei: TextFile; Pfad: String; |
anhang: Boolean;
Jetzt haben wir alles, um eine Datei anzulegen und sie mit Daten zu füllen
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| pfad:= '<Pfad zur Datei>'; assignfile(datei, pfad);
anhang:= false; if not fileexists(pfad) then begin rewrite(datei); end else begin reset(datei); append(datei); anhang:= true; end;
writeLn(datei, 'Meine erste Zeile in der Datei'); if anhang then flush(datei);
closefile(datei); end; |
Das Auslesen geht analog dazu (siehe READLN) oder einfach die Delphi-Hilfe benutzen.
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Zuletzt bearbeitet von ZeitGeist87 am Fr 11.07.08 11:34, insgesamt 1-mal bearbeitet
|
|
delphi10
      
Beiträge: 447
Erhaltene Danke: 2
W2K, XP, Vista64, Win7 64
RAD-Studio 2010
|
Verfasst: Fr 11.07.08 11:24
_________________ Salus populi suprema lex esto
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Fr 11.07.08 11:34
delphi10 hat folgendes geschrieben: |
Ohne Append(datei); wirds wohl nix mit schreiben.
|
Doch. Er hat ja bereits Rewrite aufgerufen, um in die Datei zu schreiben. Allerdings dachte ich bisher, dass es nicht möglich ist, in eine mit Reset geöffnete Datei zu schreiben.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 11.07.08 11:37
Delphi10 hat schon Recht.
Hab den Code oben angepasst.
Alternative kann man das Schreib-/Leserecht auch über Filemode:= 0 bzw. 2 steuern.
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 11.07.08 11:42
delphi10 hat folgendes geschrieben: | ZeitGeist87 hat folgendes geschrieben: | Hallo!
Delphi-Quelltext 1: 2: 3:
| writeLn(datei, 'Meine erste Zeile in der Datei'); | |
Ohne
Delphi-Quelltext
wirds wohl nix mit schreiben.
gruß delphi10 |
Doch, aber nur gesetzt dem Fall, die Datei war noch nicht vorhanden und wurde mit rewrite() erzeugt.
Beim reset() allerdings ist ein append() gefolgt von einem flush von Nöten.
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
DK99 
      
Beiträge: 46
Win Vista (64 Bit) + W7 Up
(Delphi 7,) Java 6 (Eclipse+ BlueJ), OpenGL2.0
|
Verfasst: Fr 11.07.08 12:28
OK also ersma vielen Dank für die Antworten
Jetz hab ich aba ei nneues Problem:
Jedes Mal wenn ich das ausprobiere hängt sich mein PC auf und der Prozessor ist nur noch zu 1 % ausgelastet. TaskManager usw. funzt alles nich mehr.
Kann das am Programm liegen oder einfach an meinem PC?
_________________ "Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."-- Dan Salomon
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 11.07.08 12:32
Zeig uns mal bitte deinen Quelltext..
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 11.07.08 15:10
Nur mal so nebenbei, wenn du eine TMemo - Komponente benutzt, dann kann diese direkt speichern und lesen mit
Delphi-Quelltext 1: 2:
| memo1.lines.loadFromFile('meinedate.txt'); memo1.lines.saveToFile('meinedatei.txt'); |
Eine Memo-Komponentte kann auch unsichtbar sein (visible=false), und sie kann auch so eingestellt werden dass der Text nicht umgebrochen wird (wordWrap=false).
Die Erfahrung zeigt, dass diese Methode für viele Anfänger bereits reicht 
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 11.07.08 15:12
Moin!
Tilman hat folgendes geschrieben: | Die Erfahrung zeigt, dass diese Methode für viele Anfänger bereits reicht  |
Die Erfahrung zeigt überdeutlich, dass unsichtbare visuelle Komponenten als Datenlager definitiv eine schlechte Wahl sind!  Alleine schon der gedankliche Ansatz ist falsch, hier wäre dann in jedem Fall die TStringList-Variante vorzuziehen.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 11.07.08 15:24
Narses hat folgendes geschrieben: | Alleine schon der gedankliche Ansatz ist falsch, hier wäre dann in jedem Fall die TStringList-Variante vorzuziehen.
|
1. hat der Threadersteller möglicherweise bereits eine Memo-Komponente verwendet - dann ist es in jedem Fall die richtige Wahl.
2. Sei mal nicht so dogmatisch. Es ist einfach und funktioniert - wo daran der gedankliche Ansatz falsch sein soll leuchtet mir nicht ein. Viele Anfänger haben ihr Problem mit dem zur-laufzeit-erzeugen.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Fr 11.07.08 15:27
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Zuletzt bearbeitet von Timosch am Fr 11.07.08 15:31, insgesamt 1-mal bearbeitet
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 11.07.08 15:30
Ja hast ja recht *grmpfl*. Ich mein nur er will vermutlich nur kurz was speichern, und ZeitGeist kommt mit einem 30-Zeiligen Code. Das schreckt doch ab. Am schnellsten lernt es sich mit Spaß. Ich Progge seit 10 Jahren mit Delphi, hab am Anfang alles nur über Memo gespeichert, und trotzdem hab ich alles gelernt.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 11.07.08 15:33
falls du einstellungen speichern und laden willst nimm lieber TInI. Damit kann man das dann viel einfacher machen.
Leider greifen viel zu viele Anfänger zu der Memo-Methode die eigentlich nur schwachsinn ist. Memo hat den Nachteil das man alles viel umständlicher macht weil man zum beispiel keine Sections und Values hat.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 11.07.08 15:37
Tilman hat folgendes geschrieben: | | Ja hast ja recht *grmpfl*. Ich mein nur er will vermutlich nur kurz was speichern, und ZeitGeist kommt mit einem 30-Zeiligen Code. Das schreckt doch ab. Am schnellsten lernt es sich mit Spaß. Ich Progge seit 10 Jahren mit Delphi, hab am Anfang alles nur über Memo gespeichert, und trotzdem hab ich alles gelernt. |
Entschuldigung, dass ich den Code zusätzlich dokumentiert hab und explizit mit einer von vielen Möglichkeiten auf seine Frage geantwortet habe..also langsam glaub ich echt, ich programmier falsch 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Fr 11.07.08 15:40
elundril hat folgendes geschrieben: | falls du einstellungen speichern und laden willst nimm lieber TInI. Damit kann man das dann viel einfacher machen.
Leider greifen viel zu viele Anfänger zu der Memo-Methode die eigentlich nur schwachsinn ist. Memo hat den Nachteil das man alles viel umständlicher macht weil man zum beispiel keine Sections und Values hat.
lg elundril |
Heißt das Ding nicht TIniFile? Nicht vergessen: ganz oben bei uses hinten inifiles dranhängen.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 11.07.08 15:40
Nein, Zeitgeist. Dein Post war völlig korrekt und gut. Ich wollte meinen bitte nur als Alternative verstanden wissen. Es war nicht geplant dich anzugreifen. Dein Post diente lediglich als Argument, warum mein Post ebenfall seine DAseinsberechtigung hat. Und damit klinke ich mich aus diesme Thread aus 
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 11.07.08 15:42
Okay Tilman
Ich war jetzt nur leicht irritiert
Klink mich ebenfalls aus..
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
DK99 
      
Beiträge: 46
Win Vista (64 Bit) + W7 Up
(Delphi 7,) Java 6 (Eclipse+ BlueJ), OpenGL2.0
|
Verfasst: Fr 11.07.08 19:56
OK
Das Problem ist gelöst . Es lag an meinem PC dass es nicht funktioniert hat
Aber jetzt läuft es.
Vielen Dank für die Hilfe 
_________________ "Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."-- Dan Salomon
|
|