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

Windows Forms Discussion :

[PB VB.net]Pb ouverture de fichier deux fois de suite


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut [PB VB.net]Pb ouverture de fichier deux fois de suite
    bonjour, je crée une application destiné à des préleveurs d'échantillons d'eau.

    Leur points de prélèvements à effectués d'après une liste de points (situées dans mon application dans un fichier simple .txt)

    je suis en train de créer un interface d'administration qui permet entre autre d'ajouter un point.

    Pour cela l'utilisateur entre le code du nouveau point dans une textbox.

    Je lance une recherche de ce même code, s'il existe deja dans la liste, un message s'affiche et le code n'est pas créé.
    S'il ne l'ai pas alors il est enregistré.

    Mon problème c'est qu'il n'ouvre qu'une fois mon fichier, donc si le code n'existe pas pas de problème.
    Mais si je réenchaine par un autre point c'est foutu... ou je peux plus ecrire si le code n'existe pas


    comment fermer le processus? ou comment contourner ce problème?

    voici mon 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Imports System.IO
     
    Public Class Ajout_PSV
     
        Dim recherche As Boolean = False
     
        Dim codepsv As String
     
     
        Sub RecherchePSV()
     
            Dim sr As New StreamReader("\My Documents\aip_ressources\2007.txt")
            Dim AnalyseChaine As String
            Dim uneligne As String
            Do
                uneligne = sr.ReadLine()
                If Not uneligne Is Nothing Then
                    AnalyseChaine = uneligne.IndexOf(";" + codepsv + ";")
                    If AnalyseChaine >= 0 Then MsgBox("Ce code existe déjà") : recherche = True
                Else
                    recherche = False
     
                End If
     
            Loop Until (uneligne Is Nothing)
            sr.Close()
     
        End Sub
     
        Private Sub Button_Valider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Valider.Click
     
            codepsv = Box_Code_PSV.Text
     
            If Box_Code_PSV.Text = ("") Then
                MsgBox("Aucun code PSV n'a été rentré", MsgBoxStyle.Critical, "Erreur")
            Else
                RecherchePSV()
     
                Dim sw As New StreamWriter("\My Documents\aip_ressources\2007.txt", True)
     
                If recherche Then
                    sw.Write(";")
                    sw.Write(Box_Code_PSV.Text)
                    sw.Write(";")
                    sw.Write(Box_Commune.Text)
                    sw.Write(";")
                    sw.Write(Box_Type_Installation.Text)
                    sw.Write(";")
                    sw.Write(Box_Payeur.Text)
                    sw.Write(";")
                    sw.Write(Box_Installation.Text)
                    sw.Write(";")
                    sw.Write(Box_Nom_PSV.Text)
                    sw.Write(";")
                    sw.Write(Box_Lieu_PSV.Text)
                    sw.Write(";")
                    sw.Write(Box_Type_Eau.Text)
                    sw.Write(";")
                    sw.Write(Box_Responsable.Text)
                    sw.Write(";")
     
                    If CheckBox_Eau.Checked = True Then
                        sw.Write("oui")
                        sw.Write(";")
                    Else
                        sw.Write("non")
                        sw.Write(";")
                    End If
     
                    If CheckBox_Option.Checked = True Then
                        sw.Write("oui")
                        sw.Write(";")
                    Else
                        sw.Write("non")
                        sw.WriteLine(";")
                    End If
                    sw.Close()
                    MsgBox("PSV ajouté")
                    AIP.Show()
                End If
            End If
        End Sub
     
     
    End Class
    merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Pourrais-tu donner le message d'erreur que tu reçois ? Si message il y a ^^.

    Griftou.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut
    L'exception System.IO.IOException n'a pas été gérée
    Message="Le processus ne peut pas accéder au fichier '\My Documents\aip_ressources\2007.txt', car il est utilisé par un autre processus."
    StackTrace:
    à System.IO.__Error.WinIOError()
    à System.IO.FileStream..ctor()
    à System.IO.FileStream..ctor()
    à System.IO.StreamReader..ctor()
    à System.IO.StreamReader..ctor()
    à Assistant_Preleveur.Ajout_PSV.RecherchePSV()
    à Assistant_Preleveur.Ajout_PSV.Button_Valider_Click()
    à System.Windows.Forms.Control.OnClick()
    à System.Windows.Forms.Button.OnClick()
    à System.Windows.Forms.ButtonBase.WnProc()
    à System.Windows.Forms.Control._InternalWnProc()
    à Microsoft.AGL.Forms.EVL.EnterModalDialog()
    à System.Windows.Forms.Form.ShowDialog()
    à Assistant_Preleveur.Administration.Button_Ajout_PSV_Click()
    à System.Windows.Forms.Control.OnClick()
    à System.Windows.Forms.Button.OnClick()
    à System.Windows.Forms.ButtonBase.WnProc()
    à System.Windows.Forms.Control._InternalWnProc()
    à Microsoft.AGL.Forms.EVL.EnterMainLoop()
    à System.Windows.Forms.Application.Run()
    à Assistant_Preleveur.AIP.Main()
    voilà...

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Bin c'est clair je pense. Ton fichier est toujours utilisé et c'est pour ça que tu ne peux pas y accéder en modé écriture.

    Exécute ton code en mode pas à pas et vois si le close s'effectue bien.
    Je pense que tu peux même faire un dispose de ton streamreader pour être sûr.

    Teste déjà ça.

    Griftou.

    EDIT : Au temps pour moi, y a pas de dispose pour le streamreader (du moins, pas en VS2003 qui est la version avec laquelle je travaille)

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 104
    Par défaut
    apparament la lecture en boucle du fichier bloque la fermeture de mon stream (sr.close). mais je comprends pas pourquoi. d'ou cela peut il venir?

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Cela ne solutionnera pas ton problème de fermeture de fichier (du moins je ne pense pas) mais comme test de fin de boucle, tu devrais aussi tester ton booleen Recherche car à moins que le code cherche ne se trouve sur la dernière ligne, il sera toujours à false en sortie de boucle (j'espère ne pas raconter de conneries, vais avoir l'air con sinon ).

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2008, 23h09
  2. ouverture d'un fichier deux fois en meme temps
    Par mm2405 dans le forum C++
    Réponses: 1
    Dernier message: 11/10/2007, 17h54
  3. Problème d'ouverture de fichier (une fois oui, une fois non)
    Par yadla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/08/2007, 08h54
  4. Button OnClick s'execute deux fois de suite
    Par ToxiZz dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/06/2007, 08h59
  5. [VB.net 2003] ouverture de fichier
    Par froulet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/07/2006, 16h47

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