Multi lancement

Résolu
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 26 nov. 2005 à 18:59
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 27 nov. 2005 à 09:15
Bonjour a tous,



Voila j'ai un petit problème. J'ai dans un fichier txt des chemins vers
différents programmes chacun sur une ligne. J'ai crée un petit
programme qui normalement devrait éxécuter tous les programmes contenut
dans le fichier les uns a la suite des autres. Mais voila, ce charmant
programme ne m'éxécute que le dernier de la liste. J'ai regarder 100
fois mon code, vérifié les path vers les fichiers, rien n'y fait cela
ne marche pas. Voici le code en question :



main(void)

{

FILE *fichier;

char D_cFileName[20];

char
D_cFileEx[100];

printf("Introduisez le nom du fichier a executer :_");

scanf("%s",D_cFileName);





fichier=fopen(D_cFileName,READ);

while(fgets(D_cFileEx,100,fichier)!=0){


nobacks(D_cFileEx);


ShellExecute(NULL,"open",D_cFileEx,0,0,SW_SHOWDEFAULT);

}

fclose(fichier);

}





void nobacks(char *D_ptText){

unsigned short int D_usiSize;



D_usiSize=strlen(D_ptText);

if(D_ptText[D_usiSize-1]=='\n'){

D_ptText[D_usiSize-1]=='\0';

}

}

Merci d'avance.



++ALL

15 réponses

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
27 nov. 2005 à 09:15
Lol merci BruNews, pour le handicapé du pointeur ça fait toujours
plaisir :) . J'ai trouver la faute, cela était bien la fonction nobacks
mais pas dans le sens ou on le croyait. Il fallait juste retirer un
égale à l'instruction dans le if, je vien de cherché la matiné pour
CA!! Mdr dégouté.



Bon code



++ALL
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 nov. 2005 à 19:05
fgets(D_cFileEx,100,fichier)
Une chemin dans ton fichier fait-il exactement 100 caractères?
Tu devrais faire une trace de D_ptText dans la fonction nobacks (un MessageBox par exemple)
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 19:13
le nombre de caractères max sur une ligne est de 36. Donc de ce côté la cava.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 nov. 2005 à 19:34
Oui, je dis n'importe quoi...

Ton problème vient sans doute du '\r' avant le '\n'
Sous Windows, les sauts de lignes sont '\r' suivi de '\n'

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

Posez votre question
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 19:44
j'ai modifier ma procédure nobacks mais cela ne fait rien du tout snif
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 nov. 2005 à 19:46
void nobacks(char *D_ptText)
{
char* p = strchr(D_ptText, '\r');
if(*p) *p = 0;
}

Comme ca?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 nov. 2005 à 19:47
http://www.cppfrance.com/code.aspx?id=25258
Regarde onBttnFile(), n'y a qu'à changer
SendMessage(hlst, LB_ADDSTRING, 0, (long) c);
par ShellExecute()

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 19:47
De plus il fut un temps ou j'avais programmer un pendu et la fonction
nobacks etait la même. et donc si les deux mots (mot reçu d'un fichier
et mot écrit par le joueur) pouvait être comprarer sans problèmes,
c'est que cette fonction marche.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
26 nov. 2005 à 19:54
BruNews, t'es motivé pour mettre à jour toutes tes source, tout ca pour mettre ton site!
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 20:02
Wolaaaa BruNews, c'est quoi tout ça? ça a un rapport avec mon code???
Je rapelle que mon code ici présent est en mode console win32.
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 20:03
vous êtes vraiment sur que cela a avoir avec nobacks??? j'ai jamais eu aucun problème avec moi :s
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 nov. 2005 à 20:05
On s'en fout que soit console ou non, ça ne change rien au fait de parser un fichier.
ShellExecute n'a pas de rapport non plus avec la console et rien n'empêche de l'employer.

vecchio> non pas toute, une douzaine seulement ensuite j'en ai eu ras le bol.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 20:12
Ce n'est pas acause de nobacks. j'ai fait un strchr des deux caractères
a savoir '\n' et '\r' les deux mon retourner 0, et comme il est mis
dans l'aide, si la fonction strchr renvoie 0 c'est que le caractères
n'a pas été trouver. Et donc mm dans mon code aparement ma procédure ne
sert a rien.



BruNews, je sais bien qu'on s'en fout, mais vu le code que tu m'avait
donner j'ai eu une ésitation. De plus hum je comprend pas des masses.
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
26 nov. 2005 à 20:18
Je vien de fair un printf dans ma boucle des différents noms. Et en
faite il m'en affiche trop d'un coup on, dirait qu'il n'éxécute mm pas
le shellexecut pour les chemins avant.Sinon il affiche bien tout mes
chemins, mais il passe l'apelle à la fonction.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 nov. 2005 à 20:19
Tu n'as qu'à recopier la fonction et juste changer une ligne, c'est du prêt à l'emploi.
Ensuite tu demandes explication sur ce qui te chagrine.
C'est un modèle pour parser en ultra rapide au lieu d'employer fgets qui est un truc pour handicapé du pointeur.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Rejoignez-nous