|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Lire/Ecrire dans un fichier txt, pb, besoin d'aide [ Archives / Au secours ] (eupeup)
Informations & options pour cette discussion
mardi 9 août 2005 à 17:30:48 |
Lire/Ecrire dans un fichier txt, pb, besoin d'aide

eupeup
|
Salut a tous, j'ai un probleme avec une appli que je dois coder.
Je suis un matheux et non un codeur, vous m'excuserez.
J'ai un fichier xml, et je dois extraire les donnees comprises entre certaines balises, puis les importer dans un fichier txt tout simple.
En gros les donnees que je dois extraire sont toujours des nombres (positifs et negatifs) et je dois les importer les un a la suite des autres dans le fichier txt de reception.
Comme je suis pas totalement nul, j'ai deja bien avance.
J'ai utilise un tableau a 2 dimensions, une case pour chaque caractere, dans lequel tous les caracteres du fichier xml sont places(lignes par lignes et caract par caract).
Chaque lignes de mon tab correspond a une ligne du fichier.
J'ai ensuite utilise un second tableau dans lequel j'ai extrait du premier les donnees dont j'ai besoin ( je rappelle que ce sont les caracteres compris entre certains types de balises)
Ainsi j'ai un tableau a 2 dim qui contient exactement les elements que je dois afficher dans mon fic txt.
Mon probleme c'est que mon tableau est de la forme:
char destination[1000][1000];
Et que pour ecrire dans un fichier j'utilise : fprintf qui prend en argument un char*
Alors vous me diriez : utilise un tableau char* pour stocker les donnees
mais je suis oblige d'utiliser un char car j'utilise fgetc() pour recuperer les donnees du fichier initial.
J'ai egalement essaye de caster comme suit:
(char*)destination[i][j]
Ou d'utiliser itoa (car fgetc() retourne un int)
Rien ne marche, toujours la meme erreur ("memory couldn't be read....de mescouiles")
Je suis degoute, car je suis une quiche, mais j'ai qd meme bien avance, je sais exactement ce que je dois faire pour terminer (une double boucle for pour parcourir mon tableau et en afficher le contenu) mais je suis bloque a cause d'une erreur de compatibilite....
Si quelqu'un peut me debloquer, ca serait genial, j'imagine qu'il y a une solution toute simple, que je suis pas le seul a qui s'est arrive...
Merci d'avance
|
|
|
mardi 9 août 2005 à 18:00:44 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

vecchio56
|
Pour être sur de bien comprendre, j'aimerais bien que tu donne un exemple avec un fichier xml d'entrée, et le txt que tu voudrais qu'il génère
|
|
|
mardi 9 août 2005 à 18:23:14 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

MNEMONIC
|
... Pour répondre à la question : 1ère ligne de tont tableau -> destination 2ème ligne -> destination +1000 etc...
La première adresse de ton tableau correspond à destination[0][0].
Donc l'endroit où tu dois récupérer tes données doit correspondre en gros à fprintf(fichier,"%s",(char *)destination+(1000*numeroligne)).
Si tu n'as pas mis un '\0' après le dernier caractère, y'a des chances pour qu'il aille lire en dehors du tableau...
Quand tu fais un char*destination[i][j], c'est un magnifique tableau de pointeurs...mais il n'a pas de mémoire allouée, du coup, quand tu essayes de lire, il se gauffre.
En dehors de la question : J'ai l'impression que tu te compliques la vie pour pas grand chose... Si j'ai bien compris, ton fichier doit avoir en gros la tête suivante :
blabla <balise>12345</balise> blabla
donc, dans ta boucle de lecture : tu récupères la ligne tu recherches s'il y a une balise de ta liste s'il y en a une, tu recherches la position de la balise fermante tu copies ou tu concatènes dans un buffer ce qui se trouve entre la position du dernier caractère de ta balise ouvrante et la première position de ta balise fermante A la fin de ta boucle de lecture, tu écris la totalité d'un bloc... Du coup, tu économises des boucles...
Au besoin contacte moi...
|
|
|
mercredi 10 août 2005 à 00:24:03 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

eupeup
|
Merci d'avoir repondu aussi vite.
EN fait je dois traiter plusieurs fic xml, pour l'instant j'essaye avec un, mais c'est pareil si yen a plusieurs, ils se presentent de la maniere suivante:
results/VanillaSwaps-1.0
Cross Asset HJM
Pfe
Pfe
1.
MarketData.InterestRate.DiscountCurve.EUR
2005-07-28
2005-07-29
2005-07-30
2005-07-31
2005-08-01
2005-08-02
2005-08-03
2005-08-04
2005-08-12
2005-08-27
2005-09-11
2005-09-26
2005-10-12
2005-10-27
2005-11-11
2005-11-26
2005-12-11
2005-12-27
2006-01-11
2006-01-26
2006-02-25
2006-03-28
2006-04-27
2006-05-28
2006-06-27
2006-07-28
2006-08-27
2006-09-26
2006-10-27
2006-11-26
2006-12-27
2007-01-26
2008-04-26
2008-07-27
2008-10-26
....................
2032-07-21
2033-07-21
2034-07-21
2035-07-21
1
0
5
0
-22.9400220196
-15.7788683934
-10.1758117733
3.8876128095
-0.398023237
-5.3943060373
0.506538714
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
-22.9400220196
-10.2391096425
-5.0229244988
-55.0837858913
-122.6711243249
-108.6642762044
-166.1230032338
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
................... ca continue comme ca pendant 500 lignes
Donc voila j'ai plusieurs fichier de ce type a traiter et je dois extraire uniquement les données comprises entre les balises
Toutes ces valeurs sont mises les unes à la suite des autres
Voila un exemple de fichier attendu en sortie(ce n'est pas le ficher correspondant a l'exemple donne juste au dessus ):
7074.172271
5391.820864
8387.310205
15267.56164
21532.51835
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
9334.812255
4148.170259
2487.135171
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
863.805528
202.4335042
226.8111923
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
2124.999157
9387.791606
12892.11033
24064.05988
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
8055.980162
4523.218691
3755.798209
4157.319935
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
4455.415948
17173.05422
13662.63372
38819.09545
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
9367.52481
2539.731005
2394.859022
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
19322.34569
9920.745488
13451.7085
12866.61673
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7074.172271
8196.833559
3727.176131
6757.298654
0
0
0
0
0
0
0
0
0
|
|
|
mercredi 10 août 2005 à 10:12:20 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

MNEMONIC
|
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) { FILE* fic1 = fopen("fic1.txt","r"); FILE* fic2 = fopen("ficDest.txt","w"); char ligne[500]; char* valW = ligne+8; if((fic1!=NULL)&&(fic2!=NULL)) { for(;;) { if(fgets(ligne,500,fic1)==NULL) break; if(!strncmp(ligne,"<Values>",8)) { for(int x=8;;x++) { if(ligne[x]=='<') { ligne[x]='\n'; ligne[x+1]='\0'; break; } } fputs(valW,fic2); } } fclose(fic1); fclose(fic2); } else { cout << "erreur d'ouverture des fichiers" << endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }

|
|
|
mercredi 10 août 2005 à 10:28:40 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

eupeup
|
Merci, c cool d'avoir passer un peu de temps.
Je vais me mettre dessus pour voir, le fichier de destination est vide, ca doit pas etre grand chose...
|
|
|
mercredi 10 août 2005 à 10:47:02 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

steve_clamage
|
Utilise une bibliothèque pour manipuler des fichier xml, ca sera plus simple, plus sur et plus modulable.
|
|
|
mercredi 10 août 2005 à 10:47:45 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

eupeup
|
Merci Mnemo, en fait ca fonctionne, l'erreur a ete trouve rapidement avec un ptit coup de debugger.
En fait dans mon fichier xml il y a des tabulations, et notemment il y en a une devant chaque balise Values, ce qui fait que lorsqu'il check la ligne et bien elle rentre pas dans la condition car en realite il faut
if(!strncmp(ligne,"\t",9))
a la place de if(!strncmp(ligne,"",8))
Il y a encore des ptits details, il affiche egalement "<", enfin bon la c'est cool, dans 5min c fini.
Serieux merci, de mon cote j'avais bien avance et je m'etais bien debloque ce matin, je pense que j'aurais un truc propre avec un peu de taf, mais ton code est bcp plus simple que le mien.
Merci
|
|
|
mercredi 10 août 2005 à 10:50:05 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

eupeup
|
Je connais pas de biblio qui gere les doc xml
Je vais chercher
|
|
|
mercredi 10 août 2005 à 10:52:20 |
Re : Lire/Ecrire dans un fichier txt, pb, besoin d'aide

xterminhate
|
MinXL ? ... ok je sors ;-) Regarde dans mes sources....
|
|
|
Cette discussion est classé dans : fichier, donnees, tableau, txt, utilise
Répondre à ce message
Sujets en rapport avec ce message
fichier txt à un tableau [ par angereveur ]
comment on peut convertir simplement un fichier texte comprenand des mesure à un tableau deux dimensions???
Imprimer un tableau et un fichier txt [ par fred23 ]
Bonjour,Je souhaiterais savoir comment je peux imprimer:un tableau[i][j] et un fichier texte de type toto.txtLe tout en C++.Merci.Fred23
Extraire des donnees d'un fichier txt ... ??? [ par kvndevils ]
Voila Mon fichier txt se presentre de la maniere suivante :10 124 TOTO6 TITI-1OTOTTIITles 2 premier int designent les valeurs de 2 constantes ensuite
prog en C, ecriture puis lecture de donnees de donnees dans un fichier fichier txt [ par 01472583690 ]
Salut a tous ! voici mon probleme : Dans mon programme l'utilisateur doit entrer des donnees ( des char (nom, ville .....) , ainsi que des int ( age,
lire un fichier .txt [ par inconnu2nulpar ]
slt, dans un fichier .txt j'ai des coordonné de point sous la forme :x1,y1x2,y2...mais je ne sait pas comment les récupéré et les mettre dans un table
Lire dans un *.txt un tableau de long ecrit par cfile [ par kididouille ]
Bonjour j'ai un pb:J'ai un tableau de long "long *TabProj;" je desire enregistrer le contenu de ce tableau dans un fichier texte: CFile Fichier;Fichi
charger fichier txt dan tableau [ par hazemwannous ]
Bonjour à tous ;j'ai un problème lorsque j'essaye de lire un fichier (.txt) et stocker le continu dans un tableau. mon fichier (.txt) est de trois col
Tableau et fichier txt [ par cleloa ]
Salut tout le monde !Alors voilà, je suis en plein combat ac le langage c pour reussir à :Importer des données d'un fichier txt dans un tableau de st
mots croisés [ par bissmillah ]
J'aimerai avoir de l'aide grace aux menbres inscrits,c'est a props d'un projet que j'ai a faire en c++ (les mots croisés),je doit créer un fichier tex
Télécharger automatiquement un fichier txt a partir d'un url en aspx [ par zebulon88 ]
Bonjour à tousJe précise que je suis débutant...Je souhaiterais faire un programme en C++.net pour télécharger automatiquement sur un site internet en
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Touch HD
Entre 25€ et 605€
|