begin process at 2010 03 17 00:31:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Comment sauter une ligne ds un WriteFile()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment sauter une ligne ds un WriteFile()

lundi 27 avril 2009 à 08:52:21 | Comment sauter une ligne ds un WriteFile()

dante20007

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); 

Merci.
lundi 27 avril 2009 à 10:33:12 | Re : Comment sauter une ligne ds un WriteFile()

BruNews

Administrateur CodeS-SourceS
suffit d'ajouter 2 octets (13 et 10) à ton buffer.

ciao...
BruNews, MVP VC++
lundi 27 avril 2009 à 10:39:18 | Re : Comment sauter une ligne ds un WriteFile()

dante20007

Il faut que j'ajoute 2 octets vide à mon Buffer et cela sautera de ligne?
lundi 27 avril 2009 à 10:42:43 | Re : Comment sauter une ligne ds un WriteFile()

Pistol_Pete

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 :
  
[ Lien ]

lundi 27 avril 2009 à 10:58:04 | Re : Comment sauter une ligne ds un WriteFile()

dante20007

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); 

Merci
mercredi 6 mai 2009 à 17:55:37 | Re : Comment sauter une ligne ds un WriteFile()

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Plus d'infos sur CRLF.

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.

#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                      */

  nLastError = GetLastError();

  /* Formatage du message */
  FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                NULL, nLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                (void*)&lpMessageBuffer, 0, NULL);

  /* Affichage du message */
  MessageBox(NULL, lpMessageBuffer, _T("ERROR"), MB_OK | MB_ICONERROR);

  LocalFree(lpMessageBuffer);
  return nLastError;
}

/**
 * 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);

  /* Pour esquiver le warning */
  return 0;
}



Cette discussion est classée dans : ligne, data, of, writefile, sauter


Répondre à ce message

Sujets en rapport avec ce message

Manipulation d'un fichier formatté spécial [ par jb60 ] Bonjour,Je suis entrain d'essayer de faire un petit programme qui me sera utile dans mon travail.J'ai un fichier qui se nomme "fichier.raw" avec des d '\n' [ par SaXo360 ] Bonjour,Dans tout mon programme j'utilise ReadFile et WriteFile et je voudrais ecrire un retour à la ligne '\n'.Le problème étant qu'avec WriteFile, o Sauter la ligne dans un fichier [ par xmustapha ] bonjour tout le monde comment faire pour sauter la ligne dans un fichier  dans la function WriteFile() (je suis sur C++ Builder 2007)j'ai essayer çain find_first_of("/"); probléme de recupuration d'une chaine de caractére dans une ligne [ par yanlou ] salut, svp si quelqu'un peux m'aidé, pour récupuré une chaine de caracté dans une ligne, le probléme c'est qu'il ya des critéreexemple de la chaine de sauter une ligne dans un EDIT multiligne de winapi [ par dyroj ] Mes salutations à tous,je suis en train de créer un tchat mais j'arrive pas a sauter de ligne dans le edit box  multiligne qui recoi la les message.j' de Matlab à c++ [ par lammoumou ] Bonjour,qcq peut m'aider à traduire ce programme de Matlab à C++Merci d'avence*****************% A wave travelling on a string with % fixed endpoints je n'arrive pas a appeler cette fonction [ par nidhaletec ] std::vector getWayCoords(int id) const;/**     * Return a vector of the coordinates of all the points making up a way,     * in lon-lat order.     * @ Lecture Data Runs - système NTFS [ par mzhunix ] Bonjour,J'aimerais savoir comment me débrouiller avec les data runs récupérés dans un attribut non résident de la mft.En fait, je voudrais les données problème de template sous linux (qui par contre compile et tourne sous windows !!!!) [ par orus35 ] Bonjour, Peut-être que vous allez pouvoir m'éviter de me prendre la tête pdt 107 ans, mon code compile et tourne bien sous 2009. par contre sous linux Langage c : problème avec gets [ par Lens49 ] Bonjour, j'ai besoin d'aide pour débugger un petit programme que j'ai écris en langage c. Je pense que le problème est lié à une méconnaissance de la


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales