Vb.net editer chaque ligne ^^

Résolu
Bonjour,
je suis débutant en vb.net , j'ai réussi a charger le contenue d'un fichier text dans un listbox , je cherche a éditer chaque ligne (item) de cette listbox affin d'ajouter : " | exemple [numeros]" (sans "") .

esque c'est possible ? si oui comment ?

merci d'avance .

5 réponses

  1. Bonjour,

    Exemple type dans un boucle (sur commande d'un bouton) ...

    Private Sub btn_Edition_Click(ByVal sender As System.Object, _  
                                           ByVal e As System.EventArgs) _  
                                           Handles btn_Edition.Click  
    
     If (Me.lbx_Process.Items.Count > 0) Then  
        Dim Entree As String = String.Empty  
        Dim Indice As Int32 = (Me.lbx_Process.Items.Count - 1)  
        For Boucle As Int32 = 0 To Indice  
           Entree = Me.lbx_Process.Items(Boucle).ToString  
           Entree = InputBox("Donnée à modifier :", "Édition", Entree)  
           Me.lbx_Process.Items.RemoveAt(Boucle)  
           Me.lbx_Process.Items.Insert(Boucle, Entree)  
        Next  
     End If  
    
    End Sub  
    


    Cdt

    Lupin
    1
    1. salut ,
      je l'ai modif et il fonctionne :p , merci beaucoup !
      0
  2. Bonjour,

    Tu ne peux le faire directement ...

    Il faut passer indirectement ...

    exemple par double-click de la souris sur l'item :

    Private Sub lbx_Morceau_MouseDoubleClick(ByVal sender As Object, _
    					 ByVal e As System.Windows.Forms.MouseEventArgs) _
    					 Handles lbx_Morceau.MouseDoubleClick
    
    	Dim strEntree As String = String.Empty
    
    	Dim Indice As Int32 = Me.lbx_Morceau.SelectedIndex
    
    	strEntree = Me.lbx_Morceau.SelectedItem.ToString
    	strEntree = InputBox("Donnée à modifier :", "Édition", strEntree)
    
    	Me.lbx_Morceau.Items.RemoveAt(Indice)
    	Me.lbx_Morceau.Items.Insert(Indice, strEntree)
    
    End Sub
    


    Cdt

    Lupin
    0
    1. Merci boucoup lupin pour ta réponse .

      je voudrais que quand je clique sur le boutton , ça edite chaque ligne séparélent . , sans que j'intervien .

      j'ai essayez ce code mais ça marche pas :/

       Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
              Try
                  
                  Dim open As New IO.StreamReader(Application.StartupPath & "\DATA\fichier.txt")
                  While (open.Peek() > -1)
                      Dim SW As IO.TextWriter
                      SW = IO.File.AppendText(Application.StartupPath & "\DATA\fichier.txt")
      
                      SW.WriteLine(" |  exemple")
      
      
      
                  End While
                  open.Close()
      
              Catch
              End Try
             
              'ListBox1.Items.Clear()
      
      
          End Sub
      0
  3. re:

    Tes deux objets, le StreamReader (open) et le TextWriter (SW)
    pointent sur le même fichier, c'est impossible !

    Lupin
    0
    1. Contributeur
      Bonjour,
      Place l'exemple de Lupin dans une boucle au lieu de l'évènement Dclick et ça va le faire.
      A+
      0
      1. Ok j'essaye
        0
      2. ça n'a pas fonctionné :/
        0
      3. Contributeur
        ça n'a pas fonctionné :/
        Ça ne veux rien dire...
        Montre le code que tu en a tiré.
        0
      4. voial
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim strEntree As String = String.Empty

        For Each item In ListBox1.Items
        Dim Indice As Int32 = Me.ListBox1.SelectedIndex

        strEntree = Me.ListBox1.SelectedItem.ToString
        strEntree = "Donnée à modifier :"

        Me.ListBox1.Items.RemoveAt(Indice)
        Me.ListBox1.Items.Insert(Indice, strEntree)
        Next

        End Sub
        0
      5. Contributeur
        Ca devient.... pénible
        Tu pourrais au moins regarder ce que Lupin te propose, ce serait la moindre des politesse.
        Et de continuer avec lui vu que c'est lui qui t'a aiguillé.
        0
    2. Bonjour relax,

      La boucle que tu propose [ For Each item In ListBox1.Items ]
      ne te permettra pas d'obtenir l'indice de l'élément sur lequel
      tu veux opérer une édition.

      L'instruction [ Dim Indice As Int32 = Me.ListBox1.SelectedIndex ]
      ne sera pas valide puisque tu ne sélectionne pas un élément à
      chaque tour de la boucle. L'instruction [ For Each item In ListBox1.Items ]
      est plus une instruction d'énumération que de sélection.

      ... et l'instruction [ Me.ListBox1.Items.Insert(Indice, strEntree) ]
      nécessite l'indice de sélection pour insérer au bon endroit !

      Essai comme ceci ...

      Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      
      	Dim strEntree As String = String.Empty
      	Dim Indice As Int32 = (Me.lbx_Process.Items.Count - 1)
      
      	For Boucle As Int32 = 0 To Indice
      		strEntree = Me.lbx_Process.Items(Boucle).ToString
      		strEntree = InputBox("Donnée à modifier :", "Édition", strEntree)
      
      		Me.lbx_Process.Items.RemoveAt(Indice)
      		Me.lbx_Process.Items.Insert(Indice, strEntree)
      	Next
      
      End Sub
      


      Cdt

      Lupin
      0