maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004
-
2 juil. 2004 à 10:57
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004
-
2 juil. 2004 à 11:53
Comment faire ca en Win32 (CreateFile, SetFilePointer,WriteFile,...) ?
if((fcry2 fopen(szFileName ,"rb")) NULL)
{
//erreur donc sorti programme 0
return 0;
}
l = fgetc(fcry2); //lecture dans fcry
if (l==37) // si le fichier commence pas % on l'ouvre directement et sort du sous programme
{
fclose(fcry2);
//on ouvre le fichier grâce à ShellExecute
ShellExecute(NULL, "open", szFileName , NULL, NULL, SW_MAXIMIZE);
return 1;
}
else
{
fclose(fcry2);if((fcry2 fopen(szFileName ,"rb")) NULL)
{
MessageBox(0, szFileName , "erreur à l'ouverture", MB_ICONEXCLAMATION); return 0;
}
sprintf(file2,"%s%s",TempDirectory_str,szTitleName);
if((fencry2 fopen(file2,"wb+")) NULL)
{
MessageBox(0, "veuillez vérifier que le fichier c:\temp exite", "erreur à l'ouverture", MB_ICONEXCLAMATION);
fclose(fcry2);
return 2;
}
//on appelle la fonction clefhex
clefhex(clehex,"abcdef");
//système de décodage du fichier
for (i=0;;i++)
{
if (i>3) i=0;
l = fgetc(fcry2);//lecture dans fcry
//si détection de la fin du fichier on arrête le décodage!
if (l == EOF) break;
else
fputc(l-clehex[i],fencry2);//écriture dans fencry
}
//fermeture des deux fichiers
fclose(fcry2);
fclose(fencry2);
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 2 juil. 2004 à 11:38
en fait je ne comprend pas parfaitement ces deux lignes
1) if (dwRead != 1) return 0; (c'est si jamais il ne pointe pas sur le premier caractère de mon fichier?, est ce qu'il s'incrémente tout seul?)
2) sBuffer[1] = 0; là je ne vois pas du tout!!
est ce que cette commande marche si le fichier n'existe pas ?
faut pas remplacer OPEN_EXISTING par autre chose ??
hFile = CreateFile(szFileName, GENERIC_READ, 0, 0, OPEN_EXISTING, 0);
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 2 juil. 2004 à 11:46
alors la fonction ReadFile va stocker ds dwRead le nombre d'octets lus, donc je verifie simplement kel n'ait pas lu plus d'octets ke desiré ou au contraire aucun !
SBuffer[1] = 0; Une chaine de caractere est tjrs finie par un '\0', ici je place juste le 0 a l'element suivant le premier caractere recupéré (car on ne veu ke le premier).
OPEN_EXISTING permet d'ouvrir un fichier ke s'il existe, ds le cas contraire, CreateFile renverra INVALID_HANDLE_VALUE : je teste la ligne d'apres pour voir si cete fonction ne me renvoie pas ca, si elle me renvoie INVALID_HANDLE_VALUE, je kite...
Voila
+
Alhexman
Vous n’avez pas trouvé la réponse que vous recherchez ?