IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

Calcul d'un CRC 16 bits


Sujet :

Programmation et administration système Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Calcul d'un CRC 16 bits
    Salut ,
    je debute en PERL et j'ai ce code en C++ qui me calcule le CRC 16 bits d'un fichier contenant des mots de donnees codee en hexadecimal.
    En piece jointes j'ai mis une image du fichier de donnees pour lequel il faut calculer le CRC ainsi que des explications.
    Voici le code C calculant le CRC de mon fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    void CPropPgFormDoc::OnAddCrc(LPCTSTR lpszPathName) 
    { //calcul the cRC of the file Spath
    	CFileException fe;
    	CFile* pFile = NULL;
    	CString sPath = lpszPathName;
    	CString sCRC;
    //	static char BASED_CODE szFilter[] = "Patch Files (*.fdw)|*.fdw|All Files (*.*)|*.*||";	
     
    	BYTE ser_data;
    	WORD CRC, tmp,i; 
    static	DWORD CrcTabReady=0;
    static  CrcTab[512];
     
    		CRC=0xFFFF;
    		pFile = GetFile(sPath, 
    			CFile::modeReadWrite | CFile::shareExclusive, &fe);
    		int nLgFile = 0;
     
    		nLgFile = pFile->GetLength();			
     
    		BYTE* lpPatchFile = new BYTE[nLgFile];
    		BYTE* lpStartPatchFile = lpPatchFile;
    		pFile->Read(lpPatchFile, nLgFile);
     
    		if(CrcTabReady==0){
    			for(i=0;i<512;i++){
    				tmp=0;
    				if((i&1)!=0) tmp=(tmp^0x1021);
    				if((i&2)!=0) tmp=(tmp^0x2042);
    				if((i&4)!=0) tmp=(tmp^0x4084);
    				if((i&8)!=0) tmp=(tmp^0x8108);
    				if((i&16)!=0) tmp=(tmp^0x1231);
    				if((i&32)!=0) tmp=(tmp^0x2462);
    				if((i&64)!=0) tmp=(tmp^0x48C4);
    				if((i&128)!=0) tmp=(tmp^0x9188);
    				CrcTab[i]=tmp;
    			}
    			CrcTabReady=1;
    		}
     
    		nLgFile -= 2;
    		lpPatchFile += 2;
     
    		while(nLgFile--) CRC=((CRC << 8)^CrcTab[(CRC>>8)^*lpPatchFile++]);
    		pFile->SeekToBegin();
    		pFile->Write(&CRC,2);
    		pFile->Close();
     
    /*		CWaitCursor waitCursor;
    		AfxMessageBox("BBy Factory Settings + CRC saved successfully",
    		   MB_OK | MB_APPLMODAL | MB_ICONEXCLAMATION);
    */
    		delete  [] lpStartPatchFile;
     
    }
    Ce que je cherche c'est de calculer ce CRC16bits avec unj script PERL, merci
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    pour dormir moins bete peux tu nous expliquer ce que c'est CRC 16 bits

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,
    Citation Envoyé par djibril
    pour dormir moins bete peux tu nous expliquer ce que c'est CRC 16 bits
    donc c'est vrai que les perliens sont paresseux .

    Un coup de Google et voilà
    http://www.google.fr/search?q=CRC+16...la:fr:official

    lami20j
    --
    lami20j

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par lami20j
    Salut,
    Citation Envoyé par djibril
    pour dormir moins bete peux tu nous expliquer ce que c'est CRC 16 bits
    donc c'est vrai que les perliens sont paresseux .

    Un coup de Google et voilà
    http://www.google.fr/search?q=CRC+16...la:fr:official

    lami20j

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Merci Pour Le Crc Code
    Thanks

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculs sous Windows XP 64 bits
    Par DidLaw dans le forum Ordinateurs
    Réponses: 1
    Dernier message: 19/04/2010, 14h25
  2. Calcul de PI, optimisation 64 bits
    Par elekaj34 dans le forum Bibliothèque standard
    Réponses: 13
    Dernier message: 14/11/2008, 15h25
  3. erreur dans le calcul de nombre moyen des bits érronés
    Par princesse07 dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/05/2008, 14h30
  4. Calcul de CRC 64 bits
    Par pseudocode dans le forum Contribuez
    Réponses: 2
    Dernier message: 21/10/2007, 18h00
  5. Cherche l'algo crc 16 bits
    Par icepower dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 21/08/2002, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo