IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Problèmes avec BlockRead


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problèmes avec BlockRead
    Salut !

    j'ai un problème avec l'utilisation de BlockRead. En fait, le 1er appel que je fais pour lire un byte fonctionne correctement mais à partir du 2e appel, la fonction renvoie un résultat incorrect.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
       function Recherche_Infos_Fichier(Nom_Fichier :String):T_Infos_Fichier;
       var
          Infos : T_Infos_Fichier;
          byte : integer;
     
       begin
          AssignFile(Fichier_Met,Nom_Fichier);
          Reset(Fichier_Met);
     
     
          BlockRead(Fichier_Met,byte,1);
          ShowMessage(IntToHex(byte,1)); //Affichage correct ex : E0
     
          BlockRead(Fichier_Met,byte,1);
          ShowMessage(IntToHex(byte,1)); //Affichage incorrect ex : 512AA562 
     
          CloseFile(Fichier_Met);
     
          result := Infos;
       end;
    Si quelqu'un pouvait m'aider ça serait cool... merci
    Si un problème a une solution, rien ne sert de s'inquiéter. Mais si il n'y a pas de solution, s'inquiéter ne changera rien.

  2. #2
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    J'ai mis 1 mais ça peut être n'importe quoi : ça représente la taille minimale d'un bloc en octets. Dans ton exemple, tu lis un integer qui est de 4 octets. Tu peux donc faire (Buffer étant l'integer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Reset(Fichier, 4);
    BlockRead(Fichier, Buffer, 1);
    ou alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Reset(Fichier, 1);
    BlockRead(Fichier, Buffer, 4);
    Windows XP - Delphi 7
    Nous ne controlons une chose que si nous sommes capables de la détruire à tout moment. [Frank Herbert - Dune]

  3. #3
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Je viens de voir aussi que tu déclares une variable nommée byte. Byte est le nom d'un type de donné (valeur numérique sur un octet)... peut être que ça pose un problème à Delphi :
    Windows XP - Delphi 7
    Nous ne controlons une chose que si nous sommes capables de la détruire à tout moment. [Frank Herbert - Dune]

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    c'est bon, ça marche merci... En fait, au lieu de lire un Integer, je lis un Char. Comme ça, je suis sûr que je ne lit qu'un octet.

    Merci pour ton aide.
    Si un problème a une solution, rien ne sert de s'inquiéter. Mais si il n'y a pas de solution, s'inquiéter ne changera rien.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo