C++
Fermé
Yvan64320
Messages postés
33
Date d'inscription
jeudi 28 juillet 2011
Statut
Membre
Dernière intervention
25 août 2011
-
5 août 2011 à 10:56
Yvan64320 Messages postés 33 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 25 août 2011 - 5 août 2011 à 16:15
Yvan64320 Messages postés 33 Date d'inscription jeudi 28 juillet 2011 Statut Membre Dernière intervention 25 août 2011 - 5 août 2011 à 16:15
4 réponses
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
5 août 2011 à 11:56
5 août 2011 à 11:56
Salut.
Je n'ai rien compris !
Je ne suis pas sur de ce que tu cherches à faire.
Tu as un fichier test.txt avec plusieurs lignes à exécuter. ça OK.
Après, tu parle de nouveau fichier, de mise à jour etc. Et là je suis perdu. C'est comme tes histoires de lignes 1 et 2.
Si ton but est de vérifier que dans test.txt il n'y a pas de doublon (deux fois le même exécutable) C'est faisable de manière assez simple. Sinon, essai d'être plus clair.
Je n'ai rien compris !
Je ne suis pas sur de ce que tu cherches à faire.
Tu as un fichier test.txt avec plusieurs lignes à exécuter. ça OK.
Après, tu parle de nouveau fichier, de mise à jour etc. Et là je suis perdu. C'est comme tes histoires de lignes 1 et 2.
Si ton but est de vérifier que dans test.txt il n'y a pas de doublon (deux fois le même exécutable) C'est faisable de manière assez simple. Sinon, essai d'être plus clair.
Yvan64320
Messages postés
33
Date d'inscription
jeudi 28 juillet 2011
Statut
Membre
Dernière intervention
25 août 2011
5 août 2011 à 12:05
5 août 2011 à 12:05
Alors je vais essayer d'être plus clair.
Donc ce que je veux faire exactement:
J'ai un fichier texte avec plusieurs lignes, mon programme doit récupérer que la première ligne dans une première variable (ligne1) et l'exécuter.
Ensuite je souhaiterais rajouter une condition, dans cette condition on récupère toujours la première ligne en variable (ligne2) et on compare si la première ligne du fichier texte est toujours la même(ligne1==ligne2), si c'est la même on continu à exécuter ce fichier, si elle a changée on stop l'exécution du fichier et on lance le nouveau fichier.
Je sais pas si c'est assez clair.. je l'espère.
Merci déjà de ta première réponse.
Donc ce que je veux faire exactement:
J'ai un fichier texte avec plusieurs lignes, mon programme doit récupérer que la première ligne dans une première variable (ligne1) et l'exécuter.
Ensuite je souhaiterais rajouter une condition, dans cette condition on récupère toujours la première ligne en variable (ligne2) et on compare si la première ligne du fichier texte est toujours la même(ligne1==ligne2), si c'est la même on continu à exécuter ce fichier, si elle a changée on stop l'exécution du fichier et on lance le nouveau fichier.
Je sais pas si c'est assez clair.. je l'espère.
Merci déjà de ta première réponse.
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
5 août 2011 à 13:58
5 août 2011 à 13:58
oui, c'est plus clair. Première chose, il faut fermer ton fichier entre les deux utilisations. Qu'est-ce qui va modifier le fichier test.txt ?
Comment comptes tu arrêter le premier programmes ?
System est une fonction standard, pas besoin de mettre #ifdef win32 devant.
Si tu veux faire du contrôle d'exécution, je te conseil plutôt d'utiliser les fonctions exec.
Tel que ton programme est fait, il va ouvrir le fichier, lancer le programme vérifier la modification ou non, et ne plus rien faire. à moins que ce soit le programme lancé qui modifie le fichier (et encore, ce n'est pas sur qu'il ait le temps) je ne pense pas que la différence ne soit jamais active.
Comment comptes tu arrêter le premier programmes ?
System est une fonction standard, pas besoin de mettre #ifdef win32 devant.
Si tu veux faire du contrôle d'exécution, je te conseil plutôt d'utiliser les fonctions exec.
Tel que ton programme est fait, il va ouvrir le fichier, lancer le programme vérifier la modification ou non, et ne plus rien faire. à moins que ce soit le programme lancé qui modifie le fichier (et encore, ce n'est pas sur qu'il ait le temps) je ne pense pas que la différence ne soit jamais active.
Yvan64320
Messages postés
33
Date d'inscription
jeudi 28 juillet 2011
Statut
Membre
Dernière intervention
25 août 2011
5 août 2011 à 14:13
5 août 2011 à 14:13
Le fichier test.txt est modifié à la main si quelqu'un souhaite rajouter un fichier avec son chemin d'accès.
que veux tu dire par: comment comptes tu arrêter ton premier programme ?(system("Pause")) .??
Merci pour ces conseils.
que veux tu dire par: comment comptes tu arrêter ton premier programme ?(system("Pause")) .??
Merci pour ces conseils.
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
Modifié par Char Snipeur le 5/08/2011 à 15:34
Modifié par Char Snipeur le 5/08/2011 à 15:34
je parle du programme que tu lances avec system. Ou alors, je n'ai pas compris ce que tu veux dire par "on continue à exécuter le fichier".
Si tu le modifie à la main, il faut peut être mettre un temps d'attente suffisamment long entre les deux ouvertures de fichier. à moins que tu compte vérifier toutes les millisecondes qu'il n'a pas changer ? Après, sous windows, je crois que l'ouverture d'un fichier par un programme bloque sa modification par les autres.
Si tu le modifie à la main, il faut peut être mettre un temps d'attente suffisamment long entre les deux ouvertures de fichier. à moins que tu compte vérifier toutes les millisecondes qu'il n'a pas changer ? Après, sous windows, je crois que l'ouverture d'un fichier par un programme bloque sa modification par les autres.
Yvan64320
Messages postés
33
Date d'inscription
jeudi 28 juillet 2011
Statut
Membre
Dernière intervention
25 août 2011
5 août 2011 à 15:41
5 août 2011 à 15:41
Ok enfaite il faudrait vérifier toute les 5 minutes le fichier, mais il faudrait d'abord que je réussisse à faire un code correcte avant de m'attaquer à un timer ou quelque chose du genre.
d'accord pour le renseignement je vais vérifier si windows bloque ou pas la modification.
J'ai franchement du mal je suis désolé, j'ai la logique en langage algorithmique, mais pour le traduire en C++ c'est tout autre chose.
d'accord pour le renseignement je vais vérifier si windows bloque ou pas la modification.
J'ai franchement du mal je suis désolé, j'ai la logique en langage algorithmique, mais pour le traduire en C++ c'est tout autre chose.
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
5 août 2011 à 15:59
5 août 2011 à 15:59
si tu as du mal à passer de l'algo au C++, c'est que tu n'as pas été assez loin dans les tâches simple de ton algorithme.
En reprenant ce que tu as fait :
Je ferme le fichier, mais sinon, si tu veux "relire" du début il faut tout de même le "rembobiner" avec un seekg(0,ios::beg);
En reprenant ce que tu as fait :
#include <iostream> #include <fstream> #include <string> #include <cstdlib> using namespace std; int main() { ifstream fichier("D:\\test.txt"); string ligne1; //Une variable pour stocker les lignes lues if(fichier) { //L'ouverture s'est bien passée. On peut donc lire while(getline(fichier, ligne1)); { system(ligne1.c_str()); // execute le contenu de la variable ligne. } fichier.close(); } else { cout << "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl; return 1; } system("pause"); string ligne2=ligne1; while(ligne1==ligne2) { fichier.open("d:\\test.txt"); getline(fichier,ligne2); system(ligne1.c_str()); // execute le contenu de la variable ligne. fichier.close(); } if(ligne1!=ligne2) { system(ligne2.c_str()); // execute le contenu de la variable ligne. } } system("PAUSE");//mettre l'affichage de la console en pause pour pas qu'elle se referme automatiquement. return 0; }
Je ferme le fichier, mais sinon, si tu veux "relire" du début il faut tout de même le "rembobiner" avec un seekg(0,ios::beg);
Yvan64320
Messages postés
33
Date d'inscription
jeudi 28 juillet 2011
Statut
Membre
Dernière intervention
25 août 2011
5 août 2011 à 16:15
5 août 2011 à 16:15
Ok, je suis entrain d'étudier ton code, j'ai quelques erreurs qui apparaissent j'essaye de régler cela.
Merci encore pour ton aide.
Merci encore pour ton aide.