Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enregistrer les items d'une Listview

    16 septembre 2017 à 22:56:49

    Bien le bonjours,

    Je suis en train de créé un programme, et je me heurte a un problème au niveau de l’enregistrement des items de ma listview. J'ai testé ceci :

    Dim element As New ListViewItem
     Dim sw As New StreamWriter("C:\Users\" + Environment.MachineName + "\Desktop\TEMPO\Variable1.txt")
     sw.Write(ListView1.Items)
    sr.close
    

    Mais dans le document texte en question il est affiché ceci : "System.Windows.Forms.ListView+ListViewItemCollection" ce qui ne correspond pas du tout a mes items.

    En attendant une illumination je me suis mis à l'écriture de la récupérations des items, il y a eu plus de progrès mais là aussi j'ai un probléme :

    Dim element As New ListViewItem
    Dim sr As New StreamReader("C:\Users\" + Environment.MachineName + "\Desktop\TEMPO\Variable1.txt")
    While (sr.Peek >= 0)
                element.Text = (sr.ReadLine)
                ListView1.Items.Add(element)
            End While

    Le code marche a merveille avec un item enregistré mais dés qu'il y en a un de plus le programme bug et m'indique "Impossible d'ajouter ou d'insérer l'élément '33' à plusieurs emplacements. Vous devez tout d'abord le supprimer de son emplacement actuel ou le cloner.

    Nom du paramètre : item" 

    J'ai fait quelque test et j'en est déduis qu'il fallait changer le nom de la variable "element" et toutes les ligne de code contenant cette variable mais je ne connais pas la ligne de code qui permet de le faire.

    Voici mes problèmes en attendant une réponse avec impatience et en vous remerciant d'avance.


    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2017 à 8:43:20

      Voilà qui marche pour moi pour l'écriture dans le fichier

      Dim element As New List(Of String)
              element.Add("1")
              element.Add("2")
      
              Using writer As StreamWriter = New StreamWriter("C:\Temp\myfile.txt")
      
                  For Each item As String In element
                      writer.WriteLine(item.ToString())
                  Next
              End Using

      J'ai par contre utilisé une Liste de type List et non une ListView, une liste de String

      J'ai ajouté 2 éléments pour test.......

      Un For Each et ça fonctionne pour ma part. J'espère que ça pourra t'aider.

      Cette méthode fonctionne pour une ListView :

       Dim element As New ListView
              element.Items.Add("Enr1")
              element.Items.Add("Enr2")
      
              Using writer As StreamWriter = New StreamWriter("C:\Temp\myfile.txt")
      
                  For Each item In element.Items
                      writer.WriteLine(item.Text())
                  Next
              End Using

      Le résultat :

      Enr1

      Enr2

      EDIT : et voilà : 

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      
              'element.Items.Add("Enr1")
              'element.Items.Add("Enr2")
      
              Using writer As StreamWriter = New StreamWriter("C:\Temp\myfilewrite.txt")
      
                  For Each item In element.Items
                      'MsgBox(item.Text)
                      writer.WriteLine(item.Text)
                  Next
              End Using
      
          End Sub
      
          Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      
      
              Using reader As StreamReader = New StreamReader("C:\Temp\myfileread.txt")
      
                  Do
                      Dim line As String = reader.ReadLine()
                      If line Is Nothing Then Exit Do
                      element.Items.Add(line)
                  Loop
      
              End Using
          End Sub




      Le bouton 1 écrira dans le fichier "myfilewrite" ce que j'ai lu dans le fichier "myfileread" avec le bouton 2. A+

      -
      Edité par Fellerson 17 septembre 2017 à 9:26:28

      • Partager sur Facebook
      • Partager sur Twitter
        18 septembre 2017 à 11:11:44

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          9 octobre 2017 à 15:49:23

          Merci de votre rapidité je teste ça tout de suite.
          • Partager sur Facebook
          • Partager sur Twitter

          Enregistrer les items d'une Listview

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown