AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Datei in Stream einlesen - Liest nur 0 Bytes
Thema durchsuchen
Ansicht
Themen-Optionen

Datei in Stream einlesen - Liest nur 0 Bytes

Ein Thema von little_budda · begonnen am 9. Feb 2008 · letzter Beitrag vom 9. Feb 2008
Antwort Antwort
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

Datei in Stream einlesen - Liest nur 0 Bytes

  Alt 9. Feb 2008, 10:38
Hallo,

ich möchte eine Datei in einen Stream einlesen um danach Bytweise die Inhalte zu ändern.
Ich verwende folgenden Code:
Delphi-Quellcode:
...
procedure Tfrm_chainAutoProg.LB_ElementClick(Sender: TObject);
var sFileName : string;
    MyFilestream : tfilestream;
    iRealReadBlocks : longint;
    iFileSize : integer;
begin
  // Datei laden
  sFileName := sSourceFileName;

  MyFilestream := tfilestream.create(sFileName , fmOpenRead or fmShareDenyNone);
  iFileSize := MyFilestream.Size;
  setlength(aFileBlockBuffer, iFileSize);

  iRealReadBlocks := MyFilestream.read(aFileBlockBuffer, iFileSize);
  MyFilestream.free;

  if (iRealReadBlocks <> iFileSize) then
...
Leider gibt mir das "MyFilestream.read" immer 0 zurück.
Ich stehe auf dem Schlauch ...

Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Datei in Stream einlesen - Liest nur 0 Bytes

  Alt 9. Feb 2008, 10:42
Probier mal

MyFilestream.Position := 0;

vor dem Read

bzw las die MyFilestream.size anzeigen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Datei in Stream einlesen - Liest nur 0 Bytes

  Alt 9. Feb 2008, 11:42
Also der Tipp mit MyFilestream.Position := 0;
hat nicht geholfen.
Liest immer noch nur 0 Bytes ein.

Die Size des Streams ist richtig.
Daran mache ich ja die Array-Größe fest.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Datei in Stream einlesen - Liest nur 0 Bytes

  Alt 9. Feb 2008, 11:48
Dynamische Arrays sind nur Zeiger, für das Auslesen aus dem Stream musst du daher aFileBlockBuffer[0] angeben.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Datei in Stream einlesen - Liest nur 0 Bytes

  Alt 9. Feb 2008, 12:07
Super. Klappt.
Danke.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Datei in Stream einlesen - Liest nur 0 Bytes

  Alt 9. Feb 2008, 17:09
1. Nach dem anlegen eines TFileStreams (oder auch Memorystreams) ist die Position immer 0

2. Nach der nun ausgehandelten Fehlerquelle, sollte aber iRealReadBlocks trotzdem einen Wert von mehr als 0 enthalten haben. Er hat es zwar sonstwo hingelesen, aber er hat gelesen.
  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 09:24 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