[code c++] hediteur hexa

Résolu
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005 - 25 avril 2005 à 12:29
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005 - 25 avril 2005 à 22:14
bonjours a tous,
je suis debutant en c++ et je cherche a realiser un editeur hexadecimal sous Vc++
J'ai deja commencer a ecririr une petite partie du code:

#include <stdio.h>


#define PATH "texte.txt"
#define NAME_SIZE_MAX 10000

void main()
{
FILE *fp;
char buf[NAME_SIZE_MAX];
size_t count;


fp = fopen(PATH, "r");
if (fp == NULL) {
printf("Erreur lors de l'ouverture\n")
}


count = fread(buf, 1, NAME_SIZE_MAX, fp);
fclose(fp);


affiche_en_hexa(buf, count);
}

Tout marche correctement : l'ouverture, l'affichage du contenue hexa....
mon probleme c'est que la taille NAME_SIZE_MAX n'est pas infini, du coup si je veut ouvrir un fichier de plus de 10000 caracteres ca ne marche plus.
Auriez vous une idée de se que je devrais faire ?

mmerci d'avance

3 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
25 avril 2005 à 16:18
Tu as le choix :

-Lire ligne par ligne, faire le traitement pour afficher en hexa, et passer a la ligne suivante (inconvenient : aucun traitement supplementaire ne peut etre effectue)
-Si tu es sous Windows (ca doit exister sous linux, mais je ne connais pas), tu peux obtenir la taille du fichier avec GetFileSize() et ensuite allouer dynamiquement la memoire dont tu as besoin. (details de GetFileSize() sur msdn.microsoft.com).

+2(p - n)
3
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005
25 avril 2005 à 18:18
merci AlexMAN

GetFileSize() a l'aire de correspondre, j'ai essayer mais il me met 74 error lors de la compilation...j'ai pourtant bien inclus le header Winbase.h ( quand je clique sur une erreure je me retrouve dans le code Winbase.h ) par contre j'ai regarder dans le dossier lib de VC++ et je n'ai pas Coredll.lib, ou puis-je la trouver ? je n'ai rien trouver a telecharger sur le site msdn.microsoft.com.

Merci encore pour ton aide.
0
cs_devoX Messages postés 38 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 16 mai 2005
25 avril 2005 à 22:14
c'est bon j'ai trouvé l'erreure , en faite il faut inclure windows.h et non winbase comme la precise msdn.

maintenant le proble c'est que GetFileSize()
prend en parametre un handle alors que je lui passe un FILE *.....
0
Rejoignez-nous