Prob conversion d'1 prog C++ en VB6.0

nikostaf Messages postés 35 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 5 mai 2004 - 9 juil. 2003 à 12:10
chakirf Messages postés 1 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 19 novembre 2005 - 19 nov. 2005 à 13:37
j'ai reçu un programme en C++ réalisant un décodage de chaine de caractère en ascii et je n'ai pas réussi à retrouver le bon résultat avec le prog que j'ai fait en VB.
Si quelqu'un pourrait m'aider,cf fichier texte avec les 2 prog
résultat attendu AA9F.
Merci d'avance à ceux qui porrait m'aider,c cool.

2 réponses

nikostaf Messages postés 35 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 5 mai 2004
9 juil. 2003 à 12:13
-------------------------------
Réponse au message :
-------------------------------

> j'ai reçu un programme en C++ réalisant un décodage de chaine de caractère en ascii et je n'ai pas réussi à retrouver le bon résultat avec le prog que j'ai fait en VB.
> Si quelqu'un pourrait m'aider,cf fichier texte avec les 2 prog
> résultat attendu AA9F.
> Merci d'avance à ceux qui porrait m'aider,c cool.

unsigned short calcCRC16(unsigned char* pBuffer,int nBufferLen)
{
const unsigned short usPoly=0x8408;
unsigned short usCRC=0;
int bParite;
int i,j;

if(pBuffer==0 || nBufferLen<=0)
return 0;

usCRC=0;
for(i=0;i<nBufferLen;i++)
{
usCRC^=pBuffer[i];
for(j=0;j<8;j++)
{
if(usCRC & 1)
bParite=0;
else
bParite=1;
usCRC>>=1;
if(!bParite)
usCRC^=usPoly;
}
}

return usCRC;
}

//fonction principale
/////////////////////
int main(int argc,char* argv[])
{
char szBuffer[]= "2506031555224--------------------------S----1--------------------------------------------------";
unsigned short usCRC16;

//résultat attendu AA9F
usCRC16=calcCRC16(&szBuffer[0],sizeof(szBuffer)-1);

printf("Texte: '%s'\nCRC16=%04X, ",szBuffer,usCRC16,);
return 0;
}

voici maintenant ce que j'ai fait en vb mais je n'obtiens pas la bonne valeur avec nbufferlen=95
Private Function calcCRC16(pBuffer As String) As String

usPoly = 8408
Dim usCRC As String
Dim j, k, bParite As Integer

usCRC = 0

For k = 1 To 95

pBuffer = Mid(argv, k, 1)
usCRC = usCRC Xor pBuffer

For j = 0 To 7

If (usCRC Mod 2 = 1) Then
bParite = 0
Else
bParite = 1
usCRC = (usCRC / 2) - 1
End If
If bParite = 0 Then
usCRC = usCRC Xor usPoly
End If

Next

Next

End Function

''''''''''''''''''''''''''''
Private Function calcCRC16()
Dim nBuffer As String
Dim usCRC16 As String

pBuffer = "2506031555224--------------------------S----1--------------------------------------------------"
usCRC16 = calcCRC16(nBuffer)
MsgBox usCRC16
If usCRC16 = strcecksum Then
MsgBox(" Le fichier a été authentifié!",vbOkOnly +vbInformation , "Authentification")
Else
MsgBox(" Le fichier n'est pas conforme!",vbCancel +vbCritical , "Authentification")
End Sub
0
chakirf Messages postés 1 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 19 novembre 2005
19 nov. 2005 à 13:37
salut :
CVP je veux un réponse sur la convertion d'un C++ en VB6.0
0
Rejoignez-nous