ich will beides! den blockread-Befehl find ich interessant, weil ich z.B. noch nie mit buffern gearbeitet habe und ich möchte auch ein programm schreiben, was eine delphi
unit erstellt, indem es eine Datei mit blockread einliest und dann in der
Unit eine prozedur erstellt die das ganze eingelesene dann wieder speichert(blockwrite)! so kann man komfortabel irgentwelche dateien mit compilieren! und bei bedarf extrahieren
also danke für eure Hilfe
der befehl gibt dann also z.B. bei einer Textdatei in dem Array die zahlen für die Zeichen aus, vom anfang bis zum z.B. 101. zeichen!
um zur problematik mit der dateilänge zu kommen - da wäre dann wohl sowas angebracht:
Delphi-Quellcode:
var i: Integer;
wert: Array[0..1000] of Byte;
weiter: Boolean;
f: file;
begin
i := 0;
AssignFile(f,'mmm.lol'); //öffnen der datei wenn ich das richtig verstehe!
Reset(f,1); //das macht die datei wahrscheinlich zum lesen fertig, oder?
weiter := true;
while weiter = true do
begin
i := i + 1;
try
Blockread(f, wert,i); // da überschreibt er dann immer wieder biss es nicht mehr geht
memo1.Lines.Add(inttostr(wert[i]));
except
weiter := false;
end;
end;
CloseFile(f);
form1.Caption := inttostr(i)
end;
in meiner datei steht folgendes:
sdm, v hkblsd n.sdn uübse l-.we
w3.menp weö
erö wei wq r
aber im Memo geht es nur bis zeile 11 (eigentlich nur bis 10 aber der macht noch nen Absatz) es sind doch aber vielmehr zeichen!
^^Warum liest er nur 11 bytes?
im Memo steht folgendes:
113
32
114
246
32
119
101
105
32
4
mal ganz abgesehen davon, das er über das dateiende hinaus liest!(diese Fehlermeldung ist mir erstmal egal)
ich hab's noch mal probiert mit der Textdatei in der nur "Hallo" steht
im memo sind nur 2 (nicht 4) Zeilen:
72
97
^^das sieht ja schon nach dem Zeichen code aus! aber warum sind das nur die ersten 2 Zeichen?