Accueil > Forum > > > > Lire/Ecrire dans un fichier txt, pb, besoin d'aide
Lire/Ecrire dans un fichier txt, pb, besoin d'aide
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ée 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
fichier txt HELP !!!!!!!! [ par 3463 ]
Salut !! Merci d'avance pour votre aide : /*Récupération et lecture du tableau en .txt*/ float INPUT[nbredemesures]; FILE*ReadInput;
Donnée enregistrés dans un fichier et dans un tableau pour traitement [ par MrKoala69 ]
Bonjour à tous, (j'espère ne pas m'être trompé pour la catégorie). Je suis étudiant en informatique et j'étudie le C ++. Actuellement je planche su
Livres en rapport
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|