Gros soucis avec la lecture d'un fichier (Besoin aide)

Résolu
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 - 8 févr. 2013 à 12:05
 Utilisateur anonyme - 8 févr. 2013 à 21:23
Bonjour,

J'ai un très gros soucis avec un fichier Txt et je ne comprends rien de rien
Le programme l'ouvre et tous va bien mais il le lit pas

J'ai fait des Point d’arrêt pour voir et rien ne se passe
Le programme entre même pas dans la boucle de lecture du fichier !

La, j'en demande à votre aide car je suis grave bloqué

Le fichier du projet complet est ici et ya déjà un point d’arrêt de marquer
vous n'aurez qu'a juste lancer le programme et appuyer sur aperçus et constater par vous même le problème.

http://www.archive-host.com/files/1923179/859dc6c6d119dbd3085009b9d8df4add7ea34a4e/Assistant_creation_de_boite_de_dialogue.7z

La procédure qui pose problème est là:
Private Sub ChargementProfilPréEnregistré()

        If File.Exists(Directory.GetCurrentDirectory & "\Profils.txt") = True Then

            Dim FichierLecture As StreamReader = File.OpenText(Directory.GetCurrentDirectory & "\Profils.txt")
            Dim PassageX As Integer = 0
            Dim PassageY As Integer = 0

            Debug.WriteLine(FichierLecture.Peek)

            Do While FichierLecture.Peek = 0
                Debug.WriteLine(FichierLecture.Peek)
                TableauTempsLectureListeProfils = FichierLecture.ReadLine.Split(New Char() {","c})
                Debug.WriteLine(TableauTempsLectureListeProfils)

                For Each Concaténation As String In TableauTempsLectureListeProfils
                    PassageX += 1
                    ReDim Preserve TableauListeProfils(PassageY, PassageX)
                    TableauListeProfils(PassageY, PassageX) = Concaténation
                Next

                PassageY += 1

            Loop

            FichierLecture.Close()
            MsgBox("Le fichier ""Profils.txt"" a été correctement charger:" & vbCrLf & Directory.GetCurrentDirectory & "\Profils.txt")

        Else
            Dim FichierEcriture As StreamWriter = File.CreateText(Directory.GetCurrentDirectory & "\Profils.txt")
            FichierEcriture.Close()
            MsgBox("Le fichier ""Profils.txt"" n'éxistais pas et a été créer:" & vbCrLf & Directory.GetCurrentDirectory & "\Profils.txt", 0, "Imformation")
        End If

        Dim StringTemps As String = ""

        For Y As Integer = 0 To TableauListeProfils.GetLength(0) - 1

            For X As Integer = 0 To TableauListeProfils.GetLength(1) - 1
                StringTemps += TableauListeProfils(X, Y) + ", "
            Next

        Next

        MsgBox(StringTemps)

    End Sub


Bon, c'est un peut la cafard à homme je sais...
Je fais des tests justement et c'est pour ça que c'est le souk...

Le but est de lire le fichier "Profils.Txt" dans le dossier Bin\Debug
Et de le mettre dans un tableau pour ensuite tout afficher dans une boîte (pour le test)

Ce qui est important est que une fois tous ça ok, je dois pouvoir me promener dans mon tableau
pour aller chercher ou modifier des éléments à ma guise...

Je sais, c'est pas simple et c'est le bazar...
Pitié, aidez-moi SVP

5 réponses

Utilisateur anonyme
8 févr. 2013 à 13:03
Bonjour,

Tu peux simplement l'écrire comme ceci :
If File.Exists("Profils.txt") Then
    Dim FichierLecture As StreamReader = File.OpenText("Profils.txt")
    Do While Not FichierLecture.EndOfStream
        Dim maligne As String = FichierLecture.ReadLine
        'traitement ici
    Loop
End If


Ah oui j'allais oublier l'astuce du jour tant attendue
c'est un peut la cafard à homme

Cessons de martyriser ces braves petites bêtes. On préfère écrire :
c'est un peu le capharnaüm
3
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
8 févr. 2013 à 14:39
Bon, j'ai fini et est fais comme ceci:
Private Sub ChargementProfilPréEnregistré()

        If File.Exists(Directory.GetCurrentDirectory & "\Profils.txt") = True Then

            Dim FichierLecture As StreamReader = File.OpenText(Directory.GetCurrentDirectory & "\Profils.txt")
            Dim PassageX As Integer = 0
            Dim PassageY As Integer = 0

            Do While Not FichierLecture.EndOfStream

                PassageX = 0
                TableauTempsLectureListeProfils = FichierLecture.ReadLine.Split(New Char() {","c})

                For Each Concaténation As String In TableauTempsLectureListeProfils
                    TableauListeProfils(PassageX, PassageY) = Concaténation
                    PassageX += 1
                Next

                If Not FichierLecture.EndOfStream Then
                    PassageY += 1
                    ReDim Preserve TableauListeProfils(14, PassageY)
                End If

            Loop

            FichierLecture.Close()

            For Y As Integer = 0 To TableauListeProfils.GetLength(1) - 1

                For X As Integer = 0 To TableauListeProfils.GetLength(0) - 1

                    MsgBox(TableauListeProfils(X, Y))

                Next

            Next

        Else
            Dim FichierEcriture As StreamWriter = File.CreateText("Profils.txt")
            FichierEcriture.Close()
        End If

    End Sub
3
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
8 févr. 2013 à 13:44
Merci beaucoup Banana32
0
Bonjour à tous,

Dayvid, tu devrais poster ton code, il pourrait être aux novices comme moi !

en tous cas, merci pour le partage


Tout homme doit être poli ; mais il doit aussi être libre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
8 févr. 2013 à 21:23
Je vois que tu n'as pas compris mon exemple alors je vais détailler.
If File.Exists(Directory.GetCurrentDirectory & "\Profils.txt") = True Then

Directory.GetCurrentDirectory est inutile puisqu'on travaille déjà sur le dossier courant.
File.Exists renvoie déjà un booléen donc = True est inutile.
Il y a redondance entre ces 2 lignes :
Do While Not FichierLecture.EndOfStream
If Not FichierLecture.EndOfStream Then

Ta condition If est inutile puisque toujours exécutée.
 Else
            Dim FichierEcriture As StreamWriter = File.CreateText("Profils.txt")
            FichierEcriture.Close()

Tu ouvres un fichier pour le refermer aussitôt. Inutile aussi.
0
Rejoignez-nous