Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : hexa vers string ? [ Divers / Débutant(e) ] (Nero`)

mercredi 21 novembre 2007 à 20:42:53 | hexa vers string ?

Nero`

bonsoir à tous .

Je rencontre un petit problème de débutant .
J'ai besoin de lire un octèt dans un fichier et ensuit de l'afficher dans une textbox ou autre (type string) seulement la methode que je tente d'utiliser me converti la valeur de l'octès lus en valeur décimale. Je ne sais pascomment faire pour passer l'octèt lus en type string.
voila le bout de code qui me pose problème:

var FB : File Of Byte;
     b : Byte;
     test:string;
begin
if opendialog.execute then
  begin
  assignfile(FB , 'test.bin');
   Reset(FB);
    seek(FB,$0000401A); //offset de lecture exemple a cette offset j'ai la valeur hexa 44
     read(FB,b);
    test:=inttostr(b);  //test contien maintenant 68(valeur decimal) et non pas 44(hexa) :(
   closefile(FB);
  end;
end;

quelqu'un pourrait il me dir comment je doit procéder ???
Merci bonne prog ...

mercredi 21 novembre 2007 à 23:51:17 | Re : hexa vers string ?

japee

Membre Club Administrateur CodeS-SourceS
Salut,

Utilise IntToHex à la place de IntToStr.

Bonne prog'

jeudi 22 novembre 2007 à 09:41:08 | Re : hexa vers string ?

Nero`


Merci pour cette réponse jappe, mais le compilo me retourne une erreur:
"Aucune version surcharger de IntTohex ......>".

Y a t'il une autre solution ?

Merci.
Bonne prog...


jeudi 22 novembre 2007 à 10:19:34 | Re : hexa vers string ?

japee

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Tu as dû faire IntToStr(IntToHex)... et donc surcharger la méthode.

IntToHex convertit un entier vers string directement (voir aide en ligne de Delphi).

La bonne utilisation est :

test := IntToHex(b, 8); // 8 = longueur de la chaîne à retourner

Bonne prog'

jeudi 22 novembre 2007 à 12:49:02 | Re : hexa vers string ?

Nero`

Merci japee ça fonctione impécable :) .
J'ai simplement du metre ->
test := IntToHex(b, 2); // 2 à la place de 8 sinon sa me retournait 00000044.

encore merci :)
Bonne prog...


vendredi 23 novembre 2007 à 05:45:16 | Re : hexa vers string ?

f0xi

Membre Club Administrateur CodeS-SourceS

aie IntToHex est super lourdingue :


const
  _ABTX : array[0..$f] of byte = ($30, $31, $32, $33,
                                  $34, $35, $36, $37,
                                  $38, $39, $41, $42,
                                  $43, $44, $45, $46);

function BTX(const Buffer; const BufferLen: integer): string;
var pR : pWord;
    pB : pByte;
    N  : integer;
begin
  SetLength(Result, BufferLen shl 1);
  pR := pWord(Result);
  pB := @Buffer;
  inc(pB, BufferLen-1);
  for N := 0 to BufferLen-1 do
  begin
    pR^ := word( _ABTX[pB^ shr 4] or (_ABTX[pB^ and $F]  shl 8) );
    inc(pR);
    dec(pB);
  end;
end;



utilisation :

Chaine := BTX(MaVariable, TailleMaVariable);

exemple :

var Buffer:  array[0..1023]  of byte;
...
  RL := stream.Read(Buffer, 1024);
  Chaine := BTX(Buffer, RL);




deefsign.gif



Cette discussion est classé dans : string, valeur, test, hexa, fb


Répondre à ce message

Sujets en rapport avec ce message

Comment écrire une valeur en hexa dans un prog delphi [ par Manthis ] Salut,Je voudrais savoir comment écrire une valeur hexadécimale dans mon prog.Merci Pb avec TListView et TListItem [ par Biose ] Salut à tous, Voilà mon problème, je me sert d'une ListView et à ma premiere action, je rempli ma premiere colonne ://ici "ori" à une valeur String et Ini => MessageBox [ par kanigou ] Voila, ce que je voudrais faire c'est mettre une valeur d'un string dans une MessageBox ... Ini := TiniFile.Create('fichier.ini'); v := ecrire/lire valeur hexa dans la base de registre [ par djl ] voila, je me sert de writeString pour ecrire une chaine et writeInteger pour ecrire un entier (readString et readInteger pour lire)mais comment on fai Recuperer une partie d'un valeur string [ par TheChikenKiller ] Voilà je voudrais récuperer les 30 premier caractères d'un string pour les mettre dans une autre.Que du delphi merci d'avance.(Je débute, tout le temp ReadBinaryData [ par DREAMER2208 ] J'ai besoin de lire une valeur de type binaire dans la base de registre. J'ai donc créé une fonction pour sa. Celle-ci doit me retourner la valeur lue Valeur hexa... [ par viva ] bonjour,Je n'arrive pas à convertir une valeur hexa en dec qui depasse 8 caractères ! est-il possible ? la calculatrice de windows le peut !? avec (Qm vleur abs avec string [ par didi59650 ] Voila X est un string et prend la valeur de 12 (1 + 2)Y est un entier qui vaut 10Comment faire pour avoir la valeur absolue de Z = Y-X??? car j'ai lim Afficher une valeur Hexa ? [ par Squallou ] Salut tout le monde. Je suis débutant (nan sans blague ? -_-) et je cherche à faire un truc tout bêbête : convertir une valeur Hexa en chaîne de cara Tester si la valeur d' un champ est nul [ par SylvainVV ] (re)Bonjour,étant toujours en train d'essayer de gérer toutes les erreurs de mon programme, j'aimerais faire en sorte que l'on ne puisse cliquer sur u


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.