Comprendre un algo delphi pour pouvoir le traduire dans un autre langage

Résolu
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 - 11 juil. 2005 à 15:34
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 - 12 juil. 2005 à 14:40
Messieurs dames bonjour !!

je me permet de venir poster sur le forum delphi car je dispose d'un programme que je dois traduire dans un autre langage.(VB 6...)
si vous pourriez essayer de m'expliquer ligne par ligne ce qui se passe
je vous en remercierais gracieusement....

voila le code..

bon prog a tous.

fabrice
anneebalise est un int
BissextAnnee est un char
anneebissextile est un int

anneebalise := (ord(BissextAnnee) shr 1) and $F;
anneebissextile := (ord(BissextAnnee) and 1)<> 0;

9 réponses

jinh68 Messages postés 215 Date d'inscription mardi 29 juillet 2003 Statut Membre Dernière intervention 1 septembre 2006
12 juil. 2005 à 13:28
Erf je pense être juste niveau temps cet après midi(je bosse aussi)



- Mais quelques indications :



- En VB pour déclarer une variable, on utilise Dim



exemple: Dim i as Integer



-Le type Cardinal n'existe pas sous VB, il s'agit d'un nombre codé sur 4 octets non-signé



Deux solutions: - prendre le type Long


- créer ton type en faisant un tableau
de 4octets



- Le type char n'est pas natif sous VB, utilise le type Byte et la fonction Chr qui fait l'équivalence ASCII-caractère.



- La fonction Ord existe aussi sous VB.



- Pour le décalage de bits (shr) tu peux diviser simplement ton nombre par 2.



- Sous VB le type String n'est pas indexé, utilise la fonction Mid (à la place de Midstr aussi, c'est la même syntaxe).



- La structure If...Then...Else reste pareil.



Je me tiens à ta disposition pour des questions complémentaires.



Bon courage en espérant t'avoir aidé !




j!nH
3
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
11 juil. 2005 à 15:42
Alors la fonction Ord donne le numéro ascii du caractere.

La fonction shr décale tout les bits d'un côté.



En fait, ce ne sont pas des comparaisons booleenne mais des manipulations sur les bits.

Essaie de trouver un équivalent au fonctions (s'il y a une aide regarde dans "manipulation de bits" et opérateur logique")



Je connnais pas assez le VB pour pouvoir t'aider plus. Désoler.
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
11 juil. 2005 à 15:55
Salut,



annebissextile est visiblement un Boolean, pas un Integer.



Ord(BissextAnnee) te renvoie le numero de rang du Char, c'est à dire sa valeur Ascii.

shr décale les bits d'1 rang vers la droite au niveau de l'octet.



Si l'on pouvait voir le morceau de code, ça serait mieux.

D'autant plus qu'il a l'air intéressant.



Bonne prog'



japee
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
11 juil. 2005 à 15:56
J'avais pourtant rafraîchi avant de poster...



Salut, désolé, CptPingu
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
11 juil. 2005 à 16:18
1: merci d avoir répondu
2:une idée sur le : and $F ??
3:personne est interprete delphi/VB6 en 3 eme langue? :-)
merci..
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
11 juil. 2005 à 19:40
and $F fait un et bit a bit sur le resultat de (ord(BissextAnnee)
shr 1) c.à.d élimine les bits de poids en les mettant a 0

exemple si (ord(BissextAnnee) shr 1):=01101110 (ord(BissextAnnee) shr 1) and $F donne: 0000 1110
0
jinh68 Messages postés 215 Date d'inscription mardi 29 juillet 2003 Statut Membre Dernière intervention 1 septembre 2006
12 juil. 2005 à 12:41
Si tu présente le code complet, y'a moyen que je te le traduise ;).

j!nH
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
12 juil. 2005 à 12:47
lu jinh.

merci de la proposition...

je croise les doigts a défauts de m'arracher les cheveux..

Var
NumObject,IndexFin,Index,EndOfBuffer,IndexMessage,IndexFinMessage : cardinal;
SearchString,SearchString2: string;

XMISDN,XMESS,HeureBalise , HeureSynchro, Requete: string;
FormatDateLocal : string;

DateHeureB , DateHeureS, DateHeure,DateHeureNextSynchro:TDateTime;

JourAnnee,Jour,Heure,AMPM,annee : string;
HeureDec,t,t1,Decalage: cardinal;
BissextAnnee : char;
anneebalise,J : cardinal;
anneebissextile : boolean;
num_connu : boolean;
JourBalise : string;
First: boolean;

'certaines variables déclarées servent ailleurs faites pas attention


BissextAnnee := MidStr(HeureBalise,1,1)[1];
JourAnnee := MidStr(HeureBalise,2,3);
Jour := HeureBalise[5];
AMPM := HeureBalise[6];
Heure := Midstr(HeureBalise,7,5);

anneebalise := (ord(BissextAnnee) shr 1) and $F;
anneebissextile := (ord(BissextAnnee) and 1) <> 0;

annee := inttostr(Yearof(DateHeureS));
if(strtoint(annee[4]) < anneebalise) then
annee := inttostr(Yearof(DateHeureS) + 1)
else if(strtoint(annee[4]) > anneebalise) then
annee := inttostr(Yearof(DateHeureS) - 1);


if(anneebissextile) then Memo1.Lines.add('Bissextile');
J := strtoint(Jour);
if(J = 1) then JourBalise := 'Lundi'
else if(J = 2) then JourBalise := 'Mardi'
else if(J = 3) then JourBalise := 'Mercredi'
else if(J = 4) then JourBalise := 'Jeudi'
else if(J = 5) then JourBalise := 'Vendredi'
else if(J = 6) then JourBalise := 'Samedi'
else if(J = 7) then JourBalise := 'Dimanche';


memo1.Lines.Add('Annee : ' + inttostr(anneebalise));
memo1.Lines.Add('Jour annee : ' + JourAnnee);
memo1.Lines.Add('Jour: ' + Jour + ' (' + JourBalise + ')');
memo1.Lines.Add('AMPM: ' + AMPM);
memo1.Lines.Add('Heure: ' + Heure);
0
cs_trabice Messages postés 328 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 24 novembre 2005 1
12 juil. 2005 à 14:40
merci beaucoup pour ces quelques renseignements.
je connai quand meme le vb je te rassure mais vite fait quoi.
connexion BDD,fichier,etc...

je m'y remet.
si t'as plus de temps merci d avance :-))))

fabrice
0