AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit dynamischen Array

Ein Thema von bono_82 · begonnen am 5. Apr 2007 · letzter Beitrag vom 5. Apr 2007
Antwort Antwort
bono_82

Registriert seit: 11. Dez 2005
17 Beiträge
 
#1

Problem mit dynamischen Array

  Alt 5. Apr 2007, 09:29
Hallo,

ich will eine Datei per FileStream byteweise auslesen, habe allerdings
folgendes Problem beim Arbeiten mit einem dynamischen Array.

Deklaration: Data_Buffer: array of byte; Verwendung (z.B. die ersten 512 Byte auslesen):
Delphi-Quellcode:
str := VisuFilePath+VisuFileName+'.dat';
VisuFile :=   TFileStream.Create(str,fmShareDenyWrite);
SetLength(Data_Buffer,512);
VisuFile.Position := 0;
VisuFile.Read(Data_Buffer,512);
Ich bekomme so einfach nichts aus dem Stream gelesen. Das ganze funktioniert mit einem statischen Array
allerdings wunderbar. Ich finde einfach keinen Fehler.
Wäre schön wenn mir jemand helfen könnte

Gruß!
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Problem mit dynamischen Array

  Alt 5. Apr 2007, 09:35
Wozu brauchst du überhaupt ein dyn. Array? In dem Code-Schnipsel weist du ihm eine feste Länge zu (also immer 512) ... da kann man das doch auch mit einem statischen Array mach, oder???

Und hast du bedacht, dass, wenn das Array 512 groß ist, das der Index von 0-511 geht? (Kann ja sein, dass beim Auslesen von dem Array dann irgendein Fehler passiert)
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Problem mit dynamischen Array

  Alt 5. Apr 2007, 09:39
Dynamische Arrays sind da wie dynamische Strings: wenn du sie für einen untypisierten Parameter übergibst, solltest du das erste Element benutzen. In deinem Fall also:
VisuFile.Read(Data_Buffer[0], 512);
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Problem mit dynamischen Array

  Alt 5. Apr 2007, 09:39
Versuch es mal so

VisuFile.Read(Pointer(Data_Buffer)^,512);
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
bono_82

Registriert seit: 11. Dez 2005
17 Beiträge
 
#5

Re: Problem mit dynamischen Array

  Alt 5. Apr 2007, 09:58
Danke!

Beide Varianten...

Delphi-Quellcode:
VisuFile.Read(Pointer(Data_Buffer)^,512);

VisuFile.Read(Data_Buffer[0],512);
funktionieren.

Ist im Nachhinein auch logisch. Also, besten Dank!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz