Afficher liste de fichier dans listbox (ok) + afficher le contenu du fichier dan [Résolu]

KcHeY 261 Messages postés dimanche 23 mai 2004Date d'inscription 22 septembre 2012 Dernière intervention - 13 sept. 2011 à 20:58 - Dernière réponse : NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention
- 14 sept. 2011 à 12:40
Bonsoir,

Je ne suis pas programmeur mais plutôt bidouilleur sur vb.net
Je créé des petits programme pour mes besoins et parfois par plaisir.
En ce moment j'essai de créer un prog des gestion de client.
Donc j'ai une forme sur laquelle j'ai inséré une listbox et un textbox.
Dans ma listbox sont affiché la liste des fichiers contenu dans un dossier.
Je souhaiterai que le fichier .txt que je selectionne dans la listbox s'affiche (ou même se copie dans le textbox, ce qui me faciliterai la mise a jour)
Après de multitudes de recherche/test je ne parvient pas à obtenir ce que je veux.
J'arrive seulement a retourner avec selecteditem mais ça me réécris le nom du fichier.
Je me tourne donc vers vous.

Voici un screen pour que vous compreniez mieux :


et voici le code... (récupéré ici dans la plupart des cas, je vous en remercie)

Imports System.IO

Public Class Form1


    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Dossier As String = "Clients"
        Dim sDossier() As String = System.IO.Directory.GetFiles(Dossier)
        Dim Nfichier As String
        Me.ListBox1.Items.Clear()

        For Each Nfichier In sDossier
            Me.ListBox1.Items. _
            Add(Microsoft.VisualBasic.Right(Nfichier, (Len(Nfichier) - Len(Dossier))))
            ListBox1.SelectedItem = TextBox1.Text
        Next
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        TextBox1.Text = ListBox1.SelectedItem

    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub
End Class


Merci d'avance !
Afficher la suite 

27 réponses

Répondre au sujet
Utilisateur anonyme - 13 sept. 2011 à 21:54
+3
Utile
TextBox1.Text = New IO.StreamReader(Dossier & ListBox1.Text).ReadToEnd

Je suis fatigué
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 14 sept. 2011 à 09:24
+3
Utile
Bonjour,

Ce n'est pas compliqué, c'est juste une bonne habitude à prendre.

Tes programmes seront plus clairs et seront plus facile à lire et debugger.

Utiliser les fonctions intégrées au framework et axées .NET te permettront de simplifier grandement ton code.

Quelle ligne est la plus claire :
Me.ListBox1.Items.Add(Microsoft.VisualBasic.Right(Nfichier, (Len(Nfichier) - Len(Dossier))))
ou
Me.ListBox1.Items.Add(IO.Path.GetFileName(Nfichier))
?

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 14 sept. 2011 à 10:12
+3
Utile
Bonjour,

Dim lLines as List(Of String)=New List(Of String)
    lLines.Add(Now())
    lLines.Add(TextBox1.Text)
    lLines.Add(TextBox2.Text)

    Dim lFileName as String=Application.StartupPath() 'Chemin de l'executable
    lFileName=Io.Path.Combine(lFileName,"Clients") 'Sous dossier
    lFileName=Io.Path.Combine(lFileName,Textbox1.text+".Txt") 'Fichier

    Io.File.WriteAllLines(lFileName,lLines)


J'ai retiré le Try Catch, mais il serait à mettre sur le Io.File.WriteAllLines.

Penses aussi à nommer tes contrôles de manière cohérente, TextBox1 parle moins que TxtPrenom par exemple.

Contrôles aussi la saisie, car si TextBox1 Contient des * et autres caractères interdits, ça posera problème.

La ligne :
TargetFile.WriteLine(Now())
Me laisse penser que tu n'as pas activer Option Strict, ce serait une bonne habitude à prendre que de l'activer, ça t'éviteras pas mal de problèmes d'exécution.

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
KcHeY 261 Messages postés dimanche 23 mai 2004Date d'inscription 22 septembre 2012 Dernière intervention - 13 sept. 2011 à 21:00
0
Utile
Oups désolé pour la taille du screen.
Commenter la réponse de KcHeY
Utilisateur anonyme - 13 sept. 2011 à 21:33
0
Utile
Bonsoir,

textbox1.text = listbox1.text

Tout simplement ;)

Bonne soirée.
Commenter la réponse de Utilisateur anonyme
KcHeY 261 Messages postés dimanche 23 mai 2004Date d'inscription 22 septembre 2012 Dernière intervention - 13 sept. 2011 à 21:36
0
Utile
Bonsoir banana32 merci pour ta réponse,

J'avais déjà essayer, je viens de retenter et je te confirme que ça me copie le nom du ficher et non son contenu.
Commenter la réponse de KcHeY
Utilisateur anonyme - 13 sept. 2011 à 21:37
0
Utile
Tu veux surement parler de l'affichage du contenu du fichier ?
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 13 sept. 2011 à 21:38
0
Utile
Bonjour,

euh ... je crois (mais je suis peut-être fatigué) que ce qu'il veut mettre dans la textbox n'est pas le nom du fichier, mais ... son contenu .
Va falloir l'ouvrir (open ?), le lire d'un seul tenant (stream) et l'écrire dans la textbox
Cela ne devrait représenter aucun problème sous VB.Net (pas plus que sous VB6).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 13 sept. 2011 à 21:38
0
Utile
Ah ! croisés


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Utilisateur anonyme - 13 sept. 2011 à 21:41
0
Utile
Nos posts se sont croisés, tu vas devoir utiliser la classe io.streamreader afin de lire ton fichier afin de l'afficher.
TextBox1.Text = New IO.StreamReader("monfichier.txt").ReadToEnd


Bonne prog.
Commenter la réponse de Utilisateur anonyme
KcHeY 261 Messages postés dimanche 23 mai 2004Date d'inscription 22 septembre 2012 Dernière intervention - 13 sept. 2011 à 21:45
0
Utile
Merci pour vos réponses,

Justement comment dire au programme qu'il ouvre le fichier associé au nom séléctionné dans un textbox depuis la listbox.
Je ne peux pas faire :
TextBox1.Text = New IO.StreamReader("monfichier.txt").ReadToEnd
Car je n'ai pas acces au nom des fichiers depuis l'éditeur.
Oulala dur dur.
Vous me comprenez ?
Commenter la réponse de KcHeY
Utilisateur anonyme - 13 sept. 2011 à 21:52
0
Utile
Sers toi de ta variable Dossier :
TextBox1.Text = New IO.StreamReader(Dossier & "monfichier.txt").ReadToEnd
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 13 sept. 2011 à 21:54
0
Utile
et de ListBox1.SelectedItem

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 13 sept. 2011 à 21:55
0
Utile
encore croisés

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Utilisateur anonyme - 13 sept. 2011 à 21:56
0
Utile
Merci de ton soutient ucfoutu
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 13 sept. 2011 à 21:57
0
Utile
poas de quoi.
Mais que la fatigue ne te fasse pas oublier le ""


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Utilisateur anonyme - 13 sept. 2011 à 21:59
0
Utile
Non je crois qu'il l'a mise dans sa variable
Commenter la réponse de Utilisateur anonyme
KcHeY 261 Messages postés dimanche 23 mai 2004Date d'inscription 22 septembre 2012 Dernière intervention - 13 sept. 2011 à 22:10
0
Utile
Yes merci bien ça fonctionne !

Bonne soirée à vous et à bientôt
Commenter la réponse de KcHeY
KcHeY 261 Messages postés dimanche 23 mai 2004Date d'inscription 22 septembre 2012 Dernière intervention - 13 sept. 2011 à 22:13
0
Utile
C'est mon premier post, je dois mettre résolu quelque part ou c'est le "réponse accépté" qui s'en charge ?

Merci encore !:)
Commenter la réponse de KcHeY
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 13 sept. 2011 à 23:38
0
Utile
Bonjour,

J'ajouterais face à cette ligne :
Me.ListBox1.Items.Add(Microsoft.VisualBasic.Right(Nfichier, (Len(Nfichier) - Len(Dossier))))

Regardes aussi :
System.IO.Path.GetFileName
Pour la concaténation chemin/fichier :
System.IO.Path.Combine

Justepour faire un code plus cohérent et retirer les appels aux fonctions "VB6 like".

Len(...) -> MaChaine.Length
Mid(Chaine,...) -> Chaine.SubString(...)

Entre autres.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Afficher liste de fichier dans listbox (ok) + afficher le contenu du fichier dan - page 2