coyotedef
Messages postés13Date d'inscriptionvendredi 4 octobre 2002StatutMembreDernière intervention22 avril 2003
-
18 nov. 2002 à 11:16
haned22
Messages postés3Date d'inscriptionjeudi 18 mars 2004StatutMembreDernière intervention23 mars 2004
-
23 mars 2004 à 13:47
Je lit des données a partir d un fichier texte et je classe les caracteres dans un tableau de caracteres. jusque la rien de bien special.
mais voila, j aimerai traiter les informations contenues dans ce tableau, cad, concatener les caracteres pour en former des chaines (logique), puis extraires les donnees numeriques de ce tableau pour en suite les utiliser dans des calculs.(pffffffffff).
pour concatener 2 caracteres avec strcat il faut que le 2eme parametre soit une constante et mon tableau n est pas un ensemble de constante puisqu il est issue de la lecture du fichier. doit je utiliser une autre fonction de concatenation ou existe t il une fonction de lecture de ficchier qui traite directement les chaines de caracteres, ou bien est ce que je n ai pas vu qqe chose que j aurait du voir.
mon code est en C(dsl pour les adeptes du win32 mis je debute et n ai pas le temps de tous apprendre mais sa viendra, donc pas de commentaire sur ce sujet). Mon code n est peut etre pas parfait mais le but actuel n est pas de faire une source parfaite mais de trouver les fonction relative a mon pb.
merci. (pffffffffffffff c long a lire dsl).
#include <stdio.h>
#include <stdlib.h>
char tab[99999999];
void main(void)
{
//---------------------------------------------------------------------------------------------------------------
FILE *cptlig;
if((cptlig=fopen("text1.txt","r"))!=NULL)
{
while(!feof(cptlig))
{
{
fread(&Buffer, 1,1 ,cptlig);
if(Buffer=='\n')
{
nbligne=nbligne+1;
}
nbc++;
}
}
fclose(cptlig);
//---------------------------------------------------------------------------------------------------------------
printf("Le nombre de lignes du fichier est de : %d.\nLe nombre de caracteres est de : %d.\n",nbligne,nbc);
//---------------------------------------------------------------------------------------------------------------
system("PAUSE");
FILE *file; .
if((file=fopen("text1.txt","r"))!=NULL)
{
while(!feof(file))
{
fread(&tab[i], 1, 1,file);
i++;
}
}
fclose(file);
}
//---------------------------------------------------------------------------------------------------------------
printf("%s", &tab[0]);
printf("\n");
system("PAUSE");
PS: je compile avec visual studio 4( oui je c c tre obsolete mais je n ai ke cette licence). la fonction 'system(PAUSE)', permet un arret du prg et attend une entree clavier.
merci
cs_kjus
Messages postés269Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention 9 juin 2003 19 nov. 2002 à 20:41
fread pour lire dans un fichier c'est très bourrin.
Tu peux utiliser fgetc (par caractère) par exemple :
J'ai pas tout a faire compris ce que tu voulais faire, mais si tu veux mettre ton fichier txt dans un tableau tab :
increment=0;
while (!feof(file)){
tab[increment] = fgetc(file);
increment++;
}
Pour convertir une chaine en nombre, tu as la fonction atoi
***raph***
coyotedef
Messages postés13Date d'inscriptionvendredi 4 octobre 2002StatutMembreDernière intervention22 avril 2003 20 nov. 2002 à 22:52
fopen ne me permet pas de lire des chaine de caractere et de les classedansun tableau (je c les chaine de caractere n existe ps en µC mais c possible).
ce que je veut faire c de lire un fichier texte ligne par ligne et ensuite extraire de ces lignes des donnes numerique. le fichier est construit sur une base qui me permettrait de stocker mes donnees dans une structure mais avant il faut bien ke je les sticke qque part pour pouvoir extraire(hmm c confus tt sa). bref voila. raph merci d avoir prit de ton temps pour me repondre.
cs_kjus
Messages postés269Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention 9 juin 2003 21 nov. 2002 à 22:37
Si tu veux stocker une structure dans un fichier et la récupérer sans te faire chier, tu peux faire ca en c++ :
tu mets tes données dans struct ma_struct.
ensuite :
ofstream fichier("chemin", ios::out );
f.write( reinterpret_cast <const char *> ( &ma_struct), sizeof(ma_struct) ); // on met toutes les données de la struct dans le fichier
fichier.close();
et pour lire :
ifstream f(chemin, ios::in);
f.read( reinterpret_cast <char *> (&ma_struct), sizeof(ma_struct)); //on lit la struct dans le fichier
coyotedef
Messages postés13Date d'inscriptionvendredi 4 octobre 2002StatutMembreDernière intervention22 avril 2003 22 avril 2003 à 14:25
C ok pour la recuperation de donnees en c je mettrait une source dessu si sa interesse kkun. En outre j ai desormais des pb d alloc de mem je verrai sa apres.
Vous n’avez pas trouvé la réponse que vous recherchez ?
haned22
Messages postés3Date d'inscriptionjeudi 18 mars 2004StatutMembreDernière intervention23 mars 2004 23 mars 2004 à 13:47
je vouderais justement vous poser une question dans le meme contexte :
j'ai réuusia lire le contenu d'un fichier ligne par ligne , par contre j'aurrais besoin de lire le contenu de chaque ligne puisque je vais exploiter les données qui sont dedant , comment faire je ne sais pas