Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Und noch ein Problem: Kann aus TFilestream nicht lesen (https://www.delphipraxis.net/106609-und-noch-ein-problem-kann-aus-tfilestream-nicht-lesen.html)

alldelphinator 13. Jan 2008 22:13


Und noch ein Problem: Kann aus TFilestream nicht lesen
 
also... mein 2. Problem in dieser Stunde
:duck:

Diesmal liefert
Delphi-Quellcode:
function TXORStream.Read(var Buffer; Count: Integer): Integer;
var
  I: Integer;
  s : array of byte;
begin
  setlength(s, count);
   result := FStream.Read(s[0], count);
  for I := 0 to result -1 do
  begin
    s[i] := s[i] xor (ord(PW[((FStream.Position-result+I) mod length(PW))+1]));
  end;
  move(s[0], Buffer, result);
end;
immer 0 zurück. FStream ist als TStream deklariert, jedoch mit
Delphi-Quellcode:
FStream := TFileStream.Create(Filename, fmOpenReadWrite OR fmShareExclusive);
initialisiert worden. FStream.Size liefert den korrekten Wert, Position steht auch auf null. Nun frag ich mich: warum kann ich nicht aus dieser Datei lesen?? (bzw. bekomme keine Daten)

SirThornberry 13. Jan 2008 22:16

Re: Und noch ein Problem: Kann aus TFilestream nicht lesen
 
vielleicht ist count ja 0 wenn position wirklich den richtigen wert hat.

alldelphinator 13. Jan 2008 22:17

Re: Und noch ein Problem: Kann aus TFilestream nicht lesen
 
oh... hatte ich vergessen anzugeben... count ist 2048... sollte auch kein Problem sein...

SirThornberry 13. Jan 2008 22:18

Re: Und noch ein Problem: Kann aus TFilestream nicht lesen
 
bist du mal schritt für schritt im debugger durchgegangen und hast die werte auch kontrolliert? Notfalls auch mal in FStream.Read rein steppen

alldelphinator 13. Jan 2008 22:24

Re: Und noch ein Problem: Kann aus TFilestream nicht lesen
 
Ich bins gerade durchgegangen. s bleibt (wie zu erwarten war, wenn nichts dran geändert wurde) mit 2048 nullen gefüllt. Ansonsten kann ich in FStream.Read nicht reinsteppen (mal abgesehen von der Assemblervariante). Sonst noch Ideen woran es leigen könne? Ich werd auch (bzw bin es schon) ratlos... Kann doch nicht sein, das man in einem Filestream nicht lesen kann :?

SirThornberry 13. Jan 2008 22:27

Re: Und noch ein Problem: Kann aus TFilestream nicht lesen
 
ein Stream liefer definiv nur 0 zurück wenn nichts gelesen wird. Und das kommt in der Regel auch nur vor wenn es nichts zu lesen gibt - also die StreamPosition nicht kleiner der Streamgröße ist. Um rein zu steppen schalten in den Projektoptionen die Debug-dcu's an

alldelphinator 13. Jan 2008 22:34

Re: Und noch ein Problem: Kann aus TFilestream nicht lesen
 
Das mit den Debug-DCU's wusste ich nicht... Danke!
Ich werd mal meinen PC neustarten, vll. brings was... Vielleicht ist noch irgendein nicht freigegebenes handle etc. im Speicher, das den Zugriff blockt...
Edit: Hat nichts gebracht, gleiches Problem wie vorher... Hab noch nen Memory-Leak Problem beseitigt... gebracht hats leider nix...
Edit2: Die ganze Sache auf Assignfile, Reset, Rewrite etc. umgestellt => keinerlei Veränderung??? geht immernoch nicht...
Edit3: Tippe inzwischen auf etwas, das tiefer leigt... Werd mich morgen dran machen gute Nacht allerseits!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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