Einzelnen Beitrag anzeigen

Pandax3

Registriert seit: 16. Jul 2011
22 Beiträge
 
#1

WriteLN + Zeilenumbruch

  Alt 29. Jan 2012, 01:14
Hallo,
ich habe folgendes Problem was mich zum verzweifeln bringt:

Ich schreibe Zeilen in eine Textdatei mit WriteLn was an sich ganz gut klappt.
Wenn ich dann aber ein Edit Feld ergänze und es wieder speichere, dann schreibt er die alte Zeile, macht danach einen Zeilenumbruch und schreibt in die neue Zeile die Ergänzung.

Wenn ich z.B. in Edit1 "Test" drin stehen habe, das speichere, dann schreibt Delphi das auch so in die Textdatei,
wenn ich nun aus "Test" "Test1" mache und wieder speichere, habe ich 2 Zeilen in der Textdatei:
1. Zeile: Test
2. Zeile: 1

Zudem setzt Delphi mir nach jedem Speichern einen Zeilenumbruch zwischen die verschiedenen Zeilen, sodass die Datei immer größer und die Zeilenabstände ebenfalls immer größer werden.

Ich komm nicht dahinter woran das liegen kann
Gibt irgendwie keinen Sinn

Habe schon probiert die Textdatei vor dem Speichern komplett zu löschen und neu anzulegen, aber dann tritt dasselbe Problem auf.

Danke schon mal

Delphi-Quellcode:
procedure TForm1.SpeichernClick(Sender: TObject);
var
f:TextFile;
Punkte:String;
i:integer;
begin
Punkte:='........................................'; // 40 Punkte
i:=0;

{if fileexists(Label2.Caption+'\'+Combobox1.text+'\'+edit3.Text) then
  DeleteFile(Label2.Caption+'\'+Combobox1.text+'\'+edit3.Text);

  !auch wenn ich die Datei lösche, dann schreibt er in mehrer Zeilen und macht zeilenbrüche >.<!}


AssignFile(f,Label2.Caption+'\'+Combobox1.text+'\'+edit3.Text);
{$I-}
Rewrite(f);
{$I+}
if IOResult<>0 then showmessage('Fehler beim Speichern.');

for i := 0 to memo1.Lines.Count do
    WriteLn(f,memo1.Lines[i]);

WriteLN(f,'..........Informationen zu "'+Combobox1.text+'"..........');

Write(f,#10#13); // Zeilenumbruch (hieran liegt es nicht!)
WriteLn(f,'TEST'+Punkte+Edit1.Text);
WriteLn(f,'TEST'+Punkte+Edit2.Text);
WriteLn(f,'TEST'+Punkte+Edit3.Text);
WriteLn(f,'TEST'+Punkte+Edit4.Text);
WriteLn(f,'TEST'+Punkte+Edit5.Text);
WriteLn(f,'TEST'+Punkte+Edit6.Text);
WriteLn(f,'TEST'+Punkte+Edit7.Text);
WriteLn(f,'TEST'+Punkte+Edit8.Text);
WriteLn(f,'TEST'+Punkte+Edit9.text);
WriteLn(f,'TEST'+Punkte+Edit10.text);
WriteLN(f,'TEST'+Punkte+Edit11.Text);
WriteLN(f,'TEST'+Punkte+Edit12.Text);

closefile(f);

TextLaden; // Hieran liegt es auch nicht
end;
  Mit Zitat antworten Zitat