IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

C++ Fermer l'execution d'un fichier.


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut C++ Fermer l'execution d'un fichier.
    Bonjour,
    Je suis nouveau sur ce site, et par la même occasion gros débutant en programmation.
    J'ai essayé de faire (avec l'aide de forum/tuto) un petit programme en C++ je vous explique:
    Le programme a pour but de récupérer dans un fichier txt le chemin d'accès d'un fichier et de l'exécuter.
    Il vérifie ensuite toute les 10 secondes si le fichier n'a pas changé et si il a changé il exécute le nouveau chemin d'accès du fichier.
    Tout cela fonctionne, mais mon soucis c'est que je souhaite que lorsque le chemin d'accès dans mon fichier txt a changé il ferme le précèdent fichier et exécute le nouveau, pour le moment il exécute le nouveau mais garde le précédent ouvert.

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     #include <shellapi.h> 
    #include <iostream>
    #include <fstream>
    #include <string>
    #include "windows.h"
     
    using namespace std;
     
    string enTete(const string &nomFichier)
    {
    	ifstream fichier("D:\\test.txt");
    	string ligne;
     
    	if (fichier.is_open())
    	{
    		getline(fichier, ligne);		
    		fichier.close();
    		cout << ligne.c_str() << endl;
    	}
    	else
    	{
    		cerr << "Impossible d'ouvrir le fichier en lecture : " << nomFichier.c_str() << endl;
     
    	}
     
    	return ligne;
    }
     
     
    int main()
    {
    	string ligne1, ligne2;
     
    	while(true)
    	{
            ligne1=enTete("D:\\test.txt");
    		if(ligne2.compare(ligne1)!=0)
    		{
     
    			system(ligne1.c_str());
    			ligne2=ligne1;
     
     
     
     
    		}
     
            	Sleep(10000);
     
    	}
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    La commande system() ne retourne aucune information sur le process lancé.
    A ta place j’essaierais plutôt de le faire avec la fonction createProcess pour exécuter la ligne contenue dans ton fichier test.txt.
    Lorsque ton fichier a été modifié, tu utilises terminateProcess pour stopper le process en cours avant de relancer createProcess avec la nouvelle ligne de commande.

    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut re
    Bonjour, merci de ta réponse c'est ce qu'il me faut, je suis entrain de voir du côté de create et treminate process, mais j'ai un peu de mal à comprendre comment je peux intégrer tout ça à mon code!
    Comment avec createprocess je peux exécuté la ligne contenu dans un fichier texte ? je croyais que createprocess ne pouvait qu'exécuter des fichiers .exe avec leur programme par défaut.
    (Je suis débutant donc je galère un peu désolé).

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 12
    Points : 21
    Points
    21
    Par défaut
    Salut,

    Je soupconne que le problème provienne de ta fonction Entete.
    Dnas cette fonction tu n'utilises pas ton argument...
    En fait tu ouvres toujours le même fichier "D:\\test.txt"..
    tu devrais plutot écrire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    string enTete(const string &nomFichier)
    {
    	ifstream fichier(nomFichier);
    	string ligne;
     
    	if (fichier.is_open())
    	{
    		getline(fichier, ligne);		
    		fichier.close();
    		cout << ligne.c_str() << endl;
    	}
    	else
    	{
    		cerr << "Impossible d'ouvrir le fichier en lecture : " << nomFichier.c_str() << endl;
     
    	}
     
    	return ligne;
    }
    Essayes avec cela et tiens nous au courant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [travaux] execution d'un fichier .sql
    Par argv666 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/11/2005, 16h26
  2. [C#] Execution d'un fichier VBS depuis un service Windows
    Par 0r3L dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/11/2005, 22h58
  3. execution d'un fichier
    Par faklzefh dans le forum C
    Réponses: 8
    Dernier message: 30/10/2005, 21h18
  4. un executable dans le fichier ressource
    Par joebilou dans le forum Windows
    Réponses: 4
    Dernier message: 28/06/2005, 11h18
  5. Requete d'execution d'un fichier
    Par minimoi1234 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/03/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo