Accueil > Forum > > > > fichier txt HELP !!!!!!!!
fichier txt HELP !!!!!!!!
mercredi 11 mai 2011 à 10:13:28 |
fichier txt HELP !!!!!!!!

3463
|
Salut !! Merci d'avance pour votre aide :
/*Récupération et lecture du tableau en .txt*/
float INPUT[nbredemesures];
FILE*ReadInput;
ReadInput=fopen("c:\\dossier\\fichier.txt","r" ) ;
if(ReadInput=NULL)
{
fprintf(stderr,("Erreur ouverture fichier\n"));
exit(-1);
}
for (int i=0 ; i<nbredemesures ; i++)
{
fscanf(ReadInput,"%f",&INPUT[i]);
}
fclose(ReadInput) ;
for (int i=0 ; i<nbredemesures ; i++)
{
printf("%f\n",INPUT[i]);
}
je ne comprends pas : à la compilation il ya un message d'erreur de microsoft....Ensuite je voudrai faire des calculs entre les différentes colonnes et stocker les résultats ds un nouveau tableau et avec ce nouveau tableau tracer des courbes sur excel.
Merci à tous : c très urgent !!!!!!

|
|
mercredi 11 mai 2011 à 12:12:56 |
Re : fichier txt HELP !!!!!!!!

pop70
|
Bonjour,
Par message Microsoft, j'imagine quelque chose du genre "Erreur à l'adresse 0x...". Ceci vient généralement d'un problème d'allocation.
C'est le cas ici :
Code C/C++ : #include <iostream>
int main()
{
int nbredemesures = 7; // attention, à des endroits du codes il était avec un s, alors qu'à d'autre non
float *INPUT = new float[nbredemesures]; // Il faut allouer INPUT dans le tas pour pouvoir définir avec une taille variable.
FILE*ReadInput;
ReadInput=fopen("fichier.txt","r" ) ;
if(ReadInput==0) // Ici il faut == , le = simple va supprimer le fichier...
{
fprintf(stderr,("Erreur ouverture fichier\n"));
exit(-1);
}
for (int i=0 ; i < nbredemesures; i++)
{
fscanf(ReadInput,"%f", &INPUT[i]);
}
fclose(ReadInput) ;
for (int i=0 ; i<nbredemesures ; i++)
{
printf("%f\n",INPUT[i]);
}
delete[] INPUT; // suppression du pointeur sur le tableau INPUT
}
J'ai mis le code dans le main pour pouvoir le tester directement.
C++dialement
Pop70
|
|
mercredi 11 mai 2011 à 14:28:58 |
Re : fichier txt HELP !!!!!!!!

3463
|
Salut Pop70 !
Jte remercie énormément pour ton aide. Jsuis désolé mais je ne suis qu'un débutant ^^. Alors déja j'ai plus de messages d'erreur mais mon tableau possède 4 colonnes avec des nbres flottants et là je n'obtient qu'une seule colonne avec que des 0.00000.
Et après est-ce que tu saurais comment faire des calculs entre différentes colonnes ??
Merci bcp !!

|
|
mercredi 11 mai 2011 à 14:54:10 |
Re : fichier txt HELP !!!!!!!!

3463
|
Mon fichier txt se présente comme ceci :
0,4 0,4 0,4
0,4 0,4 0,4
2,6 2,6 2,5
7,4 7,6 7,2
7,4 7,6 7,2
7,8 8,2 7,8
7,4 7,9 7,6
etc....
Et le nbre de lignes varient en fonction d'une valeur qu'aura saisi l'utilisateur : nbredemesures. J'ai défini cette variable plus haut :
printf("\n \n Veuillez indiquer la duree de mesure en jours : ");
scanf("%d",&duree);
printf("La duree de mesure selectionnee est de %d jour(s).\n",duree);
nbredemesures=144*duree;
printf("\n \n Il y a %d mesures prises en compte.\n",nbredemesures);

|
|
mercredi 11 mai 2011 à 16:11:05 |
Re : fichier txt HELP !!!!!!!!

pop70
|
Attention : Dans le fichier, pour qu'un flottant soit lu, il faut des points et non des virgules, ce qui explique les "0.000000".
Autrement dit, ceci :
Code :
0,4 0,4 0,4
0,4 0,4 0,4
2,6 2,6 2,5
7,4 7,6 7,2
7,4 7,6 7,2
7,8 8,2 7,8
7,4 7,9 7,6
etc....
donne :
Code : 0.4 0.4 0.4
0.4 0.4 0.4
2.6 2.6 2.5
7.4 7.6 7.2
7.4 7.6 7.2
7.8 8.2 7.8
7.4 7.9 7.6
etc.....
Et pour prendre tous les éléments, il faut s'assurer que nbredemesures soit égal au nombre de colonne * le nombre de lignes.
C++dialement,
Pop70
|
|
mercredi 11 mai 2011 à 16:31:01 |
Re : fichier txt HELP !!!!!!!!

3463
|
ok merci encore !
mais ça m'aligne tout sur une même colonne et je souhaiterai l'afficher comme sur mon doc.txt.
Il me semble que c un truc du style : printf("%f, %f, %f, %f\n",INPUT[i]); non ??

|
|
mercredi 11 mai 2011 à 17:33:33 |
Re : fichier txt HELP !!!!!!!!

pop70
|
Pour afficher comme dans le fichier texte, il suffit de faire une séparation entre chaque élément, et un saut de ligne tous les 4 éléments (nombre de colonnes):
Code C/C++ : #include <iostream>
int main()
{
int nbredemesures = 14;
float *INPUT = new float[nbredemesures];
FILE*ReadInput;
ReadInput=fopen("fichier.txt","r" ) ;
if(ReadInput==0)
{
fprintf(stderr,("Erreur ouverture fichier\n"));
exit(-1);
}
for (int i=0 ; i < nbredemesures; i++)
{
fscanf(ReadInput,"%f", &INPUT[i]);
}
printf("\n\n");
float ligne[4] = { 0};
fclose(ReadInput) ;
for (int i=0 ; (i+4)<nbredemesures ; i+= 4) // On prend ligne par ligne
{
for (int j = i; j < i + 4; j++)
{
printf("\t%f",INPUT[j]); // et on affiche élément par élément
}
printf ("\n");
}
delete[] INPUT;
}
C++dialement,
Pop70
|
|
jeudi 12 mai 2011 à 08:33:07 |
Re : fichier txt HELP !!!!!!!!

3463
|
Merci encore !!!
Une dernière question et après jte laisse tranquille  . Est ce que tu saurais faire des opérations entre des colonnes (que l'utilisateur aura choisit préalablement) ?? Genre Moyenne, ecart-type etc....
Et comment mettre ces résultats dans un autre tableau qu'on pourra exporter sous Excel pour tracer des courbes ?

|
|
jeudi 12 mai 2011 à 21:21:33 |
Re : fichier txt HELP !!!!!!!!

pop70
|
Ralala ... On peut dire que tu as de la chance, j'ai du faire ceci il y a moins de une semaine  .
J'avais fait pas mal de recherches pour exporter vers excel, et ce qui m'a semblé le plus simple c'est d'enregistrer sous forme de fichier xml.
Cela se présente comme ceci :
Code XML : <?xml version="1.0"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<ColonneA>Donnée1</ColonneA>
<ColonneB>Donnée2</ColonneB>
//...
</row>
<row>
<ColonneA>Donnée4</ColonneA>
<ColonneB>Donnée5</ColonneB>
</row>
//...
</Root>
Ce code donne :
Code :
ColonneA ColonneB
Donnée1 Donnée2
Donnée4 Donnée5
//... ...
Le tout s'enregistre au format .xls, et s'ouvre automatiquement avec excel qui va demander 2 trucs à l'ouverture :
au premier il faut répondre : "En tant que liste XML", et au 2ème il faut cliquer sur "Ok" pour que le schéma sur lequel se base excel soit fait automatiquement (je pense que ce
n'est pas la peine de détailler plus, ça n'a pas grand rapport avec le code).
Quant au fameux code : (il est a ajuster pour le mettre dans une fonction au lieu du main)
Code C/C++ : #include <iostream>
#include <fstream> // Pour l'enregitrement j'utilise fstream
void afficheColonne(float [], int); // Fonction pour vérifier le contenu d'une colone
void EnregistrerUneColonne(float[], float[], float[], float[], int); // Un fonction qui enregistre les 4 colonnes
int main()
{
int nbredemesures = 25; // Au pif, ici c'est encore dans le main pour faire un test
float *INPUT = new float[nbredemesures];
int nbElementsColonne = (int)(nbredemesures / 4);
FILE*ReadInput;
ReadInput=fopen("fichier.txt","r" ) ;
if(ReadInput==0)
{
fprintf(stderr,("Erreur ouverture fichier\n"));
exit(-1);
}
for (int i=0 ; i < nbredemesures; i++)
{
fscanf(ReadInput,"%f", &INPUT[i]);
}
printf("\n\n");
float ligne[4] = { 0};
//Les 4 colonnes :
float *colonneA = new float[nbElementsColonne];
float *colonneB = new float[nbElementsColonne];
float *colonneC = new float[nbElementsColonne];
float *colonneD = new float[nbElementsColonne];
// Leurs initialisations
for (int i = 0; i < nbElementsColonne; i++)
{
colonneA[i] = 0;
colonneB[i] = 0;
colonneC[i] = 0;
colonneD[i] = 0;
}
fclose(ReadInput) ;
int index = 0; // Compte le nombre de lignes dans la colonne
for (int i=0 ; (i+4)<nbredemesures ; i+= 4) // On prend ligne par ligne
{
for (int j = i; j < i + 4; j++)
{
printf("\t%f",INPUT[j]); // et on affiche élément par élément
if (j == i)
{
colonneA[index] = INPUT[j]; // Remplis la colonne A à la ligne index, tous les 4 i
}
else if ( j == (i+1))
{
colonneB[index] = INPUT[j]; // Idem pour B mais avec la valeur suivante
}
else if (j == (i+2))
{
colonneC[index] = INPUT[j]; // ...
}
else
{
colonneD[index] = INPUT[j]; //...
}
}
index ++;
printf ("\n");
}
// Affiche le contenu des colonnes pour vérification :
printf ("\nColonne A : \n");
afficheColonne(colonneA, nbElementsColonne);
printf ("\nColonne B : \n");
afficheColonne(colonneB, nbElementsColonne);
printf ("\nColonne C : \n");
afficheColonne(colonneC, nbElementsColonne);
printf ("\nColonne D : \n");
afficheColonne(colonneD, nbElementsColonne);
// Enregistre les colonne avec une fonction (pour pas surcharger le main qui est déjà pas mal grand... :
EnregistrerUneColonne(colonneA, colonneB, colonneC, colonneD, nbElementsColonne);
// Supprime les tableaux du tas :
delete[] colonneA;
delete[] colonneB;
delete[] colonneC;
delete[] colonneD;
delete[] INPUT;
}
// Fonction d'affichage :
void afficheColonne(float colonne[], int nombreElements)
{
for (int i = 0; i < nombreElements; i++)
{
std::cout << colonne[i] << std::endl;
}
}
// Enregistement :
void EnregistrerUneColonne(float colonneA[], float colonneB[], float colonneC[], float colonneD[], int nbreLignes)
{
// ouvre le fichier en écriture, le crée s'il n'existe pas et remplace le fichier existant
std::ofstream fichier; // Ouvre un fichier façon fstream (ça fait pareil que FILE *)
fichier.open("fichierExcel.xls", std::ios::out); // Ouvre le fichier (ou crée) fichierExcel.xls à coté de l'éxecutable, et le vide (par défaut)
if (fichier) // Si y'a pas eu d'erreur au niveau du fichier on continu
{
std::cout << "\n**Enregistrement**\n"; // <- Si ça ne s'affiche dans la console, c'est que le fichier est pas ouvert
// En-tête :
fichier << "<?xml version=\"1.0\"?>\n<Root xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n";
// Remplissage :
for (int i = 0; i < nbreLignes; i++)
{
fichier << "\t<row>\n\t\t<ColonneA>";
fichier << colonneA[i];
fichier << "</ColonneA>\n\t\t";
fichier << "<ColonneB>";
fichier << colonneB[i];
fichier << "</ColonneB>\n\t\t";
fichier << "<ColonneC>";
fichier << colonneC[i];
fichier << "</ColonneC>\n\t\t";
fichier << "<ColonneD>";
fichier << colonneD[i];
fichier << "</ColonneD>\n";
fichier << "\t</row>\n";
}
fichier << "</Root>";// Pour finir le fichier en xml correctement
fichier.close(); // Et fermeture
}
}
Et voila !
Du coté des nom de variables c'est à revoir au départ j'avais pris nbredemesures comme le nombre de chiffres dans le fichier...Mais bon ça ne change rien au calcul, tant que c'est bien ceci qu'on lui donne. J'ai testé avec un fichier "fichier.txt" qui contient :
Code : 1.5 2.3 3.54 4.78
5 6 7 8.8
9.54 10.4 11.4 12.5585
13.1 14 15 16
17 18.65 19.48 20.16
21 22.13 23 24
Et marche très bien, le fichier excel créé ("fichierExcel.xls") a 4 colonnes A,B,C,D qui contiennent les chiffres dans l'ordre, avec les décimales.
Bon ben voila, (enfin je crois  )
C++dialement,
Pop70
|
|
vendredi 13 mai 2011 à 14:48:31 |
Re : fichier txt HELP !!!!!!!!

3463
|
Bon, c'est encore super sympa de ta part, je galère un peu (hé oui ! jsuis une vraie chèvre en programmation !!) mais jpense que ça va le faire. J'ai cependant que des 0 dans les 4 colonnes : je ne retrouve pas mon tableau.
Mais là où je galère vraiment vraiment c'est que je ne sais pas comment faire des calculs entre les différentes colonnes de mon tableau : en .txt
Je voudrai que le programme calcule des pentes entre différentes colonnes que l'utilisateur va choisir en gros : y2-y1/x2-x1 puis y3-y2/x3-x2 etc. Donc faire une sorte de boucle jusq'à ce que ça atteigne nbredemesure.
Ensuite faire la moyenne de toutes ces pentes et stocker ces valeurs dans le fameux tableau qu'on ouvre après avec excel
Et je voudrais savoir commetn on pourrait chercher une valeur dans le tableau : ex combien il ya de zéros ? et ce que ça représente en pourcentage.
J'ai déja fais ça mais jpense que c'est pas bon : car j'essaye qd même de chercher de mon côté...mais bon voilà quoi...qd on débute c chaud !!
Promis c'est la dernière question que je te pose 

|
|
Cette discussion est classée dans : fichier, input, tableau, txt, readinput
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
Lire/Ecrire dans un fichier txt, pb, besoin d'aide [ par 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 do
le contenue d'une TlistBox dans un fichier txt [ par hamidkhelifa ]
hello!!! voila g un petit probleme que je n'arrive pas a comprendre je susi entraint de faire une aplication ou je suis obliger de charger un fichier
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
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
Lecture de la dernière ligne d'un fichier .txt [ par marouenetrab ]
Bonjour, je suis novice dans le domaine de codage "C" sous linux et j'ai besoin d'un code qui me permet de lire uniquement la dernière ligne d'un fich
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|