Rubrique précédente: SeekFile : Modifier la position actuelle dans un fichier ouvertRubrique suivante: Fonctions du système de fichiers


WriteFile : Ecrire des données dans un fichier

Valide sur les plates-formes NetWare, Symbian OS, UNIX, Windows et Windows CE

La fonction WriteFile écrit des données dans un fichier.

Formats des fonctions :

WriteFile(handle as Integer, buffer as String) as Boolean
WriteFile(handle as Integer, buffer as String, buflen as Integer) as Boolean
WriteFile(handle as Integer, buffer as Void) as Boolean
WriteFile(handle as Integer, buffer as Void, buflen as Integer) as Boolean
descripteur

Identifie un descripteur de fichier renvoyé par OpenFile ou CreateFile.

mémoire tampon

Indique une variable de type quelconque.

buflen

Indique le nombre de caractères à stocker dans le fichier. Si le nombre de caractères dépasse buflen, seuls les premiers caractères de buflen sont stockés dans le fichier. Sinon, la totalité du tampon est stockée.

En cas de réussite, la fonction renvoie la valeur True. Dans le cas contraire, elle renvoie la valeur False.

Remarque : Ne mélangez pas les différents formats de la fonction WriteFile(). Le mélange des formats peut donner des résultats inattendus.

L'interpréteur gère le premier format différemment ; lors de l'écriture de la chaîne sur le disque, l'interpréteur ajoute toujours un signe de nouvelle ligne.

L'interpréteur mappe le premier format à une autre fonction d'écriture système que celle des trois autres formats qui sont associés à une fonction d'écriture système commune. Les autres fonctions d'écriture système peuvent utiliser des caches différents pour stocker les données écrites. Au moment de la fermeture, les caches sont écrits sur le disque l'un après l'autre. Si vous mélangez les formats, les données ne s'afficheront pas nécessairement dans l'ordre approprié.

L'interpréteur gère les formats suivants de façon différente :

WriteFile(handle as Integer, buffer as String) as Boolean 

Lorsque la chaîne est écrite sur le disque, une nouvelle ligne est systématiquement ajoutée. Ceci n'est pas valable pour les autres types de format. En outre, l'interpréteur mappe cette fonction à une autre fonction d'écriture système que celle des trois autres formats qui ont été associés à une fonction d'écriture système commune. Les autres fonctions d'écriture système peuvent utiliser des caches différents pour stocker les données écrites. Au moment de la fermeture, les caches sont écrits sur le disque l'un après l'autre. Si les formats sont mélangés, les données risquent de ne pas apparaître dans l'ordre où elles ont été écrites. Par conséquent, ne mélangez pas ce format avec les autres.

Exemple :

Dim fIn, fOut as integer   ' Déclarez les descripteurs de fichier
Dim OneLine as string     ' Chaîne devant tenir sur une ligne

Rem Ouvrez d'abord le fichier d'entrée...

fIn=OpenFile("C:\CONFIG.SYS",O_READ)
if fIn<0 then
	MessageBox("Impossible d'ouvrir le fichier d'entrée","Erreur")
	Goto End
End if

Rem ...Ensuite, créez le fichier de sortie...

fOut=CreateFile("C:\CONFIG.BAK")
if fOut<0 then
	MessageBox("Impossible de créer le fichier de sortie","Erreur")

CloseFile(fIn)
	Goto End
End if

Rem ...Copiez les lignes jusqu'à ce qu'il n'en reste plus...

while Not(Eof(fIn))
	if ReadFile(fIn,OneLine) then WriteFile(fOut,OneLine)
wend

Rem ...Refermez les fichiers et indiquez la réussite de l'opération.

CloseFile(fIn)
CloseFile(fOut)
MsgBox("Une copie de sauvegarde du fichier CONFIG.SYS a été créée","MonScript",MB_OK)

end: