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.

Cette fonction de contenu de fichier présente les différents formats suivants :

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. Il représente le tampon à stocker dans le fichier.

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 True, sinon elle renvoie 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 (voir ci-dessus) différemment ; lors de l'écriture de la chaîne sur le disque, l'interpréteur ajoute toujours un signe 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é.

Le format suivant est géré différemment par l'interpréteur.

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 : Fonction WriteFile

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:

Informations complémentaires :

OpenFile – Ouvrir un fichier

CreateFile – Créer un fichier