Créer un fichier rempli de zero ? [Résolu]

Signaler
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
-
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
-
Salut, je voudrais savoir comment faire pour créer un fichier d'une taille précise remplit de zero.
Merco!

4 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Alloue un bloc de mémoire de taille que tu veux avec HeapAlloc avec dwFlags = HEAP_ZERO_MEMORY et écris dans le fichier avec WriteFile tant que tu en as besoin.
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

Et on fait ca comment?
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

C'est bon j'ai trouvé:

HANDLE HDLWRITE;
HDLWRITE=CreateFile("tmp.mpg", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, 0);
SetFilePointer(HDLWRITE, 0, 0, FILE_BEGIN);

DWORD taillefichier = GetFileSize(HDLREAD, 0);

DWORD ecri;
HANDLE Hheap=GetProcessHeap();
void* nulldata=HeapAlloc(Hheap,HEAP_ZERO_MEMORY,taillefichier);
WriteFile(HDLWRITE,nulldata,taillefichier,&ecri,0);

CloseHandle(HDLWRITE);
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

Pardon j'ai laissé quelques trucs inutile:

HANDLE HDLWRITE;
HDLWRITE=CreateFile("tmp.mpg", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, 0);

DWORD taillefichier = 10000;
DWORD ecri;

HANDLE Hheap=GetProcessHeap();
void* nulldata=HeapAlloc(Hheap,HEAP_ZERO_MEMORY,taillefichier);
WriteFile(HDLWRITE,nulldata,taillefichier,&ecri,0);

CloseHandle(HDLWRITE);