Traitement de tableau de caracteres.

coyotedef Messages postés 13 Date d'inscription vendredi 4 octobre 2002 Statut Membre Dernière intervention 22 avril 2003 - 18 nov. 2002 à 11:16
haned22 Messages postés 3 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 23 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

5 réponses

cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Derniè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***
0
coyotedef Messages postés 13 Date d'inscription vendredi 4 octobre 2002 Statut Membre Dernière intervention 22 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.
0
cs_kjus Messages postés 269 Date d'inscription mercredi 24 avril 2002 Statut Membre Derniè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

...
0
coyotedef Messages postés 13 Date d'inscription vendredi 4 octobre 2002 Statut Membre Dernière intervention 22 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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
haned22 Messages postés 3 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 23 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
0
Rejoignez-nous