Demande d'aide en C

Fermé
id_rima Messages postés 7 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 4 juin 2010 - 2 juin 2010 à 19:12
id_rima Messages postés 7 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 4 juin 2010 - 4 juin 2010 à 11:30
Bonjour,



Bonjour,

Pouvez vous répondre à une question bien précise svp. voila je code avec du C mais il se trouve que pour mon code j'ai besoin d'une liste qui à été crée dans une autre application. je ne sais pas si il y a un moyen de récupérer cette liste et bien sur tous les champs de chaque élément de cette liste sans faute afin que je puisse l'utiliser.

Merci d'avance

Bonne fin de journée

8 réponses

As-tu essayé d'utiliser un fichier commun utilisé par les deux applications? C'est le moyen le plus simple probablement.
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
3 juin 2010 à 02:36
Ca dépend beaucoup de la manière dont la liste a été codée. Si le travail a été correctement fait :

1) la structure des maillons de liste stocke une adresse générique (void *) sur la donnée stockée dans le maillon et dans ce cas, chaque maillon peut référencer n'importe quelle donnée (un int, une structure ...) simplement en stockant son adresse ;

2) ce code a été mis dans un module (par exemple un couple list.h et list.c).

Auquel cas il suffit de récupérer le .c et le .h et de l'utiliser pour tes besoins. À noter que dans la faq de ccm, il y a un chapitre sur les listes chaînées en C.

En C++, on ne s'embête pas à recoder une liste et on utiliise directement un container générique (par exemple une std::list<T>, en changeant T par un type).

Bonne chance
0
id_rima Messages postés 7 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 4 juin 2010
3 juin 2010 à 10:45
Bonjour,
Je vous remercie pour vos réponses , au fait si je veux récupérer la liste c'est parce que c'est l'unique élément qui m'intéresse dans la deuxième application à la base je devais faire une continuité de l'application mais comme je ne comprends rien au code de la personne qui la faite je préfère récupérer sa liste (liste en C ) et faire ensuite ma propre application à partir des données que j'aurai récupère de l'application externe.

@ gargoyle44: tu peux stp me détailler plus le fait d'utiliser le même fichier je suis débutante et j'ai du mal a comprendre les choses.

@ mamiemando: Je dois coder en C et dans ce cas je voulais savoir si le fait de rajouter .c et le .h de l'application externe pouvait résoudre mon problème surtout après l'explication que je viens de te donner concernant mon code, Aussi je n'ai pas trop compris l'histoire de la structure des maillons peux tu stp me l'expliquer ?


dans tous les cas je vais essayer ca .

Merci infiniment bonne journée.
0
id_rima Messages postés 7 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 4 juin 2010
3 juin 2010 à 11:13
Je viens d'essayer de rajouter à mon code le MainFiche.h et le MainFiche.cpp mais même avec ca j'ai une erreur du genre

No such file or directory

je dois peut être donner le nom de l'application non?

A+
0

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

Posez votre question
id_rima Messages postés 7 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 4 juin 2010
3 juin 2010 à 13:48
Bonjour

J'ai oublié de dire que l'application de mon amie dont je veux récupérer la liste chainée est faite en C en utilisant builder et la mienne est faite en C en utilisant Dev-C
0
gargoyle44 Messages postés 15 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 7 juin 2010 3
3 juin 2010 à 22:13
En fait, si je comprends ton problème, tu as une application A et une application B. À partir de là tu as deux choix.

Solution 1-Joindre ensemble les 2 applications. Application A deviendrait module A et application B, module B. Ensuite, à partir du main, tu calls la fonction de module A qui te retournera la liste et tu call la fonction de module B qui traitera cette liste.

Pour se faire:

Tu joins, dans un même projet, ModuleA.h, ModuleA.c, ModuleB.h, ModuleB.c. Par la suite, dans ModuleA, tu fais une fonction qui retourne la liste et, dans module B, une fonction qui traite cette liste.

Dans le main, tu inclues ModuleA.h et ModuleB.h. Tu call ensuite la méthode du module B qui traite la liste en mettant en paramètre la fonction qui retourne la liste dans moduleA. En gros ton main ressemble à ça:

#include "moduleA.h"
#include "moduleB.h"

void main()
{

TraiterListe(getListe);

}

Solution 2-Si tu veux absolument garder 2 applications distinctes, il te faudra quelque chose pour "lier" ces deux applications. Le moyen le plus facile est d'utiliser un fichier commun.

En gros, ProgrammeA (qui possède la liste), ouvre un fichier et écris la liste dans celui-ci. Tu peux utiliser un caractère de séparation pour distinguer chaque élément de ta liste. Par exemple ProgrammeA pourrait écrire dans le fichier liste.txt:

George
14
Alma
#
Henri
15
Roberval
#
etc

Ensuite, programmeB ouvre ce fichier et reconstitue la liste à partir de ce qu'il trouve dans le fichier. Ensuite, tu peux traiter la liste. Je te conseil la première méthode toutefois. Elle est beaucoup plus simple.
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
4 juin 2010 à 10:33
@ mamiemando: Je dois coder en C et dans ce cas je voulais savoir si le fait de rajouter .c et le .h de l'application externe pouvait résoudre mon problème surtout après l'explication que je viens de te donner concernant mon code, Aussi je n'ai pas trop compris l'histoire de la structure des maillons peux tu stp me l'expliquer ?

Il faudrait que tu commences par lire ceci :
https://www.commentcamarche.net/contents/114-langage-c-les-listes-chainees

J'ai oublié de dire que l'application de mon amie dont je veux récupérer la liste chainée est faite en C en utilisant builder et la mienne est faite en C en utilisant Dev-C

Ça n'a aucun impact, tu pourrais tout faire au bloc notes, les fichiers .c et .h ne sont que des fichiers texte. Il sont ensuite moulinés par un compilateur (par exemple gcc ou g++, utilisé par dev-cpp) en vue de produire des fichiers binaires (.o, exécutable, librairie...) qui eux dépendent du compilateur (gcc, visual studio...) et de la plateforme (windows, linux...).

Bonne chance
0
id_rima Messages postés 7 Date d'inscription mercredi 2 juin 2010 Statut Membre Dernière intervention 4 juin 2010
4 juin 2010 à 11:30
Bonjour,


Je vous remercie tous pour votre aide je vais commencer par combiner les deux applications en une seule et si je vois que ca ne marche pas je vais vers une autre solution (fichier commun) en espérant tout de même que je n'aurai pas à le faire :)


Et surtout merci pour votre patience je sais que ce n'est pas facile d'essayer de faire comprendre à quelqu'un qui débute.

Bonne journée
0