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 :

StreamWriter bloque l'écriture


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut StreamWriter bloque l'écriture
    Bonjour,
    je suis en train d'essayer de créer un petit contrôle parental. Cependant, j'ai un problème avec l'écriture des logs des mots tapés. J'ai crée mon code qui compare la liste des mots interdit (exemple : drogue, alcool...) avec les logs.
    L'écriture des logs et la comparaison se fait avec un timer qui appel la fonction.
    Cependant, lorsque l'écriture des logs se fait pour la deuxième fois, troisième ... Le fichier logs est "occupé par une autre application". Je ne vois pas d'où peut venir le problème.
    J'espère que vous pourrez m'éclairer.
    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
    Try
     
                Do
     
                    Dim EcritureLogs As StreamWriter = New StreamWriter("C:\Logs.txt")
                    EcritureLogs.Write(TextBox1.Text)
                    EcritureLogs.Close()
     
                    MotListe = StreamReaderListeMots.ReadToEnd
                    StreamReaderListeMots.Close()
     
                    'on verifie si ligne n'est pas vide
                    If MotListe = String.Empty Then
     
                        Exit Do
                    End If
     
                    If MotDansLogs.Contains(MotListe) Then
                        TextBox1.Clear()
                        MotDansLogs = Nothing
     
                        Call ScreenShot(PictureBox1)
     
                        Dim ThreadEnvoiMail As New Threading.Thread(AddressOf EnvoiMail)
                        ThreadEnvoiMail.Start()
     
                        'METTRE CODE ENVOI DES LOGS !
                        'CORRIGER LE BUG DE DETECTION LISTE DES MOTS SI PLUSIEURS MOTS
     
                    End If
                Loop Until MotListe = String.Empty
     
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
    Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    met un point d'arrêt sur le ".Close"
    Attends 1-2 secondes, et continue en pas à pas voir si le second passage pose problème.
    Il n'est pas impossible que ton fichier mette un peu de temps à ce fermer et que du coup tu essayes de le rouvrir alors qu'il n'est pas encore fermé correctement.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Bonjour asmduty,
    je ne peux pas faire du pas à pas car VisualStudio tourne en boucle dans le module du keylogger qui permet de capturer les mots tapés, je me demande donc si le problème ne vient pas de là d'ailleurs. (Keylogger prit sur vbfrance. Je ne peux pas malheureusement mettre de lien pour que tu puisse le voir car mettre des liens d'autres sites est interdit me semble t-il.)
    Merci de ton aide !

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Testes un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system.threading.thread.sleep(1000)
    ou une message box que tu fermes au bout de quelques secondes après la ligne :


  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Par défaut
    Hélas toujours le même problème.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    C'est alors un problème de logique probablement.

    Le timer se déclenche, le bout de code qu'on voit se lance, il n'est pas encore finit le timer se déclenche de nouveau, ce qui provoque l'erreur.

    Il faudrait qu'on voit un peu plus de code large pour voir si c'est effectivement ça.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/06/2013, 11h42
  2. [WD15] Table en saisie qui se bloque en écriture
    Par tux59 dans le forum WinDev
    Réponses: 5
    Dernier message: 13/04/2010, 07h49
  3. StreamWriter et écriture dans un fichier
    Par bor1s dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/04/2008, 08h28
  4. Base bloquée en écriture par Hibernate
    Par Mister Nono dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/06/2007, 17h44
  5. [VB.NET] Écriture par colonne streamwriter...?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/04/2005, 15h32

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