Hallo,
ich nutze folgende Code um eine binäre Datei zu erzeugen.
Delphi-Quellcode:
procedure Tfrm_main.Button1Click(Sender: TObject);
var aFileBuffer : array of byte;
iFileLength, ix, iByteCounter : integer;
datei : tfilestream;
bStreamOk : boolean;
s_filename, startpfad : string;
begin
iFileLength := strtoint(edit1.text); // Aktueller Wert: '20980826'
// 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
s_filename := startpfad + edit2.Text; // Aktueller Wert: 'data.bin'
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;
Leider wird die Datei aber immer nur nit einer Länge von 0 Byte angelegt.
Was bitte mache ich denn falsch?
Gruß Holger.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...