okay beschreibe ich mein programm.
am anfang werden 2 dateinamen eingegeben. eine die schon vorhanden ist (F1), und eine die erts angelegt werden soll (F2). das klappt auch wunderbar.
dann wird die erste zeile aus in die variable "Textzeile" geladen. diese wird überprüft ob sie 225 beinhaltet. wenn nicht wird sie mit leerzeichen aufgefüllt. und diese erste zeile wird sofort in die neue datei (F2) geschrieben. das klappt auch noch wunderbar:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Textzeile := ReadLine(Dateiname_alt,0); Size := Length(Textzeile); if (Size < Zeilenlaenge) then begin dazu := Zeilenlaenge - Size; for x := 1 to dazu do begin Textzeile := Textzeile+leerzeichen; end; end; Writeln(F2, Textzeile); |
dann werden die zeilen zwischen der ersten und der letzten zeile auf einen bestimmten string durchsucht und aufgefüllt wenn der string vorhanden ist. wenn der string vorhanden ist wird die aufgefüllte textzeile in die neue datei geschrieben. die anzahl der zeilen variieren. das klappt auch wunderbar.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| Zeilen := AnzahlZeilen -1; i := 1; repeat Textzeile := ReadLine(Dateiname_alt,i); i := i-1; Size := Length(Textzeile); if POS('12345', Textzeile) = 119 then begin if (Size < Zeilenlaenge) then begin dazu := Zeilenlaenge - Size; for x := 1 to dazu do begin Textzeile := Textzeile+leerzeichen; end; end; Writeln(F2, Textzeile); end; i := i+1 until i = Zeilen; |
nun fehlt nur noch die letzte zeile aus der vorhandenen datei. diese wird ausgelesen und einfach nur aufgefüllt mit leerzeichen bis diese 225 zeichen enthält. und hier klappt es nicht mehr. wenn ich nach dem auffüllen des strings diese an der konsole ausgebe, dann zeigt er alle 225 zeichen an. wenn ich mir dann aber die neue textdatei anschaue, hat diese weniger...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Textzeile := ReadLine(Dateiname_alt,AnzahlZeilen); Size := Length(Textzeile); if (Size < Zeilenlaenge) then begin dazu := Zeilenlaenge - Size; Writeln(dazu); x := 1; repeat Textzeile := Textzeile + leerzeichen; x := x+1; until x = dazu; end; Writeln(F2, Textzeile); |
und das ist nun mein problem. die letzte zeile muss auch genau 225 zeichen enthalten... ansonsten kann ich das programm vergessen...