Entwickler-Ecke
Dateizugriff - Letzte Zeile einer .txt löschen
Krischa - Mi 03.06.09 08:25
Titel: Letzte Zeile einer .txt löschen
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?
Delphi-Quelltext
1: 2: 3:
| memo1.Lines.Clear; memo1.Lines.Add(nachricht); memo1.Lines.SaveToFile(npfad); |
zuma - Mi 03.06.09 08:29
prüfe "nachricht", ob da nicht ein Steuerzeichen bzw. eine Leerzeile am ende steht
Krischa - Mi 03.06.09 08:36
Letzte Ziele von Nachricht ist:
Delphi-Quelltext
1:
| nachricht := nachricht + slinebreak + 'UNZ+'+inttostr(ni-1)+'+'+nrn + #39; |
thepaine91 - 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 - 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
Krischa - 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
Narses: 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 - 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 - 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...
Krischa - Mi 03.06.09 09:07
Danke ich mache es jetzt so:
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 :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!