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

 Delphi Discussion :

Problème ecriture fichier binaire


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Animateur commercial
    Inscrit en
    Août 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Animateur commercial

    Informations forums :
    Inscription : Août 2011
    Messages : 47
    Points : 41
    Points
    41
    Par défaut Problème ecriture fichier binaire
    Bonjour

    J'ai un petit souci que je n'arrive pas à solutionner. Lorsque je fais une écriture dans un fichier binaire, j'ai une inversion de l'écriture. Lorsque j'écris la valeur 2170 cela doit me donner en hexa 08 7A, mais lorsque j'ouvre mon fichier dans un éditeur hexa il est inscris 7A 08 Ci joint une copie d'écran ainsi que mon code.

    Je n'arrive pas à solutionner cette erreur.

    Nom : Sans titre-1.jpg
Affichages : 122
Taille : 115,4 Ko

    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
    procedure TForm1.LMDButton2Click(Sender: TObject);
    var
      File1                              : TStream;
      i                                     : integer;
      Value                                 : integer;
     
    begin
      if Options.Edit_Path.Text <> '' then
      begin
        Value := (TrackBar_Slipstream.Position * 1024) Div 100;
     
        File1 := TFileStream.Create('d:\1.exe',fmCreate);
        File1.Position := $201C6A;
        File1.Write(Value,2);
     
        File1.Free;
      end;
    end;

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    c'est une question de Boutisme

    les processeurs intel sont petits boutistes, donc la valeur 2170 dans un registre 16bits sera effectivement inversée, la fonction Swap() permet de changer le boutisme sur 16bits justement.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 449
    Points : 24 856
    Points
    24 856
    Par défaut
    Faudrait surtout savoir qui lira ensuite le fichier et comment ?
    Si c'est un autre programme sur Windows, il y a de grande chance que cela soit aussi du Little-Endian ou Petit-Boutiste (c'est mignon en français)
    Par contre, si le fichier est envoyé à un automate, il faut étudier la documentation pour savoir si il est Big-Endian ou Little-Endian.

    Sinon, si c'est pour modifier un Exe, pourquoi ne pas passer par une Ressource ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre du Club
    Homme Profil pro
    Animateur commercial
    Inscrit en
    Août 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Animateur commercial

    Informations forums :
    Inscription : Août 2011
    Messages : 47
    Points : 41
    Points
    41
    Par défaut
    Merci Paul TOTH, tu viens de solutionner mon souci. Je ne connaissais pas cette spécificité.

    Merci ShaiLeTroll, c'est un programme windows qui lit lefichier après. Là quand je fais mon test c'est un fichier que je crée mais normalement j'édite un fichier déjà existant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème lecture fichier binaire
    Par santino2008 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 19/03/2010, 19h13
  2. Lecture et ecriture fichier binaire
    Par gedonet dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/04/2009, 19h51
  3. [debutant] problème lecture fichier binaire
    Par julien.63 dans le forum Langage
    Réponses: 2
    Dernier message: 23/12/2007, 22h12
  4. lecture ecriture fichier binaire
    Par jonckers dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/04/2007, 09h12
  5. Ecriture fichier binaire : Format TIFF
    Par xChRiSx dans le forum C++
    Réponses: 2
    Dernier message: 12/04/2007, 18h39

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