Entwickler-Ecke
Sonstiges (Delphi) - String aus einer Textdatei
Mortal-Shadow - Di 14.07.09 18:00
Titel: String aus einer Textdatei
Hi,
ich habe eine Textdatei, in der der Zeilenumbruch im Windows-Texteditor nicht dargestellt wird.
Das Umbruchzeichen hierbei ist $0D.
Ich wollte das schnell mit einem Programm unschreiben, was seltsamerweise nicht funktioniert hat.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| AssignFile(Datei,PFAD); AssignFile(Neu,PFAD2); Reset(Datei); Rewrite(Neu); line := ''; While not EoF(Datei) do begin BlockRead(Datei,ch,1); If (Integer(ch) = $0D) then begin Writeln(Neu, line); line := ''; end else begin line := line + ch; end; |
Es verfälscht die Ausgabe komplett.
Aber was habe ich falsch gemacht?
Narses - Di 14.07.09 18:26
Moin!
Lies die Datei einfach in eine TStringList ein und schreib sie wieder, das sollte es tun. ;)
cu
Narses
FinnO - Di 14.07.09 18:29
wie wäre es mit
Delphi-Quelltext
1: 2: 3: 4:
| memo1.Lines.LoadFromFile('Datei.txt'); for i := 1 to Length(Memo1.Text) do if ord(Memo1.Text[i] = $0D then Memo1.Text := copy(Memo1.Text,1,i) + #10#13 + copy(Memo1.Text,i+2,length(memo1.Text)-i+2); |
ungetestet
€: Da war wer schneller :(
Mortal-Shadow - Di 14.07.09 19:08
So,
das mit der Stringlist funktioniert.
Mich interessiert aber, wieso Teil 1 meines Programmes fehlgeschlagen hat.
Denn ich sehe da keinen Fehler - dennoch kamen (scheinbar) zufällige Zeichen in die neue Textfile.
| Zitat: |
gaaaya=of=a
g h o"l3ete
ln5 crlu=Vte
lnA cBnl\sMri3on ESFneeeeeeeeeeee iulu=Etn |
Um nur die ersten paar Zeilen zu kopieren...
FinnO - Di 14.07.09 20:02
eventuell mit dem falschen ASCII-Zeichensatz geöffnet (also nicht "westlich")
TomasB - Di 14.07.09 20:34
Ich könnt' mich ja täuschen, aber ich meine mich zu erinnern, daß Blockread immer 128 Bytes auf einmal liest, wenn die Datei nur mit Reset(Dateiname) geöffnet wurde. Zum zeichenweisen Lesen mein ich müsste man die Datei mit Reset(Dateiname,1) öffnen.
gruß
Tomas
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Mortal-Shadow - Di 14.07.09 22:03
Perfekt, das wars - danke.
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!