begin process at 2010 02 10 10:48:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Question simple ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Question simple ...

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ée 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...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales