begin process at 2012 05 30 10:14:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Traitement de Fichiers textes en C/C++


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

Traitement de Fichiers textes en C/C++

dimanche 7 février 2010 à 18:28:56 | Traitement de Fichiers textes en C/C++

devc26

Bonjour,

Je dois réaliser une "moulinette" en C/C++ permettant de modifier l'affichage de résultats en format texte ( contexte: Visual Studio 2003).Ces fichiers se presentent sous la forme suivante:
Continuite_In
-------------
0 2 Continuite_in1 DGIN_31 -0.001mA -344.969mV -442.224mV -199.939mV
Pass
0 3 Continuite_in1 DGIN_30 -0.001mA -694.289mV -438.907mV -199.939mV Pass
0 56 Continuite_in_AN_00 AN_00_V 500.0mV 450.0uA 500.5uA 550.0uA Pass
0 57 Continuite_in_AN_01 AN_01_V 500.0mV 450.0uA 501.4uA 550.0uA Pass
Continuite_Out
--------------
0 76 Continuite_out1 DGO_31 -0.001mA -694.135mV -412.598mV -199.939mV Pass
0 77 Continuite_out1 DGO_30 -0.001mA -765.246mV -410.677mV -199.939mV Pass

Aprés traitement, ce fichier doit avoir la forme suivante:
Continuite_in1 DGIN_31 442.224mV True
Continuite_in1 DGIN_30 -438.907mV True
Continuite_in_AN_00 AN_00_V 500.5uA True


Mon problème réside dans l'utilisation de la bibliothèque "String", notamment des fonctions Get/Getline/replace afin de sélectionner les lignes et les colonnes voulues ( à savoir les colonnes 3/4/7 et 9)et de mofifier les Pass en True et les Fail en False. Voici mon code de lecture/ecriture ( création dans un nouveau fichier)

#include<iostream>
#include<string>
#include <fstream>
using namespace std;

int main () {

char * buffer;
long size;

ifstream inputfile ("textfile.txt",ifstream::binary);
ofstream outputfile ("new.txt",ofstream::binary);

inputfile.seekg(0,ifstream::end);
size=infile.tellg();
infile.seekg(0);
buffer = new char [size];

inputfile.read (buffer,size);
outputfile.write (buffer,size);

delete[] buffer;
outfile.close();
infile.close();
return 0;

}

Je ne sais pas comment intégrer ces fonctions dans ce contexte (sans doute que mon approche n'est pas bonne).Est-ce que quelqu'un pourrait m'aider?

Merci, par avance.
vendredi 12 février 2010 à 10:31:24 | Re : Traitement de Fichiers textes en C/C++

dragonjoker59

pourquoi n'utilises tu pas la fonction getline de inputfile ?
Ensuite tu peux écrire une fonction split qui découpe tes lignes en se servant du caractère ' ' comme séparateur, et enfin tu recrées une ligne qui correspond à celle que tu voudrais à partir des mots récupérés. Ca ne devrait pas être trop dur ^^
vendredi 12 février 2010 à 15:52:37 | Re : Traitement de Fichiers textes en C/C++

uaip

Salut,

Je suis du même avis (boucler sur chaque ligne, l'analyser, et en retourner la ligne à mettre dans le nouveau fichier).
Une précision cependant, dans ton programme tu n'utilises pas String comme tu l'as ennoncé, mais string (STL).


Cordialement, uaip.
vendredi 12 février 2010 à 21:55:14 | Re : Traitement de Fichiers textes en C/C++

devc26

Salut,

oui tu as raison, en fait je voulais utiliser la librairie string pour le getline ; du coup avec la fonction split je n'aurai pas besoin d'utiliser STL Algo, n'est-ce pas?

Merci,
lundi 15 février 2010 à 10:07:57 | Re : Traitement de Fichiers textes en C/C++

dragonjoker59

Je sais pas, peut etre meme que STL Algo a déjà une fonction split de faite, si c'est le cas, utilise celle là ^^
lundi 15 février 2010 à 13:57:06 | Re : Traitement de Fichiers textes en C/C++

uaip

Je crois qu'avec le scanf du C, si tu mets le masque %s, tu ne récupères qu'un mot, ou au pire, une minuscule boucle qui boucle sur la chaine jusqu'aux espaces et place les mots dans un tableau, c'est sans doute plus simple et rapide, non ?


Cordialement, uaip.


Cette discussion est classée dans : buffer, pass, size, an, continuite


Répondre à ce message

Sujets en rapport avec ce message

pb socket [ par fcbouan ] bonjour,mon prog dialogue via socket avec un serveur ftp. J envoie mes commande et recois la reponse serveur de facon synchrone dans un buffer, mais d Mettre un fichier .exe dans un buffer [ par guiguikun ] Je n'arrive pas a mettre un fichier executable en memoire.sur les 100Ko du fichier, mon buffer ne compte que les 3 premiers octets (caracteres)voici m Help fread [ par talaron ] J'ai un fichier texte avec des chaines de characteres disposés comme ceci:chaine1chaine2chaine3etc...elles sont toutes de la meme longeur (5) et j'uti fichier compresser [ par mitali ] Bonjour tt l monde,j'ai une fonction qui me premet de récuperer  le contenu d'un fichier ,ça bien marcher avec les fichiers textes mais le probléme c' probleme avec une boucle do while [ par miki42 ] Bonjour a tous,voila je realise un logiciel de brute force ftp ceci etant pour améliorer mon niveau en programation,bref j'ai un probleme sur ma boucl Formater string C/C++ avec caractères spéciaux sous Linux [ par zaraki21 ] Bonjour, Je développe actuellement une application C/C++ sous Linux destinée a un périphérique électronique embarqué. Je dois dans l'implémentation é Manipuler des caracteres un par un avec la fonction read... [ par ROW_PyRo ] Bonjour, Je suis actuellement sur un projet, BSQ. [quote] Il s'agit de trouver le plus grand carré possible sur un plateau en évitant des obstacles. comment passer un buffer en binaire avec avec readfile [ par youpiyoyo ] bon j'ai besoin ke mon buffer lu par readfile soit en binaire et unicodedonc j'ai essayé caif (ReadFile(hFile, lpBuffer, dwFileSize, &dwBytesRead, NUL Problème copie de fichier.... [ par Clonk ] Bonjour,Je voudrais copier un fichier texte dans mon appli, j'ai fais la fonction suivante://Copie d'un fichier (création du backup)int copier(char * mieux d’une chaîne ? [ par JCpp ] Bonjour,Je voudrai récupérer le mieux d'une chaîne de caractère dans un Buffer.Par exemple, ci il y a dans le buffer Bonjour, je voudraiJe voudrais nj


Nos sponsors


Sondage...

Comparez les prix

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

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