Vb6, calcul le crc d'un fichier: module.vb et api.zlib

Soyez le premier à donner votre avis sur cette source.

Vue 11 343 fois - Téléchargée 1 259 fois

Description

Voici après temps d'éffort, une version certifé francaise puisque je le suis :)
D'un code source VB6 bien commenté pour calculer le CRC d'un fichier.
Poly^Cycliquement rapide.
Cette source devrait donner une bonne base a ceux qui veulent continuer mes travaux.

.Duke49.

Conclusion :


Les remerciements sont dans le module de la source.
Les fonctions sont assez simples.
Si un byte change la valeur du CRC sera différente, ca fonctionne.

Ce qui fait que vous pouvez faire mieux:
Ma matrice !
Je flanche un peu sur les décalages binaires.
Je ne suis pas un expert en polynomial.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
vendredi 12 juin 2009
Statut
Membre
Dernière intervention
12 juin 2009

bonjour je dois faire un programme en vb 6 et ca pose vraiment un problème est-ce que qqn pourrait m'aider svp c pour mon examen...
Merci bcp bonne journée
Voici le programme:

1) création d’un ligiciel d’acquisition de mesure
Ecriver un prog (analyse en pseudocode + en vb) qui permetra, la résolution du problème ci-dessous.
Votre prog permetra la lesture de 4 mesure de tension su un/des convertisseur analogique/numérique (can) 12bits ( valeur = 2³ à 2² de byte1 * 256 + 2^7 à 2^0 de byte 2) , (les lecture sont à simuler de facon aléatoire (fonction rnd)).Le phénomène (variation des mesures) est considéré comme « lent ». La configuration suivante : un seul convertisseur et un multiplexeur à 4 canaux peut éventuellement convenir.
La série de mesures doit être prise toutes les 120 sec (toutes les deux « minutes pleines » , le nombre de sec =00)
Les mesures seront stockées dans un fichier à acces séquentiel. Une trame d’information étant structurée de la manière suivante.

jj / MM /AA / HH / MM / SS / M1L / M1H / M2L / M2H / M3L / M3H / M4H / CRC16L / CRC16H

jj MM AA rerésente la date ; jour – moi- année = 3 bytes (pour l’année, on retranche 2000 avant stockage et on ne reprend que les deux dernier chiffre)

HH MM SS représente l’heure : heure minute seconde = 3bytes (SS toujours égal à 00).

M1H M1L … M8H M8L représente les mesures de (0 à 16*256 +255 2bytes) 16bytes.

CRC16L CR16H représente le calcul du checksum = 2bytes. Ce CRC16 vous donnera une indication sur la validité de votre trame d’information.
Messages postés
185
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
20 juin 2013

Nous sommes d'accord.
Cordialement
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
3
Je n'ai pas réussit a traduire excatement la totalité des sources ZLIB.
De toute façon c'etait trop lent !
J'ai donc fait deux méthodes biens distinctes: VB-CRC et ZLIB-CRC.
Vu qu'il n'y as pas de norme particulière pour ce calcul, on peut très bien accepter une valeure de CRC différente; surtout si ca a comme effet d'accelerer l'executions des routines.
Le compilateur C permet de faire des calculs que VB ne supportent pas.

[C]; Pour la compatibilité, on dit ZLIB.
[VB]; Pour la rapidité, on dira Vérification Parallèle.
La suite logique serait que quelqu'un optimise ce code d'avantage.
Pas pour en faire un code qui soit compatible, VB lui meme ne l'es pas.
Mais plutot de marginaliser un code fiable et rapide pour les programmeurs en basic.
Messages postés
185
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
20 juin 2013

D'accord si tu calcules et testes le CRC avec le même algo, mais si tu veux que ton crc soit compatible avec d'autres, celui de winzip par exemple, c'est bien le calcul obtenu par zlib qu'il faut.
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
3
Bonsoir Yan35,

<Je reprends ton calcul pour le comparer avec celui que j'utilise. Je ne tombe pas sur le même résultat.>

- Pourquoi devrais-t'il etre les mêmes ?
- Il n'y a pas de loi universelle pour définir la résultante d'une redondance entre guillmet "physique" ?

Exemple: 2 sportifs avec les memes baskets, mais un a les semelles plus usées; quel est le résultat de cette perte d'adhésion sur 150 mètres ?
Résultat: optimisation.

Exemple comparatif CRC sur un (SCSI°2) vs (UDMA-66) ?
Résultat: rapidité.

Exemple de cryptage, peut importe ton algorithme final, sans ta clé sa doit être difficile à décrypter.
Résultat: performance

OBJECTIF COMMUN: une solution

<Je teste donc + loin et je m'apperçois que tu n'obtiens pas non + le même résultat entre ta méthode VB et la zLib !>

- Le temps d'affichage entre "Internet explorer" et "Firefox" a afficher la même page ?
- L'exemple qui ce rapproche de nos méthodes:
- Un Anti-Virus.
- Pourquoi un AV examiant une même signature est plus rapide sur l'un que sur l'autre ?
- Il n'utilise peut etre pas les mêmes calculs, mais ce qui importe pour eux c'est de reconnaitre la menace au profit de la satisfaction de son utilisateur.
- Toujours une histoire de résultat !
- Un résultat n'est qu'une forme linéaire d'une conséquence.

Définisons une conséquence:
- Si A est égale à 1+1+1, c'est B
- Si A n'est pas égale à 1+1+1, c'est C
- Le résulat de ma séquence c'est B

- Si Mr.XY, dit: Si A est égale à 2+1, c'est C
- Si A n'est pas égale à 3, c'est R
- Le résultat de la séquence de Mr.XY c'est C

Test Yan35:
Non modifié: DF8AA9
1 byte changé: E9BFF0
Résultat: Approuvé fonctionnel

Test Duke49:
Non modifié: 14FB77
1 byte changé: F9E9A0
Résultat: Approuvé fonctionnel

Le point fort qui détermine nos conséquences est une solution.
Peut importe la façon et dérivé de le faire !
Les solutions ont eux memes plusieurs sous solutions...
Si tu voie une objection aux sous-solutions, je veut bien en débattre :)
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.