eine ascii-datei wird eingelesen, jede zeile mit nummern versehen (1-ende) und dann wird es in einer memo ausgegeben.
das problem ist, dass immer eine zeile zuwenig ausgelesen wird.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| var i,ende : integer; TxtFile: TextFile; t : string; Data: array of string;
AssignFile(TxtFile, command); Reset(TxtFile); ende := 0; SetLength(Data, 0); repeat Inc(ende); readln(TxtFile, t); SetLength(Data, Length(Data) + Length(t)); Data[ende] := t; until EOF(TxtFile);
SetLength(Data, Length(Data) + 3 * ende); for i := 1 to ende do Data[i] := IntToStr(i) + ' ' + Data[i]; SetLength(Data, Length(Data) + 2); Data[1] := Data[1]; i := Length(Data[5]); Data[5] := ''; SetLength(Data, Length(Data) - i); for i := 1 to ende-1 do Memo.Lines.Add(Data[i]); |
das ende-1 am schluss ist wichtig, damit wird verhindert, dass eine leere zeile eingetragen wird, die nicht in der datei steht.
ich will nichts mit loadfromfile() oder sonstwas machen, da ich mehrere dateien einlesen will,
ohne das das memo feld geleert wird.
aber was ist falsch ?