[Pascal] Conversion hexa -> decimal

Conversion hexa -> decimal [Pascal] - Delphi/Pascal - Programmation

Marsh Posté le 21-07-2002 à 14:54:36    

Voila je tente de faire une routine de conversion byte par byte
ca donne ca :
 
var
len (longueurdelastringhexa) : Byte
decimal,temp,ecx : String;
A : TFGInt;
F(incrementeurdelastring) : Byte;
 
      Procedure Conversion;
      begin
 
        ecx := chr(ord(test[F]));
        Base256StringToFGInt(ecx,A);
        FGIntToBase10String(A,temp);
        FGIntDestroy(A);
        dec(len);
        inc(F);
        decimal := temp;
         
      end;
Ce qui me manque c'est comment faire la loop, comment avoir la longueur de la string
(len := Lenght(test);marche pas?)
et comment ajouter au fur et a mesure dans decimal les bytes convertis

Reply

Marsh Posté le 21-07-2002 à 14:54:36   

Reply

Marsh Posté le 21-07-2002 à 15:00:13    

C'est pas clair ton truc là
pour la longueur tu peux prendre Test[0]


Message édité par antp le 21-07-2002 à 15:00:42

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-07-2002 à 15:04:26    

Merde j'ai oublié test : String
pour le bytes c'est pas grave les nb sont moins longs que 255
(jutilise fgint parceque j'ai pas envie de refaire la routine de conversion)en fait il me faudrait un genre "repeat until" et ou
le decimal soit sans : decimal := temp+temp1+temp2


Message édité par fricky22 le 21-07-2002 à 15:10:04
Reply

Marsh Posté le 21-07-2002 à 15:08:32    

j'avais édité mon message entre temps :D
Si tu travailles en vieux Pascal string c'est 255 caractères max il me semble.
Enfait tout dépend si ce sont des ShortString ou des AnsiString/LongString...
Mais si tu es en Delphi par ex je crois que tu as intérêt à utiliser des Integer plutôt que des Byte, en mémoire y a pas trop d'intérêt à utiliser Byte plutôt que Integer niveau performance.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-07-2002 à 22:18:58    

Bon j'ai trouvé comment faire mais j'ai un problème
le until F=len(test) marche pas :(
 
var
   temp,ecx,test : String;
   A : TFGInt;
   i,F : integer;
 
     Procedure Conversion;
      begin
      F:=1;
       
        repeat
 
        ecx := chr(ord(test[F]));
        Base256StringToFGInt(ecx,A);
        FGIntToBase10String(A,temp);
        FGIntDestroy(A);
        inc(F);
        write(temp);
 
        until F=lenght(test);
 
      end;

Reply

Marsh Posté le 21-07-2002 à 23:26:51    

antp a écrit a écrit :

Mais si tu es en Delphi par ex je crois que tu as intérêt à utiliser des Integer plutôt que des Byte, en mémoire y a pas trop d'intérêt à utiliser Byte plutôt que Integer niveau performance.




Beh pq ?
Un Byte C + petit  :D


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 21-07-2002 à 23:48:27    

[SDF]Poire a écrit a écrit :

 
Beh pq ?
Un Byte C + petit  :D  




 
C'est sur un processeur 32 bits (à priori) donc ses registres font 32 bits, comme les Integer, en général y a intérêt à utiliser des Integer pour tout ce qui est variable non destinée à du stockage à moyen ou long terme.
Demande à Zion si tu me crois pas :p


Message édité par antp le 21-07-2002 à 23:49:15

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-07-2002 à 00:21:38    

antp a écrit a écrit :

 
 
C'est sur un processeur 32 bits (à priori) donc ses registres font 32 bits, comme les Integer, en général y a intérêt à utiliser des Integer pour tout ce qui est variable non destinée à du stockage à moyen ou long terme.
Demande à Zion si tu me crois pas :p




Y a pas que des Integer qui font 32 bits...
pq pas des Cardinal ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 22-07-2002 à 01:06:34    

[SDF]Poire a écrit a écrit :

 
Y a pas que des Integer qui font 32 bits...
pq pas des Cardinal ?




 
C'est kif, mais c clair que faire une addition sur 8bits ou 32bits c'est le même temps (n'est ce pas antp, cfr Paillouc) exactement  :D  


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 22-07-2002 à 09:45:03    

[SDF]Poire a écrit a écrit :

 
pq pas des Cardinal ?




 
une lettre de plus à taper, et beaucoup de fonctions s'attendent à avoir un Integer alors autant utiliser ça :D

Reply

Marsh Posté le 22-07-2002 à 09:45:03   

Reply

Marsh Posté le 22-07-2002 à 11:25:40    

antp a écrit a écrit :

 
 
une lettre de plus à taper, et beaucoup de fonctions s'attendent à avoir un Integer alors autant utiliser ça :D




Certaines fonctions s'attendent à voir un Cardinal :D  
G du changer des Integer en Cardinal au passage à Delphi 5 ou 6 je me rappel + :ange:  
Mais je te taquine  :D  
 :hello:


Message édité par [SDF]Poire le 22-07-2002 à 11:26:52

---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 22-07-2002 à 11:34:18    

ouais mais bon y a nettement plus de fonctions qui veulent du Integer que tu Cardinal :kaola:

Reply

Marsh Posté le 22-07-2002 à 12:12:01    

antp a écrit a écrit :

ouais mais bon y a nettement plus de fonctions qui veulent du Integer que tu Cardinal :kaola:




Pas certaines API  :kaola:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 22-07-2002 à 14:00:02    

[SDF]Poire a écrit a écrit :

 
Pas certaines API  :kaola:  




 
Ouaip, mais c chiant quand tu fais des opérations sur des cardinal et des integer, tu te prends toujours un warning dans la tronche comme quoi tu combines un truc signé et non signé  :ange:  
 


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed