Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi datei "verändern"... (https://www.delphipraxis.net/6653-datei-veraendern.html)

Leathl 17. Jul 2003 17:05


datei "verändern"...
 
Hi,

ich versuche, ne zeile in nem file hinzuzufügen, allerdings ersetzt er den ganzen text des files :( ...

woran könnte es liegen?

code:

Delphi-Quellcode:
var a: string;
d: textfile;

//-----------------
a:='test';
AssignFile(d, Edit2.Text);
Rewrite(d);
writeln(d, a);
closefile(d);
cYa and ThX
Leathl

Daniel B 17. Jul 2003 17:12

Re: datei "verändern"...
 
Hallo,

hinzufügen kannst Du mit "Append", bei ReWrite wird die Datei an sich neu angelegt, bzw. der ganze Inhalt gelöscht und dann neu beschrieben.

Grüsse, Daniel :hi:

Alexander 17. Jul 2003 17:14

Re: datei "verändern"...
 
Ich würde einfach alles auslesen und zb in ein Array zwischenspeichern und dann einfach die gewünschte Zeile hinzufügen und dann wieder alles (also den kompletten) Array wieder in die Datei speichern.
So hast du das Problem umgehen können. Hatte das Problem auch schon mal
Es gibt aber glaube ich auch noch ein Befehl, REwrite ist glaube ich falsch...
[edit]mist Daniel war wieder schneller...Append war es stimmt...[/edit]

Leathl 17. Jul 2003 17:50

Re: datei "verändern"...
 
Hi,

also mit append hab ichs auch versucht, da hat er die zeile nicht hinzugefügt :( ... das file was so wie vorher...

mit ner stringlist hab ichs auch schon versucht, aber da funktioniert was nicht... er hat immer die letzte und die hälfte der vorletzteb zeile gelöscht... :(

Leathl

Chewie 17. Jul 2003 18:56

Re: datei "verändern"...
 
Also wenn du obigen Code nimmst und Rewrite durch Append ersetzt, wird was in die Datei geschrieben, es sei denn a ist leer. Oder der Datenträger ist voll :wink:

Dagon 17. Jul 2003 19:49

Re: datei "verändern"...
 
hallo
du musst rewrite() durch Reset() ersetzen. dann sollte das ganze funktionieren.

Chewie 17. Jul 2003 20:24

Re: datei "verändern"...
 
Zitat:

Zitat von the_master
hallo
du musst rewrite() durch Reset() ersetzen. dann sollte das ganze funktionieren.

Was sollte dann funktionieren? Reset öffnet die Datei zum Lesen. Da ist nix mit schreiben.

Leathl 17. Jul 2003 20:27

Re: datei "verändern"...
 
hmm... also bei mir funkts nicht :(...

ich versuchs morgen nochmal alles durch...

Chewie 17. Jul 2003 20:31

Re: datei "verändern"...
 
Zeig mal deinen Source.

Und was genau "funktioniert nicht"?

Leathl 17. Jul 2003 21:06

Re: datei "verändern"...
 
naja... hab ich doch oben geschirieben...

Delphi-Quellcode:
a:='test';
AssignFile(d, Edit2.Text);
append(d);
writeln(d, a);
closefile(d);
also...

Wenn ich nen File hab, wo dann irgendwas drin steht und den code da mache, dann steht danach im file genau dasselbe... :(

Luckie 17. Jul 2003 21:10

Re: datei "verändern"...
 
Gegenbeweis:
Delphi-Quellcode:
var
  f : TextFile;
begin
  AssignFile(f, 'c:\test.txt');
  Append(f);
  writeln(f, 'World');
  CloseFile(f);

Chewie 17. Jul 2003 21:11

Re: datei "verändern"...
 
Und wenn ich das mache, steht in der Datei nicht dasselbe, sondern "test" und ein Zeilenumbruch mehr.
Keine Ahnung, was du da machst, dein Code ist richtig.

Blizzard 17. Jul 2003 21:13

Re: datei "verändern"...
 
nim doch einfach ne tstringlist da sind die ganze routinen schon implementiert

Delphi-Quellcode:
var list:tstringlist;
begin
 list:=tstringlist.create;
 list.loadfromfile('c:\test.txt');
 list.add('Füge was hinzu');
 list[3]:='Ändere die 4-te zeile';
 list.savetofile('c:\test.txt');
 list.free;
end;

mfg
Blizzard

[edit]dumme tippfehler[/edit]

Luckie 17. Jul 2003 21:13

Re: datei "verändern"...
 
Wo ist der Ressourcenschutzblock (try-finaly)? :roll:

Leathl 17. Jul 2003 21:31

Re: datei "verändern"...
 
Zitat:

Zitat von Blizzard
nim doch einfach ne tstringlist da sind die ganze routinen schon implementiert

Delphi-Quellcode:
var list:tstringlist;
begin
 list:=tstringlist.create;
 list.loadfromfile('c:\test.txt');
 list.add('Füge was hinzu');
 list[3]:='Ändere die 4-te zeile';
 list.savetofile('c:\test.txt');
 list.free;
end;

mfg
Blizzard

[edit]dumme tippfehler[/edit]

mit einer tstringlist hab ich das vorher schonmal probiert...

Zitat:

Zitat von Leathl
mit ner stringlist hab ichs auch schon versucht, aber da funktioniert was nicht... er hat immer die letzte und die hälfte der vorletzteb zeile gelöscht...

hmm... komisch :(


//also ich benutze das immer bei crypted files... bei ner normalen txt klappts... hmm :(

Leathl 17. Jul 2003 21:46

Re: datei "verändern"...
 
habs geschafft :)

thx an alle :D

:dancer: :dancer2: :dancer: :dancer2: :dancer: :dancer2:

Luckie 18. Jul 2003 00:04

Re: datei "verändern"...
 
Ein Moment: "crypted files"? Solche Dateien sind wohl wie binär Dateien zu handhaben, da sie auch Steuerzeichen usw. enthalten können. Da kann das nicht funktionieren.

Blizzard 18. Jul 2003 06:22

Re: datei "verändern"...
 
ne tstringlist frist meiner erfahrung nach alles bis auf den hexwert 00 da bricht sie ab weil sie beim einlesen wohl mit nem 0-terminierten string arbeitet und da 0x00 als stringende gilt

wobei ich bei "crypted files" doch auch eher mit nem filestream arbeiten würde

Blizzard

Leathl 18. Jul 2003 15:00

Re: datei "verändern"...
 
ja...

ich habs auch im letzten moment bemerkt und mich besonnen, es anders zu machen *G* ... klappt ja jetzt :D

cYa
Leathl


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