Merci à tous, je test et je vous tiens au courant ;-)
-------------------------------
Réponse au message :
-------------------------------
> J'ai déja eu l'occasion (sauf que la source est introuvable dans mon fouilli) d'utiliser system() et comme l'a dit Kaid, utilise un tableau contenant le nom de l'exe,et le paramètre.
> Un exemple avec Bloc note :
>
> char ordre[25];
> strcpy(ordre,"Notepad");
> strcat(ordre," readme.txt");//attention a ne pas oublier l'espace de readme.txt
> system(ordre);
>
> et ça marche du tonner. Il te reste à adapter pour les arguments de ton tableau mais je te fais confiance...
> a+
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'ai oublié le delete du tableau
tabParamExecv.
> >
> > Kaid -
kaid.fr.st> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Il faut tester mais ce que tu veux faire devrait marcher. Mais si tu veux passer tous les éléments du vecteur comme paramètres à ton programme tu ne peux pas faire comme ca. Utilise une string dans laquelle tu mets le nom du programme puis tous les paramètres provenants du vecteur (sans oublier les espaces pour les séparer).
> > >
> > > Sinon il est peut-être plus rapide d'utiliser
execv().
> > >
> > >
> > > > > > // Ton tableau de paramètres > > > std::vector<std::string> tabParam; > > > > > > // Le tableau que l'on va passer à execv > > > const char** tabParamExecv=new char* [(tabParam.size() + 1) * sizeof(const char*)]; > > > > > > // Recopie des valeurs > > > int i=0; > > > for(std::vector<std::string>::iterator it=tabParam.begin();it!=tabParam.end();it++) > > > tabParamExecv[i++]=(*it).c_str(); > > > > > > // Ajout du NULL qui détermine la fin du tableau > > > tabParamExecv[i]=NULL; > > > > > > // Appel de execv > > > execv(STR_CMDNAME, tabParamExecv); > > > > > > |
> > >
> > > Code non testé donc pas forcément juste.
> > >
> > > Kaid -
kaid.fr.st> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > j' ai deja vu ces commandes mais comment je peux lui passer les arguments necessaire qui d'ailleurs se trouve dans un vector
> > > > est ce que je peux faire qqch du type:
> > > > for (int i=0; i<vec.size();i++)
> > > > system("nompg vec[i]");
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > En Win32, il y a
CreateProcess() mais pour une compatibilité Unix/Win regarde du côté de
system() ou
exec().
> > > > >
> > > > > Kaid -
kaid.fr.st> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Salut je voudrai lancer un exe dans mon pg et cet exe doit recevoir des parametres quelqu'un sait comment je peux faire ??
> > > > > > je precise un peu:
> > > > > > il s'agit de transformer des fichiers textes cree sous windows pour que mon exec qui tourne sous unix puisse les traiter (en fait c'est pour les rendre compatible) le nom du pg que j'utilise pour faire cela est fromdos et il doit recevoir en parametre le fichier a transformer puis mon programme fait le traitement
> > > > > > de plus je dois pouvoir le faire plusieurs fois car je traite plusieurs fichiers et donc avant de faire quoi que ce soit je dois etre sur que mes fichiers seront lisible correctement (notament avec un marqueur de fin de ligne qui sera reconnu)
> > > > >
> > > >
> > >
> >
>