CreateFile()

Signaler
Messages postés
107
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2004
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
je veux ouvrir un fichier sur l'ordinateur pour cela je ne sai spas quoi utiliser fopen() ou createfile() quelle est la différence entre les deux?
comment faire pour ouvrir à l'aide de createfile un fichier en indiquant son emplacement D:\ahmed.dcr ppar exemple

j'aimerais aussi savoir comment comment créer et ouvrir (en écriture) le fichier de rendement finale.

le tout s'inscrivant dans une logique de transformation de format de fichier
merci beaucoup
ahmed

11 réponses

Messages postés
62
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 octobre 2005

hello

fopen est une fonction standard en C....
si tu veux ouvrir un fichier en mode ecriture et que ce fichier n'existe pas encore, il est crer automatiquement...

ex:

FILE * fichier ; //pointeur sur un structure de fichier

/* on ouvre un fichier en mode texte et ajout si le fichier n'existe pas il est crée */
if( fichier = fopen("c:\\toto.tutu", "at" ) != NULL )
{
/* ici les instruction d'ecriture ...*/
...
fclose(fichier) ;
}
else
printf("impossible d'ouvrire le fichier\n") ;

voila ... pour les paramètres de fopen regarde dans les aides ( il y a : r, w, a, t, b, +... ( la touche F1 est ton amie ))

neoh_p [=- coding spirit -=]
------- since 1999 ------
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Si tu prog sur win32 alors CreateFile() s'impose ainsi que l'emploi de l'API dans son ensemble.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
198
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
15 février 2005

pkoi CreateFile() s'impose sur win32?
Cmill
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Parce que la ligne droite est la distance la plus courte entre 2 points.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
198
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
15 février 2005

si tu le dis ...........
Cmill
Messages postés
22
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
29 juin 2004

bonjour a tous,
comment peut on ecrire dans un fichier binaire en utilisant CreatFile?est ce que c possible d abord?
merci a vous
return(0);)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
CreateFile tamponne une quantite d'octets partant d'une adresse de base, donc toujours binaire.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
22
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
29 juin 2004

et c possible d y ecrire?si oui une petite indication sera la bienvenue.
merci
return(0);)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Excuse, en sautant d'un truc a l'autre j'ai repondu trop vite comme d'hab.
CreateFile ouvre ou cree fichier (entre autre).
WriteFile ecrit.

DWORD necrits;
WriteFile(hfile, pmem, noctets, &necrits, 0);

Nombreux exemples dans mes sources et bien entendu il faut lire MSDN.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
22
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
29 juin 2004

BruNews j espere que je t embete pa. j ai jetter un coup d oeil sur les writefile dans msdn et j ai trouvé que c pour l ecrtiture dans des fichier texte. moi je veux ecrire dans un fichier binaire. j espere que je me trompe pa

return(0);)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Binaire, pas binaire sont des notions obsoletes sur win32.

BYTE pmem[48]; // tu remplis comme tu veux
DWORD d;
HANDLE hfl;
hfl = CreateFile(nomfich,...);
d = 0; WriteFile(hfl, pmem, 48, &d, 0);
if(d != 48) ErrorEcriture;
CloseHandle(hfl);

ciao...
BruNews, Admin CS, MVP Visual C++