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 : Question simple ... [ Divers / Débutant(e) ] (greg38bj)

samedi 8 mars 2008 à 18:30:49 | Question simple ...

greg38bj

Bonjour à tous
Bon, j'essaye toujours de traduire un code delphi en vb, et je bloque sur certaines choses (qui paraissent pourtant simples).
Voici un des problème :

var x,i:word;
    a:longword;
begin
   x:=0;
   while (x<256) do
     begin
       a:=x shl 24;
       for i:= 0 to 7 do
        begin
               a:= a + a;     <========= ici le problème(ou plutôt ce que je ne comprend pas)
               a:= a xor Seed;
        end;
       inc(x);
     end;
   end;

comment et pourquoi obtient-on zéro sachant que "a" a une valeur ?
si x = 1 ou 2 alors a + a  = 0

merci de bien vouloir éclairer ma lanterne

@+
greg38bj

dimanche 9 mars 2008 à 12:41:56 | Re : Question simple ...

cantador

Membre Club

a:= a + a;
pourquoi ne pas écrire a:= 2*a;

Mais, je pense que le mieux est de dire ce que tu souhaites réaliser plutôt que de donner un code à corriger sans savoir ce qu'il fait.

cantador


dimanche 9 mars 2008 à 13:21:19 | Re : Question simple ...

f0xi

Membre Club Administrateur CodeS-SourceS

decalaration de variable locale :

  X est un mot non signé (16 bits)
  I est un mot non signé (16 bits)
  A est un mot long non signé (32 bits)

ROUTINE :
  X est egal a 0
  TANT QUE X est inferieur a 256 faire :
    A est egale a X "shift left" 24 (décalé de 24 bits sur la gauche)
    POUR I de 0 a 7 faire :
      A est egal a A + A
      A est egal a A xor (ou exclusif) Seed
    fin POUR.
    X est incrementé de 1 (X = X + 1)
  fin TANT QUE.
fin ROUTINE


en VB (pas sur a 100%)

Dim X As UShort
Dim I As Integer
Dim A As UInteger

  X = 0
  While (X < 256)
    ' A = X shl 24
    A = X*16777216

    For I = 0 to 7
      A = (A+A)
      A = A Xor Seed
    Next I

    X = X + 1
  WEnd
    



deefsign.gif

dimanche 9 mars 2008 à 13:23:53 | Re : Question simple ...

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

a:= a + a;
pourquoi ne pas écrire a:= 2*a;

parce que ADD est mieux que MUL :)

du plus rapide au plus lent
A = A + A // A = A << 1
A = A * 2
A = A / 0.5


deefsign.gif

dimanche 9 mars 2008 à 13:50:58 | Re : Question simple ...

cantador

Membre Club

parce que ADD est mieux que MUL

oui bien vu foxi (faut que je révise mon assembleur..)

Mais

Dim X As UShort
Dim I As Integer
Dim A As UInteger

  X = 0
  While (X < 256)
    ' A = X shl 24
    A = X*16777216

    For I = 0 to 7
      A = (A+A)
      A = A Xor Seed
    Next I

    X = X + 1
  WEnd


çà donne quoi en Pacal ?

cantador


dimanche 9 mars 2008 à 14:13:10 | Re : Question simple ...

greg38bj

salut et merci à tous
En effet, le probleme rencontré venait du fait que a+a en vb ça fait a << 1
Comme je dois travailler sur des entiers 32 bits, a+a ne fonctionnait pas
Si vous voulez connaitre le code complet, vous le trouverez ici
J'ai bien d'autres soucis de traduction car on est limité au niveau grandeur de nombre en vb

@+
greg38bj

dimanche 9 mars 2008 à 14:24:08 | Re : Question simple ...

cantador

Membre Club
Réponse acceptée !
greg38bj :

laisse tomber vb et
viens faire du pascal avec nous..

cantador

dimanche 9 mars 2008 à 15:50:50 | Re : Question simple ...

greg38bj

re ...
Je veux bien, mais je pense que la transition va être dur
je suis passé de vb6 a vb express 2005 l'année dernière et ça a déjà été dur alors me mettre au delphi ça risque d'être encore plus dur.
Je risque d'être un boulet car j'ai besoin de résultat rapide, si je dois passer des heures sur internet à chercher comment on fait ci ou ça, ça risque d'être long pour sortir un malheureux soft.
Je travaille surtout sur le décryptage de fichiers et sur la communication par port série.
Alors bonjour les angoisses !

@+
greg38bj

dimanche 9 mars 2008 à 16:12:31 | Re : Question simple ...

cantador

Membre Club
à 38 beaux jours, on est en pleine forme et

From vb6 to Delphi, c'est du gâteau,
car on n'a pas besoin de se faire expliquer toutes les bases (enfin si un peu quand même...)
Poses toutes les questions que tu souhaites, on te répondra (à condition que tu prenne un avatar...)

Lorsque tu auras gouté un peu au produit, tu ne pourras plus t'en passer..

C'est TERRIBLEMENT CONTAGIEUX !

cantador



Cette discussion est classé dans : end, simple, question, begin


Répondre à ce message

Sujets en rapport avec ce message

Question Keylogger [ par Hardouz ] salut j'utilise ce code pour recupérer les frappe du clavier et le prbléme c'est que si j'appuis sur n'importe quel touche (exemple 'A')le Tedit1.text FINDKEY [ par hassaine ] Bonjour, chaque mois je devrais charger une table qui s'appel pointage sa m'arrive de click deux fois sur la touche de transfert mon soucis est le sui Récursivité ??? [ par Also know as ] Bonjour,Voilà je cherche à faire de la récursivité sous Delphi mais là j'avoue que je trouve ca un peu mal malheureusement...Voci ma procedure : proce Signalant les Tedits non remplis? [ par jennybless ] Salut! J'aimerai bien qu'à l'aide de ces codes que j'ai écrit qu'apparaisse un message disant qu'un ou plusieurs tedits n'ont pas été remplis.unit U Comment changer des chiffres en lettres dans une autre langue? [ par jennybless ] Salut! Les codes ci-aprés ne sont pas écrit par moi. Ils fonctionnent parfaitement. C'est juste une convertion des chiffres en lettres. Bref, cela s Bien installer un API [ par Also know as ] Bonjour a tous, Bon alors apres une longue surune certaine erreur enfin resolu :-), on m'a conseille d'utiliser un nouvel API. Je souhaiterais utilise Lire port parallèle [ par revsys ] Bonjour,J'utilise ZLportIO pour pouvoir communiquer avec le port parallèle, et plus précisement pouvoir lire la pin n°14.procedure TForm1.FormCreate(S PB Bitblt [ par fbalien ] Bonjour J'ai des soucis avec l'API Bilblt je l'utilise pour faire des captures d'écrans J'ai au bout d'un moment une erreur "Espace insuffisant pour t Problème exécution du .EXE [ par revsys ] Bonjour,Quand j'exécute mon programme à partir de Delphi, toutes mes commandes fonctionnent.Mais si je lance seulement l'EXE, là une option me permett Exclure des caractères d'un string [ par DRJEROME ] bonjour,je n'ai pas accès au "Snippets" de mon ordinateur principal alors que j'ai accès par un ordinateur d'un collègue ... bizarre !je voulais juste


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,265 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é.