Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi in textdateien schreiben (https://www.delphipraxis.net/15011-textdateien-schreiben.html)

zecke 20. Jan 2004 16:14


in textdateien schreiben
 
nabend allesamt,

ich woltle mal fragen ob jemand weiß, wie ich es hinbekomme, eine zeile text zu einer bereits bestehenden textdatei hinzuzufügen ohne sie neu zu schreiben oder andere zeilen zu überschreiben?? die datei soll die gleiche bleiben.
also 'ne textzeile in eine datei einfügen...ungefähr

genauso brauch ich dann sowas wie zeilen (string orientiert) auszulesen oder eine zeile suchen in einer textdatei??

wäre nett, wenn da jmd was zu weiß, weil ich da nichts gefunden habe.



MfG
LoRd

fkerber 20. Jan 2004 16:22

Re: in textdateien schreiben
 
Hi!

Du wirst wohl nicht umhinkommen, die Datei zu laden und wieder zu speichern, damit Delphi weiß, wo die Datei zu Ende ist.

Sollte ich irren, einfach in der Luft zerreißen und dann verbessern :twisted:

Ciao fkerber

choose 20. Jan 2004 16:27

Re: in textdateien schreiben
 
*zerreiß fkerber in der Luft* ;)

Aus der OH zu Append:
Zitat:

Zitat von OH
Die Prozedur bereitet eine vorhandene Datei auf das Anhängen von Textdaten vor. [..]
Mit Append können Sie sicherstellen, dass eine Datei [..] geöffnet und der Dateizeiger auf das Ende der Datei gesetzt wird. F ist eine Textdateivariable [..]


RobertS 20. Jan 2004 16:28

Re: in textdateien schreiben
 
Zitat:

Zitat von fkerber
Hi!

Du wirst wohl nicht umhinkommen, die Datei zu laden und wieder zu speichern, damit Delphi weiß, wo die Datei zu Ende ist.

Sollte ich irren, einfach in der Luft zerreißen und dann verbessern :twisted:

Ciao fkerber

WriteLn()

fkerber 20. Jan 2004 16:45

Re: in textdateien schreiben
 
:duck: :oops: :duck:

Man lernt nie aus.
Danke für die Berichtigung. Muss ich mal in einigen Programmen ändern. Die Funktion war mir fremd.

Ciao fkerber

markon 20. Jan 2004 17:05

Re: in textdateien schreiben
 
doch man kann an eine textdatei ohne sie zu laden anhängen:
Delphi-Quellcode:
var datei:textfile;
 procedure anfuegen_an_ne_textdatei;
begin
 try
  assignfile(datei, 'egal.txt'); { bestehende text-datei }
  append(datei);
  writeln(datei, 'String, der angehängt werden soll...');
  flush(datei); { ensures that the text was actually written to file }
 finally
  closeFile(datei);
 end;
:cheers:

zecke 20. Jan 2004 19:04

Re: in textdateien schreiben
 
lol danke für die antworten werde es testen, aber die erste antwort von fkerber war sehr interessant. ich mein ich aheb schon eine datei und speicher da auch sachen drin und laden kann ich auch wollte nur den einen befehl wissen und writeln() ist schon nais THX für den befehl und die procedure!
:cheers:

SirThornberry 20. Jan 2004 19:27

Re: in textdateien schreiben
 
Man könnte auch eine Datei einfach über einen Stream öffnen. Dann
Stream.position := Stream.size;
Stream.write(Buffer, length(buffer));

zecke 20. Jan 2004 20:24

Re: in textdateien schreiben
 
mm danke - allerdings hab ich mit stream absolut nichts am hut, weiß nicht was das ist etc. da du sagtest "man könnte auch" werde ich die andre sache vorher probieren ;o) danke schöün

zecke 20. Jan 2004 22:06

Re: in textdateien schreiben
 
ein seltsames problem habe ich da hoffe jmd weiß auch da was:

es gilt Filename=edit2.text+' '+edit1.text nur so zur information...

es macht alles was es soll, aber es soll die sachen in eine neue file speichern, deswegen habe ich die file zuerst gelöscht, dann soll er alles in eine datei speichern die halt genauso heißt. das problem ist: er löscht zwar die datei, aber danach schreibt er alles in die datei hinzu anstatt eine neue zu machen. er löscht sie also nicht wirklich scheinbar....aber hier der code.

Code:
procedure TForm1.Button7Click(Sender: TObject);
var Path, Filename : string;
begin
Path := ExtractFilepath(ParamStr(0));
Filename := Path + Listbox1.Items[Listbox1.ItemIndex] + '.adr';
Memo1.Lines.LoadFromFile(Filename);
Memo1.Lines.Add(Edit1.Text);
Memo1.Lines.Add(Edit2.Text);
Memo1.Lines.Add(Edit3.Text);
Memo1.Lines.Add(Edit4.Text);
Memo1.Lines.Add(Edit5.Text);
Memo1.Lines.Add(Edit6.Text);
Memo1.Lines.Add(Edit7.Text);
Memo1.Lines.Add(Edit8.Text);
Memo1.Lines.Add(Edit9.Text);
Memo1.Lines.Add(Edit10.Text);
Memo1.Lines.Add(Edit11.Text);
Memo1.Lines.Add(Edit12.Text);
DeleteFile(Filename);
Showmessage('testbox gelöscht');
Memo1.Lines.SaveToFile(edit2.text+' '+edit1.Text+'.adr');
Listbox1.Items.SaveToFile('adrliste.adr');
end;

scp 20. Jan 2004 23:19

Re: in textdateien schreiben
 
Hmm...

Mit
Delphi-Quellcode:
Memo1.Lines.LoadFromFile(Filename);
hast du doch den Inhalt der alten Datei in die Memo geladen, deshalb bleibt der alte Inhalt auch bei

Delphi-Quellcode:
Memo1.Lines.SaveToFile(edit2.text+' '+edit1.Text+'.adr');
erhalten.

MikeS 21. Jan 2004 06:20

Re: in textdateien schreiben
 
guten morgen zusammen

falls du eine vorhandene Datei einfach überschreiben möchtest kannst du diese mit rewrite statt mit append öffnen! dann wird die alte überschriben und da hast nur die daten darin enthalten die du zuletzt hinein geschrieben hast!

zecke 21. Jan 2004 10:06

Re: in textdateien schreiben
 
danke das stimmt wohl auf das einfachste kommt man nicht... :wall: ich benutze kein append daher auch kein rewrite werde halt erstmal den inhalt vom memo löschen und dann reinschreiben. thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz