CreateFile, SetFilePointer,WriteFile,.. ?

Signaler
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004
-
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004
-
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);
A voir également:

5 réponses

Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
HANDLE hFIle;
DWORD dwRead, dwWritten;
char sBuffer[2];

hFile = CreateFile(szFileName, GENERIC_READ, 0, 0, OPEN_EXISTING, 0);
if (hFile == INVALID_HANDLE_VALUE) return 0;

ReadFile(hFile, sBuffer, 1, &dwRead, 0);
if (dwRead != 1) return 0;
sBuffer[1] = 0;
if (sBuffer[0] == '%') {
CloseHandle(hFile);
ShellExecute(NULL, "open", szFileName , NULL, NULL, SW_MAXIMIZE);
return 1;
}

.....

Voila, pas trop le temps (et bocou de flemme) pour finir, mais j'espere ke tu auras compris comment fonctionnent ces fonction ...

++

Alhexman
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004

merci 1000x
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004

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);

dsl je suis nulle :-(
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
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
Messages postés
100
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
3 août 2004

oki merci ça s'éclaire bien!