Enregistrer/ouvrir le contenu d'un listview

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 610 fois - Téléchargée 38 fois

Contenu du snippet

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

A voir également

Ajouter un commentaire

Commentaires

Messages postés
414
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2007
2
nickel ca m'as permit de retirer mon code TRES barbare de mon programme: je mettait les item separé sur la ligne par | et je les resplittait ensuite.
la j'ai un code plus "conventionel".
Merci
Messages postés
73
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
14 décembre 2010

left(A, InStr(A,Chr(12))

me pose un probleme, il me dit qu'il ne s'agit pas d'un tableau !!!

que faire ?
Messages postés
73
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
14 décembre 2010

Bonjour,

j'ai une erreur avec ton code.

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)) -
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

Au contraire je trouve qu'il y a trop de ZIP sur ce site, c'est chiant downloader chaque fois que tu cherche une tout petite fonction. Mais dans ce cas-ci il faut indiquer le nom du ListView et le nombre de SubItem.

@+
Messages postés
164
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
19 décembre 2008

qqc que je n'ai jamais compris sur ce site, c'est pourquoi les gens ne mettent pas un zip... surtout quand la source est interessante... est-ce le temps que ca prend pour le faire ?

Bravo pour ta source, ca correspond a ce que je recherche, mais je t'en suppli mets un zip stp...

8/10

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.