begin process at 2012 02 13 13:46:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

algo conversion fiichier en hexadécimal


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

algo conversion fiichier en hexadécimal

jeudi 10 janvier 2008 à 21:22:59 | algo conversion fiichier en hexadécimal

developvbdebut

Membre Club
Bonsoir

Je cherche un algo pour convertir des fichiers en Hexadécimal.

J'ai cherché sur le web, mai je n'ai pas trouvé.

Pouvez vous m'aider?

Merci.


Bonne Année 2008.

A +
jeudi 10 janvier 2008 à 22:15:38 | Re : algo conversion fiichier en hexadécimal

Neo_Fr

Membre Club
Salut, Un exemple: DWORD __stdcall ConvertFile2Hex(LPSTR InFile, LPSTR OutFile) { static const BYTE HexaTable[16] = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66 }; HANDLE hInFile, hOutFile; BYTE* Buffer, *InBuff, *OutBuff; DWORD i, br, bw, btw = 0; hInFile = CreateFile(InFile, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); if(hInFile == INVALID_HANDLE_VALUE) return 0; hOutFile = CreateFile(OutFile, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0); if(hOutFile == INVALID_HANDLE_VALUE) goto Error; Buffer = (BYTE*) HeapAlloc(GetProcessHeap(), HEAP_NO_SERIALIZE, 0x300000); // 3 mo if(!Buffer) goto Error; InBuff = Buffer; OutBuff = &InBuff[0x100000]; while(1) { if(!ReadFile(hInFile, Buffer, 0x100000, &br, 0)) goto Error; if(!br) break; i = 0; while(1) { OutBuff[2*i] = HexaTable[(InBuff[i]>>4) & 0x0f]; OutBuff[2*i+1] = HexaTable[(InBuff[i]) & 0x0f]; if(i++ == br) break; } if(!WriteFile(hOutFile, OutBuff, (br*2), &bw, 0)) goto Error; btw += bw; } Error: if(Buffer) HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, Buffer); if(hOutFile) CloseHandle(hOutFile); if(hInFile) CloseHandle(hInFile); return btw; // Retourne le nb d'octet ecrit } Neo_Fr
jeudi 10 janvier 2008 à 22:32:13 | Re : algo conversion fiichier en hexadécimal

SAKingdom

Membre Club
Faudrait déjà savoir quesqu'il veut dire par : "convertir des fichiers en Hexadécimal"

while(1)
{
    ...
     if(i++ == br) break;
}

do while

Encore une fois, tes goto pourraient être très facilement évités et on supprimerait, en même temps, tout ces tests pour savoir si la mémoire est allouée ou si le fichier est ouvert. En plus, ceux qui sont dans la boucle sont complètements inutiles. break fera la même chose.

HEAP_NO_SERIALIZE
As tu lue MSDN sur ce flag ?
"This value should not be specified when accessing the process heap"
En plus, avec ce flag, tu limites l'utilisation de cette fonction à un seul thread.

C++ (@++)

jeudi 10 janvier 2008 à 22:40:19 | Re : algo conversion fiichier en hexadécimal

SAKingdom

Membre Club
"on supprimerait, en même temps, tout ces tests pour savoir si la mémoire est allouée ou si le fichier est ouvert"

Je parle de ces tests:
if(Buffer) HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, Buffer);
if(hOutFile) CloseHandle(hOutFile);
if(hInFile) CloseHandle(hInFile);

C++ (@++)

jeudi 10 janvier 2008 à 22:51:08 | Re : algo conversion fiichier en hexadécimal

developvbdebut

Membre Club
Re bonsoir

Pardon, je me suis mal exprimer.

Je souhaite récupérer le code hexadécimal des fichiers images.


A+
jeudi 10 janvier 2008 à 22:53:03 | Re : algo conversion fiichier en hexadécimal

Neo_Fr

Membre Club
Personnelement je trouve les goto pr la gestion des erreurs bien plus propre (et plus rapide a écrire) que des tas d'imbrications, pour HEAP_NO_SERIALIZE suffit juste l'enlever si ca doit etre utiliser ds plusieurs threads.. Neo_Fr
jeudi 10 janvier 2008 à 22:53:33 | Re : algo conversion fiichier en hexadécimal

Neo_Fr

Membre Club
Le code hexadecimal des fichiers image?? Neo_Fr
jeudi 10 janvier 2008 à 22:53:46 | Re : algo conversion fiichier en hexadécimal

SAKingdom

Membre Club
Tout est déjà en hexadécimal (l'hexadécimal n'étant qu'une représentation "compacté" du binaire). Aucun besoin de convertir quoi que ce soit. Tu stock ton image dans un buffer de BYTE et tu effectues les traitements souhaité.

C++ (@++)

jeudi 10 janvier 2008 à 22:55:42 | Re : algo conversion fiichier en hexadécimal

SAKingdom

Membre Club
On utilise généralement les goto pour optimiser son code or ici tu ne fais que rajouter des instructions. 3 if imbriqués ne sera pas plus compliqué à taper.

C++ (@++)

jeudi 10 janvier 2008 à 23:00:03 | Re : algo conversion fiichier en hexadécimal

developvbdebut

Membre Club
Re

Quel traitement  SAKingdom ?


Où puis je trouvé un tuto sur ce sujet?

Je veux récupérer le code hexa des images pour les utiliser dans une librairie graphique.

A+

1 2

Cette discussion est classée dans : conversion, algo, hexadécimal, fiichier


Répondre à ce message

Sujets en rapport avec ce message

Algo de conversion de bases !!! [ par Espia514DBX ] Voila, j'ai commencé l'algo ainsi que le prog mais ca "couille" a mort...Alors si une ame charitable pourrait m'aider... ce ne serait pas de refus.Je conversion char-->hexadécimal [ par ivdz ] Bonjour,Est-ce que quelqu'un sait convertir un char en sa valeur hexadécimal ?Voici ce que j'ai essayé :char mot[]="255";int hexa;sscanf(mot Recherche de nom d'algo [ par deathness ] Bonjour, dans le cadre d'un travail, je dois trouver un algorithme qui relie entre eux des composants. Mettons que j'ai deux composant AB au milieu d algo FFT [ par phil9229 ] Bonjour Pour un projet scolaire je doit réaliser une analyse spectrale via une FFT d'une somme de sinusoide [f(t)=sin(2*pi*f1*t)*sin(2*pi*f2*t)]. Je Conversion de codes sources [ par PhilLopez ] [^^yeuxenlair][b]Voila[/b], j'ai un petit souci ! [^^happy13]Il y a quelques années j'ai créé un programme sous Visial Basic 3 (en 1997). [^^happy17]E problème de conversion [ par esp95 ] Bonjour a tous, J'ai un petit soucis sur un programme en c/c++ Je dois créer le programme de compression de huffman je sais il en éxiste des tonnes ma Hought c++ [ par galata04 ] Bonjour, Dans le cadre d'un projet scolaire je dois réaliser l'algo de hought pour la detection de cerlce . J'ai bien avancé sauf que je suis bloque d Lempel_ziv [ par jalel60 ] Algorithme Lempel_ziv sous forme d'un programme exécutable en C. NB:algo de LEMPEL_ZIV et un algo de codage et décodage d'info. MERCI


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 0,468 sec (4)

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