Bonjour, j'utilise la fonction Windows WriteFile() pour écrire dans un fichier.
Cependant je voudrais intégrer un saut de ligne à la fin de mes données "Data" de mon WriteFile, comment faire??
WriteFile(hFile, // open file handle
Data, // start of data to write
dwBytesToWrite - dwBytesWritten, // number of bytes to write
&dwBytesWritten, // number of bytes that were written
NULL);
Non il faut que tu ajoutes 1 octet contenant la valeur 13 et un autre octet contenant la valeur 10.
Cela correspond à un '\r' et '\n' : soit à un retour chariot et un saut de ligne
A+
____________________________________________________________________________
Mon site internet :
http://ImAnalyse.free.fr
Est ce que tu pourrais me donner la syntaxe stp.
Voici mes data:
char DataBuffer1[] = "This is a test string.";
WriteFile(hFile, // open file handle
DataBuffer1, // start of data to write
14, // number of bytes to write
&dwBytesWritten, // number of bytes that were written
NULL);
Voilà un exemple. Écrit "Hello world !" et saut de ligne dans test.txt. Source unicode ou non, mais le fichier généré n'est jamais en unicode.
Si tu veux ajouter un CRLF à des données existantes, il y a lstrcatA.
Application console.
Pour compiler sous gcc, ajouter -nostartfiles -nodefaultlibs -nostdlib -ffreestanding dans les options du lieur.
Pour compiler sous VC, s'arranger pour que le lieur ignore toutes les librairies par défaut (/nodefaultlib).
S'assurer que kernel32 et user32 sont en entrée du lieur.
<hr size="2" width="100%" />#ifdef UNICODE
#define _UNICODE
#endif /* UNICODE */
#include <windows.h>
#include <tchar.h>
char* lpMessage = "Hello world !\r\n";
/**
* Affiche un message d'erreur correspondant à la dernière erreur Win32
*/
DWORD __stdcall Err_ShowLatest()
{
DWORD nLastError; /* Numéro de l'erreur */
LPTSTR lpMessageBuffer; /* Récupération du message */
/**
* Main
*/
int __cdecl mainCRTStartup()
{
HANDLE hFile; /* Handle du fichier à ouvrir */
DWORD nNumberOfBytesWritten; /* Nombre d'octets écris */
int nResult;
nResult = 0;
/* Ouverture ou création du fichier */
hFile = CreateFile(_T("test.txt"),
GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
nResult = Err_ShowLatest();
goto the_end;
}
/* Ecriture de la phrase */
if (! WriteFile(hFile, lpMessage, lstrlenA(lpMessage), &nNumberOfBytesWritten, NULL))
nResult = Err_ShowLatest();
CloseHandle(hFile);
the_end:
/* ExitProcess nécessaire car sinon c'est un ExitThread */
ExitProcess(nResult);