Ben la chaine adresse, je l'avais bien mise en "unsigned char". Mais la variable de type long, je ne savais qu'il fallait aussi la mettre en unsigned, ça change quoi exactement...?
Type: Messages; Utilisateur: cout
Ben la chaine adresse, je l'avais bien mise en "unsigned char". Mais la variable de type long, je ne savais qu'il fallait aussi la mettre en unsigned, ça change quoi exactement...?
Ben c'est bon j'ai réussi,merci bien, j'ai fais la chose suivante et ça fonctionne très bien, j'espere que le code est correct.
long ad;
char adresse[4];
ad = ftell(file);
adresse[1] =...
ok merci, ça n'a pas l'air simple mais je vais quand même essayer.
Bonjour,
j'ai un ptit probleme concernant une conversion décimal -> héxa un peu particuliere..
j'ai un fichier dans lequel j'ecris des données à une certaine adresse que je recupere de la...
Merci beaucoup, ça fonctionne, c'était tout bête...
Bonjour,
Voila, j'ai un fichier binaire dans lequel je dois juste modifier un octet. Et j'ai fais des recherches et si j'ai bien compris, il est possible de modifier un caractère d'un fichier...
Ben merci beaucoup Foobar1329, le problème venait de là... c'est parfait
Mon debugger m'indique que le contenu de c1[0] est égal à 3 (0x03),
et lorsque je lui demande le contenu de "(c1[0])*256*256" il m'indique
"196608 (0x00030000)" et "(c4[0])*256" il m'indique...
Le resultat de l'addiction est sensé etre en décimal
ça n'a rien changé
ça n'a rien changé non plus
j'ai pas trop compris ce que tu voulais dire là
type long
Bonjour,
Voila j'ai un nombre en héxa sur 4 octets et stocké dans un tableau de char
fread(adresse,1,4,file); //adresse[4] contient "03 00 00 C8"
c1[0] = adresse[0]; // c1[0]...
Bon, en ce qui me concerne mon problème est résolu, merci pour vos explications.
ça fonctionne presque puisque dans mon programme appelant, j'ai fait
int *adresseEnreg;
adresseEnreg = calloc(1,20);
fonction(&adresseEnreg);
et pour affecter je fais
*adresse = 0x6545 par exemple et ça ecrit dans la zone mémoire qui a pour adresse 'adresse'...?
si j'ai bien compris, c'est en mettant comme prototype à ma fonction :
int fonction(DWORD *adresse)
J'ai une fonction dont un des paramètres contient une adresse mémoire (de la mémoire à été allouée à cette adresse avant l'appel de la fonction), et je dois ecrire des données dans cette zone...
C'est bon j'ai réussi a recuperer le contenu du buffer, mais il ne correspond pas à ce qu'il y a dans le fichier d'origine
fread() retourne 1024, donc c'est bon, ça vient donc du buffer *dest...jepense comme le dit medinoc
pardon, tu parle du poste 27, je n'avais pas vu que t'avais ecrit le 26 a ce moment la.. je suis en train d'essayer de faire comme tu ma di
en fait je me suis aperçu de ça : avec tailleEnreg = 1024
avec ce code :
fread(*dest,1,tailleEnreg,file);
il s'arrete au premier octet egal à 0x00 (il lit les 232 premier)
et avec celui-ci :...
Mais le fread ne fonctionne toujours pas pour autant, c'est le coup du int à la place du *int qui fonctionne
non en fait ça fonctionne, je sais pas ce qui m'est arrivé pourtant, je ne bois pas...
c'est vrai que c'est bizarre, mais lors de la compilation, il me dit :
Type mismatch in parameter '__n' in call to 'fread'
fread(*dest,1,tailleEnreg,file);
Ben en fait j'utilise l'api windows, donc mon projet ne me permet pas d'utiliser la console...et du cou ton code je peux pas trop m'en servir :
printf("%c%02X", (n%16==0 ? '\n' : ' '), n );
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.