Code ascii

maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004 - 5 juil. 2004 à 12:28
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004 - 5 juil. 2004 à 14:45
bonjour!

voilà je cherche à retirer un nombre variable (entier) à la valeur ascii d'une lettre récupéré dans le fichier fad et d'écrire la lettre trouvé j dans le fichier fd!
j'ai écrit ce bout de code mais ça ne fonctionne pas (pas d'erreur!)

int j=0;
char sB[2];
HANDLE fad;
HANDLE fd;

ReadFile(fad, sB, 1, &dwRead, 0); //lit le fichier au iéme caractère
sB[1] = 0;

j=atoi(sB);
j=j-clehex[i];
WriteFile(fd,(char) j, 1,&dwWritten, 0);

19 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juil. 2004 à 12:34
WriteFile comme ReadFile demande en 2eme param pointeur sur zone memoire ou sont stockes les octets a lire ou ecrire !!!

WriteFile(fd, &j, 1,&dwWritten, 0);

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 13:19
ok j'ai changé ça
malheureusement ça ne fonctionne toujours pas
je te met le code en entier au cas ou
merci encore

//système de décodage du fichier
for (i=0;i>4;i++)
{
if (i>3) i=0;
ReadFile(fad, &sB, 1, &dwRead, 0); //lit le fichier au iéme caractère
sB[1] = 0;
//si détection de la fin du fichier on arrête le décodage!
if (dwRead == 0) break;
else
{
k=atoi(sB); j=k-clehex[i]; WriteFile(fd,&j, 1,&dwWritten, 0); //lit le fichier au iéme caractère
}

}
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juil. 2004 à 13:32
Pour etre precis, je n'ai RIEN compris a ton cahier des charges.
Faudrait savoir le but exact a obtenir et avoir le format du fichier source.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 13:44
excuse
donc le fichier est un fichier texte qui est en fait un fichier pdf crypté (fad) (par addition d'un entier) , ce bout de code permet de le décrypter (par soustration d'un entier) en l'enregistrant dans un fichier (fd)temporaire que l'on ouvrira par la suite.
int clehex[4]; est le tableau d'entier qui est la clef de codage et de décodage en question!

ps: je me suis trompé dans la boucle: for (i=0;i<5;i++)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 13:47
j'espère que c'est clair!
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 13:59
en fait k=atoi(sB); vaut toujours 0 hors ça devrait être la valeur ascii du caratère lu
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juil. 2004 à 14:01
C'est bien toi qui fait son cryptage ?
Si oui, il faut partir de ton algo de cryptage et faire l'inverse, je ne suis pas certain que ce soit du 'texte'.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:06
oui mais le programme de cryptage et décryptage utilise des fputc ... et ce que je veux faire c'est le transformer en WriteFile ...
parce que ce que je faisait : fputc(sB-clehex[i],fd);//écriture dans fd
voilà mais en faisant la même chose ça ne fonctionne pas
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:07
oui mais le programme de cryptage et décryptage utilise des fputc ... et ce que je veux faire c'est le transformer en WriteFile ...
parce que ce que je faisait : fputc(sB-clehex[i],fd);//écriture dans fd
voilà mais en faisant la même chose ça ne fonctionne pas
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:08
oui mais le programme de cryptage et décryptage utilise des fputc ... et ce que je veux faire c'est le transformer en WriteFile ...
parce que ce que je faisait : fputc(sB-clehex[i],fd);//écriture dans fd
voilà mais en faisant la même chose ça ne fonctionne pas
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juil. 2004 à 14:15
Et bien voila un tres bon exercice, commence par refaire le cryptage en win32 en travaillant dans un buffer (pas d'acces disque par octet svp comme avec ton fputc) et tu pourras refaire decryptage en consequence.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:19
ben oui c'est exactement ce que je fais mais ça marche pas
WriteFile(fd,(sB+clehex[i]), 1,&dwWritten, 0);cette ligne il ne l'apprécie pas du tout il n'écrit que la valeur de clehex[i] dans le fichier crypté.
et je ne sais pas pourquoi parce que quand je demande d'affichier sB il le fait correctement!
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juil. 2004 à 14:20
REBELOTE:
WriteFile comme ReadFile demande en 2eme param pointeur sur zone memoire ou sont stockes les octets a lire ou ecrire !!!

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:27
ben oui c'est pour ça que je fais ça:
k=atoi(sB);

j=k-clehex[i];

WriteFile(fd,&j, 1,&dwWritten, 0); //lit le fichier au iéme caractère
et que là ça ne marche pas non plus parce que k=0 quelque soit sB et là j'ai vraiment du mal à comprendre
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:32
est ce que ça peut venir de la définition de sB ?
char sB[2];
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 juil. 2004 à 14:34
C'est le cryptage ??? Commence par lui !!!

k=atoi(sB); et d'ou sort ce sB, si vient d'un fichier crypte, peu de chances que puisse aller.

ciao...
BruNews, Admin CS, MVP Visual C++
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:41
oui c'est le cryptage
de toute façon cryptage ou décryptage ça se ressemble puisque c'est le signe de l'addition qui change!
le sB je le récupère du fichier à crypter ( id un fichier pdf ouvert en rb avant)
en fait c'est juste une traduction que je veux effectuer puisque mon programme initial marche mais comme je voudrais introduire que le décryptage dans un programme win32.
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:42
int decryptfichier(FILE *fcry,FILE *fencry)
{
int i,l,clehex[4];
//on appelle la fonction clefhex
clefhex(clehex,"abcdef");

printf("\n Decryptage en cours veuillez patienter... \n");

//système de décodage du fichier
for (i=0;;i++)
{
if (i>3) i=0;
l = fgetc(fcry);//lecture dans fcry
//si détection de la fin du fichier on arrête le codage!
if (l == EOF) break;
else
fputc(l-clehex[i],fencry);//écriture dans fencry
}

//fermeture des deux fichiers
fclose(fcry);
fclose(fencry);

//message de réussite
printf("\n\n Fichier decrypte avec succes \n\n");

//sorti du sous-programme
return 0;
}
0
maevasa Messages postés 100 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 3 août 2004
5 juil. 2004 à 14:45
merci de m'avoir aider j'ai trouvé en fait j'ai fait:
ReadFile(fad, &k, 1, &dwRead, 0); //lit le fichier au iéme caractère
sB[1] = 0;
//si détection de la fin du fichier on arrête le décodage!
if (dwRead == 0) break;
else
{
j=k-clehex[i]; WriteFile(fd,&j, 1,&dwWritten, 0); //lit le fichier au iéme caractère
}
0
Rejoignez-nous