UDF > WinAPIEx > Files & Devices > Files >


_WinAPI_WriteFile

Ecrit des donn�es dans un fichier � la position indiqu�e par le pointeur de fichier

#include <WinAPIFiles.au3>
_WinAPI_WriteFile ( $hFile, $pBuffer, $iToWrite, ByRef $iWritten [, $tOverlapped = 0] )

Param�tres

$hFile Handle du fichier dans lequel il faut �crire
$pBuffer Pointeur sur le tampon contenant les donn�es � �crire
$iToWrite Nombre d'octets � �crire dans le fichier
$iWritten Le nombre d'octets �crits
$tOverlapped [optionnel] Une structure $tagOVERLAPPED ou un pointeur sur une telle structure

Valeur de retour

Succ�s: Retourne True
�chec: Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

En relation

$tagOVERLAPPED, _WinAPI_CloseHandle, _WinAPI_CreateFile, _WinAPI_FlushFileBuffers, _WinAPI_GetFileSizeEx, _WinAPI_ReadFile, _WinAPI_SetEndOfFile, _WinAPI_SetFilePointer

Voir aussi

Consultez WriteFile dans la librairie MSDN.

Exemple

#include <WinAPIFiles.au3>
#include <WinAPIHObj.au3>

Local $sFile, $hFile, $sText, $nBytes, $tBuffer

; 1) Cr�e un fichier et �crit des donn�es
$sFile = @ScriptDir & '\test.txt'
$sText = 'abcdefghijklmnopqrstuvwxyz'
$tBuffer = DllStructCreate("byte[" & StringLen($sText) & "]")
DllStructSetData($tBuffer, 1, $sText)
$hFile = _WinAPI_CreateFile($sFile, 1)
_WinAPI_WriteFile($hFile, DllStructGetPtr($tBuffer), StringLen($sText), $nBytes)
_WinAPI_CloseHandle($hFile)
ConsoleWrite('1) '& FileRead($sFile) & @CRLF)

; 2) Lit 6 octets � partir de la position 3
$tBuffer = DllStructCreate("byte[6]")
$hFile = _WinAPI_CreateFile($sFile, 2, 2)
_WinAPI_SetFilePointer($hFile, 3)
_WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), 6, $nBytes)
_WinAPI_CloseHandle($hFile)
$sText = BinaryToString(DllStructGetData($tBuffer, 1))
ConsoleWrite('2) '& $sText & @CRLF)

; 3) Ecrit les 6 octets d�j� lus � la position 3 � la m�me position, mais en majuscules
DllStructSetData($tBuffer, 1, StringUpper($sText))
$hFile = _WinAPI_CreateFile($sFile, 2, 4)
_WinAPI_SetFilePointer($hFile, 3)
_WinAPI_WriteFile($hFile, DllStructGetPtr($tBuffer), 6, $nBytes)
_WinAPI_CloseHandle($hFile)
$tBuffer = 0
ConsoleWrite('3) '& FileRead($sFile) & @CRLF)

; 4) Tronque la taille du fichier � 12 octets
$hFile = _WinAPI_CreateFile($sFile, 2, 4)
_WinAPI_SetFilePointer($hFile, 12)
_WinAPI_SetEndOfFile($hFile)
_WinAPI_CloseHandle($hFile)
ConsoleWrite('4) '& FileRead($sFile) & @CRLF)

FileDelete($sFile)