1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
int result = ERREUR_CREATION_FICHIER;
xmlDocPtr fichierXML;
xmlNodePtr racine;
SaveDialog1 = new TSaveDialog(this->mpXMLOwner);
SaveDialog1->Filter = XML_FILTRE;
SaveDialog1->DefaultExt = EXT_FICHIER;
if(SaveDialog1->Execute())
{
HANDLE HFile;
if ( (HFile = CreateFile(SaveDialog1->FileName.c_str(),GENERIC_WRITE,FILE_SHARE_READ, NULL,CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)
{
CloseHandle(HFile);
mpContenu = new TStringList;
mpContenu->Add(ENCODAGE_XML);
mpContenu->Add(RACINE_XML);
mpContenu->SaveToFile(SaveDialog1->FileName);
delete mpContenu;
// Ouverture du fichier XML
fichierXML = xmlParseFile(SaveDialog1->FileName.c_str());
if (fichierXML == NULL)
{
result = FICHIER_XML_INVALIDE;
}
else
{
// Récupération de la racine
racine = xmlDocGetRootElement(fichierXML);
if (racine == NULL)
{
result = FICHIER_XML_VIERGE;
xmlFreeDoc(fichierXML);
}
else
{
xmlNewChild(racine, NULL, "composants", "");
xmlNewChild(racine, NULL, "variantes", "");
xmlNewChild(racine, NULL, "versions", "");
xmlNewChild(racine, NULL, "nomenclatures", "");
xmlSaveFile(SaveDialog1->FileName.c_str(), fichierXML);
xmlFreeNode(racine);
xmlFreeDoc(fichierXML);
result = FICHIER_CREE;
}
}
}
else
{
result = FICHIER_EXISTANT;
}
}
delete SaveDialog1;
return result; |
Partager