Accueil > Forum > > > > Lecture Fichier TXT
Lecture Fichier TXT
samedi 8 décembre 2007 à 17:25:01 |
Lecture Fichier TXT

DroledeBx
|
Bonjour, j'ai un problème de récupération des données à partir d'un fichier texte. Chaque ligne de mon fichier txt est sous la forme: "un_entier un_double un_double" avec un espace entre chaque nombre. J'ai déclaré une classe, permettant pour chaque ligne le stockage de ces nombres. class Item{ int identif; /* qui devra stocker l'entier */ double profit; /* qui devra stocker le premier double */; double poids; /* qui devra stocker le deuxième double */; }; J'ai réussi, avec getline notamment, à récupérer la ligne entière sous forme de string. Par contre, impossible de récupérer chaque nombre indépendament comme je le voudrais. Quelqu'un a-t-il une idée ? Merci d'avance. DroledeBx
|
|
samedi 8 décembre 2007 à 18:20:47 |
Re : Lecture Fichier TXT

julienbj
|
Pour faire très simple: fscanf(file, "%d %f %f", &entier, &float1, &float2); --Vive le CDéveloppeur hard/soft chez AGILiCOM Savon
|
|
samedi 8 décembre 2007 à 18:33:53 |
Re : Lecture Fichier TXT

DroledeBx
|
Ok, super ! merci pour l'idée, j'essaie tout de suite !
DroledeBx
|
|
samedi 8 décembre 2007 à 18:49:50 |
Re : Lecture Fichier TXT

Neo_Fr
|
Ecrit et lit tes structures en brut et t'auras plus de pbs..
Ex:
#include
#include
typedef struct _item
{
int indentif;
double profit;
double poids;
}ITEM, *LPITEM;
int main(void)
{
const char File[] = "C:\\Test.txt\0";
HANDLE hFile;
DWORD br, bw;
ITEM itm;
ZeroMemory(&itm, sizeof(ITEM));
itm.indentif = 10100;
itm.profit = 102.4;
itm.poids = 70.42;
hFile = CreateFile(File, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);
if(hFile == INVALID_HANDLE_VALUE) goto Err;
if(!WriteFile(hFile, &itm.indentif, sizeof(int), &bw, 0)) goto Err;
if(!WriteFile(hFile, &itm.profit, sizeof(double), &bw, 0)) goto Err;
if(!WriteFile(hFile, &itm.poids, sizeof(double), &bw, 0)) goto Err;
CloseHandle(hFile);
ZeroMemory(&itm, sizeof(ITEM));
hFile = CreateFile(File, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
if(hFile == INVALID_HANDLE_VALUE) goto Err;
if(!ReadFile(hFile, &itm.indentif, sizeof(int), &br, 0)) goto Err;
if(!ReadFile(hFile, &itm.profit, sizeof(double), &br, 0)) goto Err;
if(!ReadFile(hFile, &itm.poids, sizeof(double), &br, 0)) goto Err;
printf("\nindentif = %i", itm.indentif);
printf("\nprofit = %g", itm.profit);
printf("\npoids = %g\n", itm.poids);
Err:
if(hFile) CloseHandle(hFile);
system("PAUSE");
return 0;
}
Neo_Fr
|
|
samedi 8 décembre 2007 à 19:05:45 |
Re : Lecture Fichier TXT

SAKingdom
|
Neo >> Il s'agit peut-être de nombres entrées à même le fichier (par un éditeur de texte bien sûr). Ensuite, ton code n'est franchement pas très propre. Même si j'aime bien utiliser les goto là où la situation le permet, ton code en abuse un peu trop. Puis: "C:\\Test.txt\0" Pourquoi mettre '\0' ? Le 0 de fin de chaine est ajouté automatiquement par le compilo. Les 2 ZeroMemory(&itm, sizeof(ITEM)) Inutiles puisque les structures sont remplient immédiatement après et en cas d'erreur, le résultat n'est pas affiché. C++ (@++)
|
|
samedi 8 décembre 2007 à 19:16:11 |
Re : Lecture Fichier TXT

Neo_Fr
|
Je vois pas ou j'abuse des goto, je les utilise seulement pour la gestion des erreurs, c'est + rapide a taper et ca surchage pas le code avec des CloseHandle et des return partout..
Neo_Fr
|
|
samedi 8 décembre 2007 à 19:45:23 |
Re : Lecture Fichier TXT

SAKingdom
|
typedef struct { int indentif; double profit; double poids; } ITEM; int main(void) { const char File[] = "d:\\Test.txt"; HANDLE hFile; DWORD dwDummy; ITEM itm; itm.indentif = 10100; itm.profit = 102.4; itm.poids = 70.42; hFile = CreateFile(File, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0); if(hFile == INVALID_HANDLE_VALUE) goto Error; if(WriteFile(hFile, &itm.indentif, sizeof(int), &dwDummy, 0) && WriteFile(hFile, &itm.profit, sizeof(double), &dwDummy, 0) && WriteFile(hFile, &itm.poids, sizeof(double), &dwDummy, 0)) { CloseHandle(hFile); hFile = CreateFile(File, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); if(hFile == INVALID_HANDLE_VALUE) goto Error; if(ReadFile(hFile, &itm.indentif, sizeof(int), &dwDummy, 0) && ReadFile(hFile, &itm.profit, sizeof(double), &dwDummy, 0) && ReadFile(hFile, &itm.poids, sizeof(double), &dwDummy, 0)) { printf("\nindentif = %i", itm.indentif); printf("\nprofit = %g", itm.profit); printf("\npoids = %g\n", itm.poids); } } CloseHandle(hFile); Error: system("PAUSE"); return 0; } C++ (@++)
|
|
Cette discussion est classée dans : fichier, ligne, txt, double, stocker
Répondre à ce message
Sujets en rapport avec ce message
saut de ligne dans un fichier .txt [ par semenzato ]
bonjour ,je voudrais savoir comment faire un saut de ligne dans un fichier texte car mon instruction \n n'est pas comprise et il en resulte un carré n
lire un fichier txt ligne par ligne [ par lapinrose67 ]
Bonsoir,Je developpe un logiciel en C sous Linux, voila mon problème:Je dois lire un fichier texte ligne par ligne et placer chacune d'entre ellesdans
Ajouter un CString a chaque ligne fichier TXT [ par kilory ]
Salut,j'est un fichier txt que j'ouvre avec la commande fopen et je vourais ajouter a chaque debut de ligne du texte un slach . merci.
Ouvrir un fichier txt et stocker son contenu [ par Jarod1980 ]
Bonjour tout le monde,Voilà je voudrais faire un programme qui permet d'ouvrir un fichier texte et de stocker son contenu dans une variable de type ta
passage à la ligne dans un fichier.txt aprés chaque mot [ par romydamour ]
salut à tous, j'ai un souci avec le passage à la ligne dans un fichier texte, j'ai su transférer le contenu de plusieurs fichiers dans un seul et même
Lire une ligne d'un fichier txt [ par Arnauti ]
Bonjour, je suis débutant en C. J'aimerais bien savoir s'il est possible de lire dans un fichier *.txt une ligne au choix. Si oui, comment est-ce poss
Comment récuperer ligne par ligne dans un fichier.txt [ par arsenecouette ]
Bonjour à tous,Voila mon second prb de la semaine et je fais donc appel une nouvelle fois à vos connaissances.Dans un fichier.txt, je sauvegarde un ma
ecriture saut de ligne dans un fichier [ par mogwai93 ]
j'essaie d'ecrire un saut de ligne dans un fichier sauf qu'il ne m'ecrit que 0A au lieu de 0D 0A comment corriger ? merci hFile = CreateFile(Mon_
supprimer une ligne contenu dans un fichier txt [ par cobra176 ]
bonjour a tousje recherche un code permettant de retirer une ligne contenu dans un fichierj'ai vu qu'il existé déja des codes permettant cela mais j'a
manipulation d'un fichier [ par Stiko ]
slt; c'est une programme pour ouvrire un fichier 'toto.txt', la premiere partie est pour afficher le cntenu de fichier dans la cosole et la deuxiéme
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante 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
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
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
|