![]() |
tfilestream.read(dynamischer array,x)=> fehler ???
Hi Leute!
Ich möchte eine Datei in einen array of byte laden: Wenn der Array statisch ist funktioniert das auch,
Delphi-Quellcode:
sobald er aber dynamisch definiert ist (und das brauche ich :( ) bleiben alle Bytes im array 0
var
bytes: array[1..1000] of byte; Datei: TFileStream; begin datei := TFileStream.Create('c:\clip.wav', fmopenread); caption := inttostr(Datei.Read(bytes, 1000)); // gibt 1000 zurück end;
Delphi-Quellcode:
:gruebel: :gruebel: :gruebel:
var
bytes: array of byte; Datei: TFileStream; begin setlength(bytes, 1000); datei := TFileStream.Create('c:\clip.wav', fmopenread); caption := inttostr(Datei.Read(bytes, 1000)); // gibt 1000 zurück end; Irgendwelche Lösungsvorschläge??? DaDu |
Re: tfilestream.read(dynamischer array,x)=> fehler ???
So funktionierts:
Delphi-Quellcode:
var
bytes: array[1..1000] of byte; Datei: TFileStream; begin datei := TFileStream.Create('c:\clip.wav', fmopenread); caption := inttostr(Datei.Read(bytes[1], 1000)); // gibt 1000 zurück end; |
Re: tfilestream.read(dynamischer array,x)=> fehler ???
Hi Dax,
ich weis das es so funktioniert, wenn der array statisch ist: Es funktioniert aber nicht mit einem dynamischen array und da ich nicht wie im Beispiel immer 1000 bytes, sondern eine variable Anzahl auslesen möchte, brauche ich unbedingt dynamische arrays. |
Re: tfilestream.read(dynamischer array,x)=> fehler ???
Wenn du Daten in ein Array einlesen willst, musst du immer das erste Element des Arrays bei der Read-Methode angeben. Bei dyn. Arrays wäre das dann MyArray[0].
|
Re: tfilestream.read(dynamischer array,x)=> fehler ???
Achso!
Thx, DaDu |
Re: tfilestream.read(dynamischer array,x)=> fehler ???
Moin Dadu,
Zitat:
Was allerdings bei Dir in jedem Falle fehlt, sind die Freigabe des TFileStream, und der Resourcenschutzblock dafür.
Delphi-Quellcode:
Foo := TFileStream.Create(...);
try // Mach was mit dem FileStream finally FreeAndNil(Foo); end; |
Re: tfilestream.read(dynamischer array,x)=> fehler ???
Hi Christian,
hab das bei dem Beispiel in der Tat vergessen, im richtigen Programm gebe ich den Speicher natürlich wieder frei. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 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