Autor Beitrag
Krischa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

Windows 7 64 Bit
Delphi 2007
BeitragVerfasst: Mi 03.06.09 08:25 
Hi,
ich schreibe ein Memo in eine *.txt Datei aber er fügt mir immer am Schluß eine leere Zeile ein. Wie bekomme ich die weg?
ausblenden Delphi-Quelltext
1:
2:
3:
memo1.Lines.Clear;                                            
memo1.Lines.Add(nachricht);                                         
memo1.Lines.SaveToFile(npfad);
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Mi 03.06.09 08:29 
prüfe "nachricht", ob da nicht ein Steuerzeichen bzw. eine Leerzeile am ende steht

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Krischa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

Windows 7 64 Bit
Delphi 2007
BeitragVerfasst: Mi 03.06.09 08:36 
Letzte Ziele von Nachricht ist:
ausblenden Delphi-Quelltext
1:
nachricht := nachricht + slinebreak + 'UNZ+'+inttostr(ni-1)+'+'+nrn + #39;					
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Mi 03.06.09 08:46 
Oder die unschöne Version einfach die letzte Zeile löschen :D obwohl das wie gesagt nicht wirklich toll ist.
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Mi 03.06.09 08:47 
du zeigst den code zum befüllen, nicht den Inhalt der 'Nachricht'.

bau dir mal ein showmessage(nachricht) ein oder

zeig mal die ganze procedure/function

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Krischa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

Windows 7 64 Bit
Delphi 2007
BeitragVerfasst: Mi 03.06.09 08:48 
Und wie kommt es das da eine Leerzeile auftaucht. Und wie geht die Funktion zum Löschen der Zeile?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Die Nachricht geht über mehrere tausend Zeilen. Das wird kritisch mit showmessage.
Du willst also einfach nur den Text der letzten Zeile?

Vorletzte Zeile in der *.txt: UNZ+22+19'

die Letzte ist ja halt einfach nur leer.
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Mi 03.06.09 08:50 
Krischa ich sage immer (Press F1) ^^ muss i-was mit Delete gewesen sein weis es aber nicht ausm kopf wie genau.

z.B. .lines.delete(1) z.b. sowas in der Art. Aber einfach mal auf Richedit/ Memo klicken F1 drücken und du findest sicher was du suchst.

Edit: hört sich nach edifact an. ;)
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mi 03.06.09 08:59 
Die von TStrings abgeleiteten Klassen fügen bei SaveToFile immer ein #13#10 an, wenn ich den Quellcode richtig sehe (es wird der Text gespeichert, der von TStrings.GetTextStr ermittelt wird).
Du solltest vielleicht den Text selbst mit einem TSTream oder ähnliches speichern. Oder gar komplett selbst mit Assign, Rewrite, etc...

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Krischa Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

Windows 7 64 Bit
Delphi 2007
BeitragVerfasst: Mi 03.06.09 09:07 
Danke ich mache es jetzt so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
npfad:=savedialog1.FileName+'.txt';
AssignFile(Datei, npfad);
Rewrite(Datei);
Write(Datei, nachricht);
Close(Datei);



Edit: Nachricht ist in EANCOM geschrieben :)