![]() |
Delphi-Version: 5
Merkwürdiger Fehler bei filestream.write
Moin,
ich schreibe in einem Thread Daten in einen Filestream. Als Puffer habe ich TIdBytes (= TBytes bei D2009), jeweils etwa 2000 bytes mit einer sich wiederholenden Sequenz, die ich mir im Debugger auch anzeigen lassen kann. Der Filestream schreibt aber jeweil an den Anfang Zitat:
Liegt das an den TBytes? Werden die evtl. in einer Doppelbytestruktur verwaltet und können so nicht als "normale" Bytes geschrieben werden? Der Compiler meckert jedenfalls nicht. FileStream.write habe ich auch noch nie unter Win7/64 verwendet. Grüße, Messie |
AW: Merkwürdiger Fehler bei filestream.write
übergibst Du in der Art @MyBytes[0] ?
|
AW: Merkwürdiger Fehler bei filestream.write
mit
Delphi-Quellcode:
sollte es eigentlich klappen.
fs.write(buffer[0],towrite);
Du hast buffer hoffentlich initialisiert? (klar sonst zeigt der Debugger nur sauerkraut) Gruß K-H |
AW: Merkwürdiger Fehler bei filestream.write
Hallo,
setzt du vor dem Schreiben auch Position (zurück) auf 0 ? Heiko |
AW: Merkwürdiger Fehler bei filestream.write
Delphi-Quellcode:
So mache ich das. Der Buffer sollte in seiner Größe von ReadBytes dimensioniert und auch initialisiert werden. Und die Ergebnisse sehen auch vernünftig aus beim Debuggen.
while not terminated do
begin bytecount := indyclient.IOHandler.InputBuffer.Size; indyclient.IOHandler.ReadBytes(vBufferIn, bytecount, false); FileStream.WriteBuffer(vBufferin,bytecount); synchronize(DisplayUpdate); Die Position setze ich nicht auf 0, der Filestream wird mit fmcreate jedesmal neu erzeugt, auch der Dateiname ist jedesmal ein anderer. Danke, Messie |
AW: Merkwürdiger Fehler bei filestream.write
Ich hätte noch gerne die Definition von vBufferIn gesehen.
Wenn es wirklich ein dyn Array ist, Solltest Du es immer mit vBufferIn[0] verwenden. Gruß K-H |
AW: Merkwürdiger Fehler bei filestream.write
Zitat:
Grüße, Messie |
AW: Merkwürdiger Fehler bei filestream.write
vBufferin[0] ist die erste "Adresse" im Puffer.
Wenn Du ein dyn Array verwendest ist VBufferIn nur der Pointer auf das Array. Bei einem stat Array (
Delphi-Quellcode:
) ist VBufferin[0] ud VBufferin das gleiche.
vBufferin : array [0..4095] of byte;
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz