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
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
8 réponses
As-tu essayé d'utiliser un fichier commun utilisé par les deux applications? C'est le moyen le plus simple probablement.
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
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
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
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
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.
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.
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
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+
No such file or directory
je dois peut être donner le nom de l'application non?
A+
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
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
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
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
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.
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.
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
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
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
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
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
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