Construir une liste à partir d'1 fichier en C

Fermé
Mélanie - 23 mai 2002 à 18:22
gg2000 Messages postés 16 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 5 juillet 2002 - 6 juin 2002 à 13:50
Salut à tous,
J'aurai voulu savoir si quelqu'un pourrait m'expliquer ou m'orienter vers un site concernant la construction d'une liste à partir d'un fichier (en C).
En fait, j'ai des éléments tous écrits tel quels dans un fichier et je voudrais les récupérer dans une liste, comment faire svp??
A voir également:

4 réponses

marty25 Messages postés 56 Date d'inscription mercredi 1 août 2001 Statut Membre Dernière intervention 18 octobre 2002
23 mai 2002 à 23:27
Salut Mel,

heu je pense que dans ton fichier les elements sont séparés par qqchose (: ; , ou espace..). Dans ce cas je crois bien kil existe en c un fonction de "split" par rapport a un caractere de séparation. Il te suffit donc d'ouvrir ton fichier en lecture et de le passer a la moulinette de ta fonction jusqu'a la fin de ton fichier.

Voili
Marty(...)
0
Pour la fonction de "split", c'est strtok(char *chaine,char *cr=aractèreSéparation). le premier argument est la chaîne à traiter, le deuxième (est / sont) (le /les) caractère(s) de séparation. tu appèle la première fois la fonction et ensuite lors des appel suivant, tu mets NULL pour le premier argument. La fonction renvoie un pointeur vers la chaîne coupé.
exemple : chaine = "a coucou"
strtok(chaine," ") --> renvoie "a\0"
strtok(NULL," ") --> renvoie "coucou\0"
strtok(NULL," ") --> renvoie NULL car fin de chaîne.
0
faut il que t utilise les pointeurs?
Comment est fait ton fichier?

tu pe faire une struct cellule et la liste sera un nombre variable de struct cellule...

vinnssou
0
Merci pour vos réponses
En fait, dans le fichier de départ, on a, à chaque ligne, un caractère un espace puis une suite de caractères(qui va servir à remplacer le caractère avant l'espace, en gros on veut faire de l'encodage) et on veut construire une liste avec pour chaque cellule de la liste le caractère et la suite de caractèresa associée à celui-ci
@+
Mél
0
David48 > Mélanie
24 mai 2002 à 20:31
Salut Mél,je pense que tu peux trouver sur le net des fichiers de gestion de liste en C déjà finis, je te conseille de chercher ça, après tu fais une struct avec d'un côté ton car et de l'autre la conversion et c bon
Bonne chance ma jolie(pour 1 foi qu'y a une fille par ici)
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
25 mai 2002 à 23:22
qu'est c qui t'empeche d'utiliser la classe CList des mfc ??? bien faits et sans blemes, je trouve, en tout cas pour ce q j'ai fait avec(inserer, lire, supprimer) et je pense q c'est tout ce q l'on p fait avec une liste. tu p declarer comme ceci :

CList <char*,char*> Maliste;
Tu lis ton fichier et chaque caractere ou chaine lu, tu l'inseres ds tes listes.

tafiscobar
0
gg2000 Messages postés 16 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 5 juillet 2002
6 juin 2002 à 13:50
laisse tomber la class clist elle ne fonctionne que pour les mfc.
Tu peux utiliser des tda de type liste que tu pourra trouver soit sur internet soit dans les fichiers .h de ton compilateur.
Les TDA remplace les classes dans le c++. Une fois récuperée tes données grâce aux tda tu pourra créer une liste puis tu peux inserer des éléments. Ou tu peux créer ton propre TDA. Tu trouvera surement des informations en cherchant tda sur le net car l'exemple des listes est souvent le premier tda que nous réalisons
0