Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [DELPHI] Errore con le filestream... solo nn so quale.. please help

    Per favore se qualcuno sa rispondere che mi sta facendo impazzire..
    Creando normalmente un' istanza TFilestream ( Data ) e poi leggendo una variabile ( Value: Cardinal ) con la ReadBaffer ( Data.ReadBaffer( Value, 4 ) ), senza nessun errore restituisce il valore letto solo con tutti i bit messi al contrario ( nel senso che quello più significativo é l'ultimo..
    cioé avendo $AABBCCDD correttamento scritto in un file, la procedura mi restituisce invece $DDCCBBAA ) e il problema é che questo succede solo con certi file, senza problemi per altri..
    E Leggendo dallo stesso filestream nella stessa posizione usando invece 4 volte un byte come variabile nn da problemi.. solo che mi sembra stupido dover nn poter leggere direttamente con un CArdinal..

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,474

    What?

    Forse posso aiutarti, ma non ho capito molto...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Allora io ho fatto
    Data := TFileStream.Create;
    Data.ReadBaffer( Value, sizeof( Cardinal) ); // Value: Cardinal;

    solo che cosi facendo al posto di leggere $AFBFCFDF mi ritrovo con Value = $DFCFBFAF, invece se faccio

    Data.ReadBaffer( Baffer, sizeof( byte ) ); // Baffer: byte;
    Value := Baffer * $1000000;
    Data.ReadBaffer( Baffer, sizeof( byte ) );
    Value := Value + Baffer * $10000;
    Data.ReadBaffer( Baffer, sizeof( byte ) );
    Value := Value + Baffer * $100;
    Data.ReadBaffer( Baffer, sizeof( byte ) );
    Value := Value + Baffer;

    cioé leggendo byte per byte nn ho problemi..
    Credo che sia un problema di settaggio del compilatore per la gestione del byte più significativo, ma é un problema che mi da solo con alcuni file e in altri no..

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,474
    Sul fatto che la lettura byte per byte possa darti risultati corretti invece di leggere il valore Cardinal tutto in una volta posso essere d'accordo, visto che - pare - ci sia un'interpretazione dei dati tale per cui i bit vengono invertiti.

    Sul fatto che funzioni su alcuni file e invece su altri no...mmm...questo mi lascia alquanto dubbioso. Non c'è alcuna discriminazione tra un tipo di file e l'altro, poichè la lettura avviene appunto byte per byte considerando il file di tipo binario, anche se magari si tratta di un testo.

    A proposito, che tipo di file stai cercando di leggere?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.