begin process at 2012 05 27 15:41:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > DIFFERENCES ENTRE 2 FICHIERS (WIN32)

DIFFERENCES ENTRE 2 FICHIERS (WIN32)


 Information sur la source

Note :
8,63 / 10 - par 8 personnes
8,63 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Classé sous :fichier, readfile, createfile Niveau :Débutant Date de création :15/05/2006 Vu / téléchargé :6 930 / 579

Auteur : BruNews

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Je sais ça existe déjà, peut-être ici et assurément ailleurs, mais j'ai toujours un mal fou à me servir des trucs avec plein d'options. Celui ci ne fait que ce qu'il doit faire, rustique mais très rapide.
A chaque comparaison, les résultats vont dans dif.txt (dossier du prog) qui est illico affiché à l'écran. Ce fichier est écrasé à chaque analyse et détruit quand on quitte.
Exemple de sortie fichier à l'écran:
4: 48 - 05
5: 19 - 39
6: 17 - 7C
7: 9F - 13
1989870: B8 - E0
1989871: 24 - 44
1989872: BA - 24
1989873: FE - F7
3959837: CA - 31
3959838: 62 - 73
3959839: 6D - 33
3959840: EE - 91
6041545: 93 - 1A
6041546: F3 - 31
6041547: B1 - 39
6041548: 4A - CA
8017009: 8D - 73
8017010: 66 - ED
8017011: 16 - 09
8017012: D4 - 8E
- 1ere colonne: offset (décimal) des fichiers.
- 2eme: valeur octet de file1.
- 3eme: valeur octet de file2.

La comparaison stoppe si on atteint 500 différences, se change aisément en modifiant la constante MAXDIFFS en haut du cpp.
Aucune limitation de taille pour les fichiers, full 64 bits supporté. Tout se fait dans un buffer (1 seul) de 132 Ko alloué en entrée de thread et désalloué en sortie.

Les allergiques aux goto et à l'asm passent leur chemin.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64)
Source avec Zip Source avec une capture FIND TEXT (WIN64)
Source avec Zip DELETE DIRECTORY (WIN64)
Source avec Zip ENUM DIRECTORY (WIN64)
Source avec Zip TEMPLATES C/C++ POUR VS 2010

 Sources de la même categorie

COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF par Renfield
Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip Source avec une capture UN GESTIONNAIRE DU FICHIER par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture GENERE BMP par lajouad
Source avec Zip Source avec une capture GETIONNAIRE D'UNE BIBLIOTHÉQUE EN C par benzarabel
FONCTION D'ÉDITION DE FICHIER BIT À BIT [C-MULTIPLATEFORME] par lynxtyle
Source avec Zip GÉNÉRATION DE NOMBRES PREMIERS ET STOCKAGE DANS UN FICHIER par visdev
Source avec Zip LIVRET (WIN32 VS 2005 SANS CRT) par BruNews

Commentaires et avis

Commentaire de meech le 15/05/2006 09:25:37

J'adore ces personnes qui mettent 2 sans expliquer pouquoi.
Bref, c'est certain, ce n'est pas nouveau, nouveau, mais ça a le mérite d'être plutôt bien fait.

Commentaire de BruNews le 15/05/2006 10:39:24 administrateur CS

No prob, c'était une erreur de clic qu'on m'a demandé de rectifier.

Commentaire de excrt le 20/05/2006 19:29:51

//pourquoi ceci:
if(condition){inst1;inst2;/*...*/}

//plutôt que ceci:
if (condition) {
  inst1;
  inst2;
  //...
}
// ???

ce ne sont que quelques « Enter », ca serait tellement plus simple a comprendre de cette facon ... comme je t'ai déjà dit, tu es pas le seul à lire tes sources, penses aux autres sinon ne poste pas !

(c'est moi le 4/10, 4 pour l'utilité)

Commentaire de BruNews le 20/05/2006 19:50:45 administrateur CS

2 instructions hyper courtes sur la même lige entre crochets, ça n'avait l'air d'avoir gêné personne et comme c'est mon habitude ça continuera.

Commentaire de deck_bsd le 01/06/2006 20:06:25

zxcrt : ... tu abuse pas un peu???? lol c'est parfaitement lisible (je trouve). Mais bon chacun sa compréhension.

Pour ce qui est de l'utilité, je n'ai jms eu a me servir de ce genre de programme. Mais vu qu'il à été crée par BruNews , j'ai le sentiment que il fait ce qu'il doit faire et ce de manière optimisée.

Mais bon je ne saurai le dire, car bien que non allergique au goto, je ne suis non pas allergique a  l'asm, mais je ne le connai pas (encore) ou peu (juste les quelque instructions).

Commentaire de excrt le 02/06/2006 16:32:09

deck_bsd, la différence est assez minime avec ce que l'on trouve ici: http://www.ioccc.org/

Commentaire de nightlord666 le 27/06/2006 17:38:30

Tiens je viens de remarquer qu'en utilisant ton astuce pour faire un petit éxécutable, on n'a plus la boite de dialogue de VC++ 6.0 Introductory Edition, disant qu'on ne doit pas vendre le programme, etc...

Je vais en profiter de ça... Niark, niark, niark !

Commentaire de Spardin le 04/09/2006 17:00:31

Code illisible....

Commentaire de nightlord666 le 04/09/2006 17:28:14

Mais arretez un peu avec les codes de BruNews, c'est peut-être peu lisible (et ce n'est pas mon avis d'ailleurs), mais ça a le mérite d'être éfficace.

Si tu réussi à faire un code aussi rapide et lèger (tu clique et la recherche se fait en moins d'une seconde dans une base de données de plusieurs dizaines de milliers de mots) sans assembleur, sans goto et autres, préviens moi car je ne savais pas que ça existait...

Commentaire de DevGizmo le 20/10/2006 22:28:25

Bonsoir,

Je sais que je me reveille un peu tard dans la discussion. Je suis tombé sur ce code parce que ma recherche dans google a fait que je suis tombe par hasard sur ce source.
Pour moi ce source est litteralement "inbitable"... Je connais bien l'assembleur, je connais bien le C mais pour en revenir à une des remarques: on n'a pas besoin de faire un code pas formater pour qu'il soit rapide ni leger ni tout ce que l'on veut...
Certe BruNews nous montre ses talent de codeur fou en assembleur mais si il l'avait un peu mieux formater son code et mis des commentaires je pense que ca aurait eu un impact plus pedagogique comme il le sous entend en le mettant sur le site.

Voilà

A +

Fred

PS : D'autre part tant que j'y pense... pour l'assembleur..., les compilateurs sont "EN GENERAL" bien meilleurs que nous car ils tiennent compte de l'archi du proc...!
Si vous voulez vraiment optimiser certaines partie de code... compiler les avec le bon compilateur et les bonnes options...

Commentaire de BruNews le 20/10/2006 23:04:20 administrateur CS

On formate l'ASM ??? c'est nouveau ça.

Si tu as 20 int64 à mettre dans une ligne séparés par TAB (exemple) sur des milliers et milliers de lignes, tu pourras compiler comme tu voudras avec les fonctions de la lib C, ce sera toujours très lent par rapport à mes fonctions.
Pari à 1000 euros avec mesures des perfs en public quand tu veux.

Commentaire de Arnaud16022 le 13/11/2006 12:57:35

tu en as un, de benchmark? je suis intéressé ...
je ne doute pas que tes fonctions soient plus rapides, mais j'aimerais savoir ce que ça donne IRL.
La différence est tellement énorme entre qqch d'optimisé en asm et qqch d'optimisé ( autant que possible ) en C/C++ prog soi-même?
C'est principalement pour savoir si ça vaut le coup de passer du temps à débugger l'asm ( pas encore assez l'habitude ) plutôt que de savoir que je fais un code C++ qui marche...
merci

Commentaire de BruNews le 13/11/2006 19:06:02 administrateur CS

J'en prépare un.

Commentaire de BruNews le 13/11/2006 22:05:00 administrateur CS

http://brunews.com/Benchs.zip

chainage de 100 __int64, 2 petites chaines et 200 DWORDs, tout cela dans un unique buffer.
Sur ce simple exercice qui simulerait une partie d'un module de reporting, j'obtiens déjà un rapport de 17 fois supérieur au "standard" C.

Compilé en favorisant vitesse bien entendu.

Commentaire de Arnaud16022 le 14/11/2006 12:19:29

quand même o_O
hum
je vois que tu utilises strcat(pbuf, tmp); or justement, moi je parlais d'un genre de bnstrcat programmé en C... à ce compte là c'est sûr que tu le bas à plate couture ^^
hors sujet : quelle est réellement l'utilité du mem_top_down? commit et reserve ok, mais top_down , jamais utilisé :/

    ultoa(pdws[i], tmp, 10);
    strcat(pbuf, tmp);
    strcat(pbuf, szTAB);

pfiouuu ... bourrin, ça ^^

__declspec(naked) char* __fastcall bnultoa(unsigned int dwnum, char* szdst)
{ // ECX = dwnum, EDX = szdst
?????!!!! comment tu sais CA ?? c'est méga pas portable ou je me trompe ?
ya un standard à ce sujet ? je veux dire, respecté par tous les compilos ( quand je dis tous, on se comprend: VC, GCC, et + si affinités ) ?
le fastcall commence systématiquement par ecx ? ebx contient quoi ? je vois que tu n'en fais pas usage ... pour éviter de le push/poper à chaque fois ? j'avais eu des pbs avec ça effectivement, ebx doit être conservé :/
Je tenterai le même bench avec un bnstrcpy en C... j'attends juste la fin des partiels :p

"Compilé en favorisant vitesse bien entendu."-> hum, c'est juste pour faire plaisir à Gizmo ça ^^ je vois pas ce que ça pourrait changer, strcat l'est déjà, lui ( compilé )

Merci pour le bench, anyway.

Commentaire de BruNews le 14/11/2006 18:52:57 administrateur CS

strcat n'est rien compilé, le code asm est mis inline, fort heureusement il n'y a pas appel de fonction. Il en est de même pour strcpy et consorts, ce sont tous des macros sur compilo correct.
J'emploie les registres dont j'ai besoin, les 3 généraux en priorité car les autres doivent être restaurés.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

lire les lignes avec ReadFile [ par malik7934 ] Hello,Je suis peut-être grave de chez grave, mais j'ai pas pigé comment lire une ligne précise d'un fichier avec ReadFile. Vu les commentaires sur le CreateFile() [ par oudkaramla ] je veux ouvrir un fichier sur l'ordinateur pour cela je ne sai spas quoi utiliser fopen() ou createfile() quelle est la différence entre les deux?comm Comment créer un fichier texte avec CreateFile? [ par djeauh ] Bonsoir tout le monde. J'ai un petit soucis avec la fonction CreateFile de l'API WIN32. Lorsque je veut ecrire dans un fichier WINDOWS le mets par déf api CreateFile() et ReadFile() [ par shadow1779 ] Bonsoir, j'ai presque terminé mon logiciel afin de decouper un fichier en parts... cependant j'ai une erreur et j'arrive vraiment pas a comprend Erreur 1784 Problème ReadFile [ par usbeck ] Bonjour, (le nom un peu compliqué du sujet est pour les recherches, parce que j'aimerai bien que tous les titres soient précis ( "j'ai un probleme" c CreateFile [ par leuk ] Salut à tous,J'aimerai utiliser le systéme de fichier windows pour sauvegarder des donner puis les lire en utisant createfile(), writefile(), readfile createfile [ par thegame88 ] Bonjour a tous,Voila j'ai fait un ti prog qui utilise la fonction createfile, mais le premier argument de createfile doit être le chemin du fichier du Renseugenement sur write file et readfile [ par julienbornet ] Bonjour a tous voila je cherche a savoir quelque chose. Voila, je doit realiser un rpogram ou j'enregistrer des donnes dans un fichier. Jusque la rein Toutes les manières de charger un fichier (Sous Windows) ? [ par Booster ] Bonjour à tous,Je suis entrain de faire un petit soft qui snif tous les fichiers que load un programme.Je hook donc toute les fonctions susceptible de matrice [ par sparo83 ] Bonsoir à vous,je voudrais savoir comment en utilisant un fichier de sortie ou se trouve une matrice,,comment faire un affiche du genrs : 0  0  0  0 


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,482 sec (4)

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