Hallo little Budda,
Ich habe Deinen Code einmal ausprobiert und leicht geändert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aFileBuffer : array of byte;
iFileLength, ix, iByteCounter : integer;
datei : tfilestream;
bStreamOk : boolean;
s_filename, startpfad : string;
begin
[b]iFileLength := 123; // Aktueller Wert: '20980826'[/b]
// Array erzeugen
setLength(aFileBuffer, iFileLength);
for ix := 0 to (iFileLength - 1)
do aFileBuffer[ix] := 55;
// Startpfad ermitteln
getdir(0, startpfad); // Startpfad einlesen
if (startpfad[length(startpfad)] <> '\')
then startpfad := startpfad + '\'; // Pfad ggf. korrigieren
// Dateiname zuweisen
[b] s_filename := 'c:\temp\test.bin'; // Aktueller Wert: 'data.bin'[/b]
bStreamOk := true;
try
datei := Tfilestream.create(s_filename, fmcreate or fmShareExclusive);
except
bStreamOk := false;
end;
if (bStreamOk = true) then
begin
// Schreiben der DateiInhalte in den Stream
try
iByteCounter := datei.Write(aFileBuffer, iFileLength);
finally
datei.free;
end;
// Prüfen ob die korrekte Anzahl Bytes geschrieben wurde
if (iByteCounter <> iFileLength)
then showmessage('Stream wurde erzeugt, hat aber die falsche Größe.')
else showmessage('Stream wurde erzeugt.');
end
else
begin
showmessage('Stream konnte nicht erzeugt werden.');
end;
end;
und siehe da es wird eine 123Byte große Datei erzeugt.
Schau Dir im Debugger die Übergabe der Dateigröße einmal an.
Gruß
K-H