Voilà, ce gentil petit code servira a enregistrer un listview, Items, SubItems, Tag (Items). Il est relativement simple a comprendre.
Source / Exemple :
Public Function SaveListview(cListView As ListView, SubItemsNomb As Long, Fichier As String) As Boolean
On Error GoTo Erreur
Dim B As Long, C As Long
Open Fichier For Output As #1 'On ouvre le fichier pour écrire
For B = 1 To cListView.ListItems.Count 'Parcourir toute les items
With cListView
Print #1, Chr(4) & .ListItems(B).Text & Chr(12) & Chr(7) & Chr(3) & .ListItems(B).Tag & Chr(7) & Chr(3) & Chr(1); 'Écrire le contenu de l'item
For C = 1 To SubItemsNomb 'Parcourir les SubItems
Print #1, Chr(2) & C & Chr(2) & .ListItems(B).SubItems(C) & Chr(17) & C & Chr(17); 'Enregistrer leurs contenu
Next C
Print #1, Chr(5) & Chr(2); 'Imprimer la fin du premier items
End With
Next B
Close 1
SaveListview = True
Exit Function
Erreur:
SaveListview = False
End Function
Public Function OpenListView(cListView As ListView, SubItemsNomb As Long, Fichier As String) As Boolean
On Error GoTo Erreur
Dim B As Long, Pos As Long
Dim Texte As String, A As String
cListView.ListItems.Clear
Open Fichier For Binary Access Read As #1 'Ouvrir le fichier
Texte = Space(LOF(1)) 'Mettre sa dans la variable
Get 1, , Texte
Close #1
Pos = 1
Do
Pos = InStr(Pos, Texte, Chr(4)) + 1 'Détecter le premier items
A = Mid(Texte, Pos, InStr(Pos, Texte, Chr(5) & Chr(2)) - Pos) 'Jusqu'ou sa arrête
With cListView
.ListItems.Add , , Left(A, InStr(A, Chr(12)) - 1) 'Ajouter l'item
.ListItems(.ListItems.Count).Tag = Mid(A, InStr(A, Chr(7) & Chr(3)) + 2, InStr(A, Chr(7) & Chr(3) & Chr(1)) - 2 - InStr(A, Chr(7) & Chr(3)))
For B = 1 To SubItemsNomb
.ListItems(.ListItems.Count).SubItems(B) = Mid(A, InStr(A, Chr(2) & B & Chr(2)) + Len(Chr(2) & B & Chr(2)), InStr(A, Chr(17) & B & Chr(17)) - InStr(A, Chr(2) & B & Chr(2)) - Len(Chr(2) & B & Chr(2)))
Next B
End With
If InStr(Pos, Texte, Chr(4)) = 0 Then Exit Do 'Sortir de la boucle quand c'est finit
Loop
OpenListView = True
Exit Function
Erreur:
OpenListView = False
End Function
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.