![]() |
TFIleStream Read füllt Buffer nicht
Neues Problem neues Thema.
Mein Fortschritt
Delphi-Quellcode:
FileStream.Read füllt den Buffer nicht fehlt noch was, oder habe ich was übersehen ?
if (GetPngAnimation(gp.PngList[SelectedIndex], anih)) then
begin //if FOpen(PWideChar(wsFile), 0, 0, hFileIn) = 0 then FileStream := TFileStream.Create(wsFile, fmOpenRead); if FileStream.Handle <> 0 then begin DC := CreateIC('DISPLAY', nil, nil, nil); ImgHDC := CreateCompatibleDC(DC); hDIB := SKAERO_CreateDIBSection(ImgHDC, anih.Width * anih.Frame, anih.Height, 32); SelectObject(ImgHDC, hDIB); if GDIP_CreateFromHDC(ImgHDC, Graphics) = OK then begin BufferSize := FileStream.Size - anih.offset - sizeof(anih) + 1; SetLength(sBuffer, BufferSize); FileStream.Seek(anih.offset - 1, soFromBeginning); FileStream.Read(sBuffer, BufferSize); //if FGetAt(FileStream.Handle, anih.offset - 1, sBuffer) = S_OK then //begin gruss |
AW: TFIleStream Read füllt Buffer nicht
Erstmal hat TStream.Read doch einen Rückgabewert, den man auswerden könnte.
BlockRead und Co. werfen Exceptions, wenn nicht die volle angeforderte Anzahl gelesen wurde. |
AW: TFIleStream Read füllt Buffer nicht
Zitat:
Edit: Die Rückgabe ist 0 und der sBuffer nicht gefüllt. gruss |
AW: TFIleStream Read füllt Buffer nicht
Und es sollte
Delphi-Quellcode:
sein, sonst schreibst du an die falsche Adresse.
Read(sBuffer[0], BufferSize)
|
AW: TFIleStream Read füllt Buffer nicht
Zitat:
Danke dir. gruss |
AW: TFIleStream Read füllt Buffer nicht
Zitat:
Gut, jemand hat auch nicht angegeben, ob es sich hier um ein älteres Delphi handeln könnte. |
AW: TFIleStream Read füllt Buffer nicht
Zitat:
|
AW: TFIleStream Read füllt Buffer nicht
Zitat:
gruss |
AW: TFIleStream Read füllt Buffer nicht
Hmmm, keine Ahnung seit wann das da ist.
Irgendwann nach den Generics wurde das eingebaut, falls ich mich nicht irre, und 2010 ist auch schon ein kleines bisschen danach. :stupid: TStream.Read sagt man "lies maximal soviele Bytes" und im Result sagt es dann, was es gelesen hat, also falls z.B. die Datei vorher zuende ist. |
AW: TFIleStream Read füllt Buffer nicht
Zitat:
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 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-2025 by Thomas Breitkreuz