begin process at 2012 05 28 23:11:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

convertir un fichier texte en fichier XML.


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

convertir un fichier texte en fichier XML.

vendredi 3 juillet 2009 à 14:38:58 | convertir un fichier texte en fichier XML.

boualiasma

Salut à tous !

Je suis en train d'essayer de convertir un fichier texte en xml.

Ce fichier texte est structuré, et j'ai donc un identifiant en début de chaque ligne, et les informations
que je veux ont des positions et longueurs bien particulière.


contenu_txt :

   001   002  003   004   005
   jour  mois année heure mesure
   14 11 2005 14:02 135
   15 11 2005 15:06 160
   16 11 2005 13:02 002
   17 11 2005 16:30 019
   18 11 2005 18:48 264
   19 12 2005 09:10 294
   19 12 2005 19:20 284
   19 01 2006 01:00 100
   20 02 2006 09:30 056
   21 02 2006 23:09 084
   22 03 2006 22:16 506
   23 04 2006 15:25 164


par exemple une partie de fichier XML contenu_xml est :

<ligne>  
    <jour>14</jour>
    <mois>11</mois>
     <année>2005 </année>
     <heure>14:02 </heure>
    <mesure>135</mesure>  
</ligne>  
 
 
Je voudrais faire un programme C sous Windows qui rentre toutes les données sous la forme précédente.

ou bien existe il un outil ou logiciel qui permet de convertir un fichier texte en fichier XML ?

Merci pour vos idées  et connaissances.
samedi 18 juillet 2009 à 17:25:31 | Re : convertir un fichier texte en fichier XML.

rt15

Membre Club Administrateur CodeS-SourceS

Salut,

Oui tu as peut être un ou deux outils pour te faire ça (Peut être xslt ou autre). Mais ça demanderais d'apprendre à se servir de l'outil, qui fait ce souvent ce qu'on veut à 80% seulement, donc faut trouver une astuce...

Mais quelques lignes de C pour développer un petit utilitaire perso, c'est tellement plus sympatoche !
Ainsi l'outil fait ce que tu veux comme tu le veux !

Voilà un début de piste. Il fait le boulot, mais part du principe que tu n'as que des fichiers comme celui que tu nous montres. Il n'est pas générique quoi... Pour faire un truc générique, il que tu détermines le nombre d'item par ligne.

Code C/C++ :
#include <stdio.h>


typedef struct _MEASURE
{
char lpDay[8];
char lpMonth[8];
char lpYear[8];
char lpHour[8];
char lpMeasure[8];
}
MEASURE;

/**
* Lit une mesure à partir d'un fichier
*
* Renvoie 0 en cas d'échec.
*/

int ReadMeasure(FILE* lpFile, MEASURE* lpMeasure)
{
int nRead; /* Nombre de paramètres lus */

nRead = fscanf(lpFile, "%s %s %s %s %s", lpMeasure->lpDay,
lpMeasure->lpMonth,
lpMeasure->lpYear,
lpMeasure->lpHour,
lpMeasure->lpMeasure);
return (nRead == 5);
}

/**
* Affiche une mesure dans la console
*/

void DisplayMeasure(MEASURE* lpMeasure)
{
printf("%s %s %s %s %s\n", lpMeasure->lpDay,
lpMeasure->lpMonth,
lpMeasure->lpYear,
lpMeasure->lpHour,
lpMeasure->lpMeasure);
}

/**
* Ecrit la mesure dans un fichier xml
*/

void WriteMeasure(FILE* lpFile, MEASURE* lpMeasure)
{
fprintf(lpFile, "\t<ligne>\n");

fprintf(lpFile, "\t\t<jour>%s</jour>\n", lpMeasure->lpDay);
fprintf(lpFile, "\t\t<mois>%s</mois>\n", lpMeasure->lpMonth);
fprintf(lpFile, "\t\t<année>%s</année>\n", lpMeasure->lpYear);
fprintf(lpFile, "\t\t<heure>%s</heure>\n", lpMeasure->lpHour);
fprintf(lpFile, "\t\t<mesure>%s</mesure>\n", lpMeasure->lpMeasure);

fprintf(lpFile, "\t</ligne>\n");
}

/**
* Affiche un message d'erreur en cas d'échec de l'ouverture
*/

FILE* SafeOpenFile(char* lpFile, char* lpMode)
{
FILE* lpResult;

lpResult = fopen(lpFile, lpMode);
if (! lpResult)
printf("Echec de l'ouverture du fichier : \"%s\"", lpFile);

return lpResult;
}

int main()
{
FILE* lpInput; /* Fichier d'entrée */
FILE* lpOutput; /* Fichier de sortie */
MEASURE measure; /* Strucure représentant une mesure */
int nResult;

nResult = 1;

lpInput = SafeOpenFile("input.txt", "r");
if (! lpInput) goto the_end;

lpOutput = SafeOpenFile("output.xml", "w+");
if (! lpOutput) goto close_input;

/* 001 002 003 004 005 */
ReadMeasure(lpInput, &measure);

/* jour mois année heure mesure */
ReadMeasure(lpInput, &measure);

/* Entête et racine xml */
fprintf(lpOutput, "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n");
fprintf(lpOutput, "<mesures>\n");


/* Traitement de toute les lignes restantes */
while (ReadMeasure(lpInput, &measure))
{
DisplayMeasure(&measure);
WriteMeasure(lpOutput, &measure);
}

/* Fermeture de la racine */
fprintf(lpOutput, "</mesures>\n");

nResult = 0;

fclose(lpOutput);
close_input:
fclose(lpInput);
the_end:
return nResult;
}



Cette discussion est classée dans : fichier, texte, convertir, contenu, xml


Répondre à ce message

Sujets en rapport avec ce message

String table et fichier texte [ par Marsin ] Bonjours, je cherche comment ecrire le contenu d'un fichier texte dans une string table. le but c de rendre une application multilanguage, le soft doi Lire un fichier texte [ par isirnet ] bonjour comment faire pour parcourir le contenu du disque (c:), selectionner un fichier texte, et recuperer le contenu de ce fichier dans une variable Convertir un fichier XML en PDF [ par jediNoobiewan ] Bonjour à tous, Je souhaite convertir un XML en PDF, je sais qu'il faut un fichier DTD (j'utilise docbook), un fichier XSL et un utilitaire pour faire Convertir un fichier Binaire en Fichier Texte [ par brute ] bonjour a tous, J'ai un problème, j'aimerais convertir un fichier binaire en fichier texte ..... Quelqu'un sait comment faire ?? Please help me Comment recuperer tous le contenu d'un fichier (avec saut de ligne et en c++) ? [ par ndubien ] Bonjour,Je cherche à savoir comment il faut faire pour prendre tous le contenu d'un fichier (texte) possedant des retours à la ligne!J'ai l'hbitude de acceder au contenu d'un fichier texte [ par khadioua ] bonjourj'utilise Visual C++,et je voudrais fair des calcules à partir d'un fichier texte(.std)qui contient les coordonnées des points(x;y).je suis déb Afficher le contenu d'un fichier texte [ par johndave ] Chers programmeurs, je voudrais, apres avoir ecrire dans un fichier texte, pouvoir afficher son contenu. Quel est le pocesus? Merci bcp. coment convertir un fichier texte en fichier binaire [ par infodaoudi ] Bonjour,existe il une fonction qui converti un fichier texte par example composé de float séparé par des espaces (example 1.2 3.2 2.5...) en un fichie afficher contenu fichier en SDL langage c [ par elunico ] comment faire pour afficher le contenu d'un fichier dans une fenetre SDL en langage c , j'utilise DEVC++.j'aimerais que vous me donniez  le bout de pr Décoder un texte [ par victorcoasne ] Bonjour,J'ai un fichier qui est codé, mais je ne sais pas en quoi.Pouvez-vous m'aider à le décrypter ou m'envoyer un lien vers un algo qui va me perme


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,218 sec (3)

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