LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
23 avril 2007 à 10:14
BunoCS
Messages postés15395Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 2 octobre 2023
-
24 avril 2007 à 11:41
Bonjour ,
Voila je cherche dans le cadre d'un projet a créer des fichiers XML et écrire dedans :
voici le format de ces fichiers:
Je travaille en C++ sous visual 2005 XP, et je ne souhaite pas faire de parseur,mon but ici n'est que d'ecrire des fichiers qui seront lu par un autre
logiciel distant!
j'ai fait des recherches et trouver des bibliotheques styles Xcerces ou tinyXML, mais comme je ne souhaite que créer et ecrire le fichier
je voulais vous poser la question: dois je utiliser ce genre de biblio et est ce simple a faire( sachant que j'ai beaucoup de valeur et je créé des fichiers 1/heure)
et sinon dois je juste faire création de fichier et ecriture comme un simple fichier texte que je mettrais a l'xtension xml?
merci pour vos reponses!
BunoCS
Messages postés15395Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 2 octobre 2023102 23 avril 2007 à 10:54
Salut,
Je suis actuellement sur TinyXML et je le trouve suffisamment facile d'accès pour ce que tu as à faire.
La prise en main est rapide, surtout en suivant ce tutoriel explicite
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
cs_omnia
Messages postés240Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention22 mars 2009 23 avril 2007 à 11:14
Salut,
Dans le cas d'une écriture seul dans un fichier XML sans relecture et remplacement de valeurs, tu peux utiliser directement des fonctions native de gestion d'écriture des fichiers:
- fopen / fclose
fputs
c'est beaucoup plus rapide inutile d'utiliser des bibilo voila
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 20131 23 avril 2007 à 11:44
ok on es bien d'accord vu ce que j'ai a faire autant utiliser les fonctions de base
fopen / fwrite etc....
et mettre les balises correctement pour qu'il n'y ai pas de probleme!!!
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 23 avril 2007 à 11:56
Laisse donc les vieilleries au placard. Utilises plutot l'API :
CreateFile(...) : ouverture/création de fichier
WriteFile(...) : Ecriture
ReadFile(...) : Lecture
CloseHandle(...) : Libération du handle alloué lors du CreateFile(....)
Shell
Vous n’avez pas trouvé la réponse que vous recherchez ?
BunoCS
Messages postés15395Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 2 octobre 2023102 23 avril 2007 à 14:23
Tu le mets où tu veux ton fichier!
Tu peux regarder la classe CFileDialog pour créer une boite de dialogue d'enregistrement de fichier ou bien SHFolderForFolder pour sélectionner un dossier dans lequel ranger tes XML.
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 20131 23 avril 2007 à 14:44
salut,
bizarre j'ai juste mis ce code simple pr voir deja si ca créé un fichier
et il compile pas du tout:
#include <stdio.h>
#include <windows.h>
#include <time.h>
HANDLE hXMLFile;
hXMLFile = CreateFile(TEXT("myfile.xml"), // file to create
GENERIC_WRITE, // open for writing
FILE_SHARE_READ, // share for reading
NULL, // default security
CREATE_ALWAYS, // overwrite existing
FILE_ATTRIBUTE_NORMAL , // normal file
NULL); // no attr. template
if (hFile == INVALID_HANDLE_VALUE)
{
printf("Could not open file (error %d)\n", GetLastError());
return 0;
}
else
{
fSuccess = WriteFile(hXMLFile,
buffer,
dwBytesRead,
&dwBytesWritten,
NULL);
if (!fSuccess)
{
printf ("WriteFile failed with error %d.\n",GetLastError());
return (5);
}
// Close the handles to the files.
fSuccess = CloseHandle (hXMLFile);
if (!fSuccess)
{
printf ("CloseHandle failed with error %d.\n",GetLastError());
return (8);
}
}
il me dit deja que mon handle est un int !!!!
error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque
error C2040: 'hXMLFile' : les niveaux d'indirection de 'int' et de 'HANDLE' sont différents
error C2440: 'initialisation' : impossible de convertir de 'HANDLE' en 'int'