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

VB.NET Discussion :

comment faire une action répétée


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut comment faire une action répétée
    bonjour,

    J'ai un programme dans lequel j'attend de recevoir un fichier donc pour cela j'ai utiliser ce 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
            If System.IO.File.Exists("C:\Documents and Settings\LM78bnv\My Documents\My Music\dossierTestEnvoie\test.txt") Then
     
     
                Dim NomFichier2 As String = "C:\Documents and Settings\LM78bnv\My Documents\My Music\dossierTestEnvoie\test.txt"
                Try
                    'Ouverture du fichier et Ecriture du contenu du fichier sur la console
                    sr = New StreamReader(NomFichier2)
                    sLine = sr.ReadLine()
                    TextBox1.Text = sLine
     
                    While sLine Is Nothing
                           sLine = sr.ReadLine()
                    End While
     
                Finally
                    'Fermeture streamreader
                    If Not IsNothing(sr) Then sr.Close()
                    'Fermeture streamwriter
                    If Not IsNothing(sw) Then sw.Close()
     
                End Try
     
            Else
     
                MsgBox("PAS DE FICHIER")
            End If
    Mais je dois faire en sort que cette recherche de fichier continu pendant 15 sec dès l'activation de mon programme.

    Je sais pas si cela est vraiment possible, si quelqu'un connait un solution je prenneur.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,

    Utilise un timer dont l'intervalle est de 15s
    Dès l'activation de ton programme,ton timer est activé et la fois suivante qu'il est executé, tu le désactive.

    Pour repérer si un fichier est placé à un endroit donné, voir du côté de la classe FileSystemWatcher et la méthode EnableRaisingEvents que tu actives au lancement de l'appli et que tu désactives en même temps que le timer.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    plein de méthodes, ca dépend si tu veux optimiser ton code ou pas
    le mieux étant un thread à part qui teste toutes les secondes si le fichier est là
    c'est un peu équivalent au FileSystemWatcher, qui t'avertira quand un nouveau fichier sera créé

    ou sinon de la meme manière que dans un thread séparé (et donc sur le thread pincipal donc moins bien) on peut faire :


    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
     
    dim chrono as new system.diagnostics.stopwatch
    chrono.Start
     
    while true
        if not System.IO.File.Exists("chemin fichier") then ' si le fichier n'existe pas
            if chrono.elapsedmilliseconds > 15000 then ' si ca fait plus de 15 secondes qu'il n'existe pas
                MsgBox("PAS DE FICHIER")
                exit while ' on sort de la boucle
            end if
            thread.sleep (200)
            application.doevents
            continue while ' on repart au début de la boucle while
        end if
     
       ' traitement car fichier trouvé
        exit while ' traitement fait on sort de la boucle
    end while

    dans un thread, on retirerais application.doevents et on mettrais thread.sleep(1000) parce que là c'est moyen

  4. #4
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 56
    Points
    56
    Par défaut
    super ca marche merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2014, 14h23
  2. comment faire une action sur JPanel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/01/2007, 12h13
  3. Comment faire une action, par rapport au temps
    Par Happy dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/11/2005, 13h27
  4. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13
  5. Réponses: 10
    Dernier message: 10/10/2003, 14h25

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