IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Sauvegarder valeurs d'une Listview dans My.Settings


Sujet :

VB.NET

  1. #21
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Je te cite :

    Mon problème est que je ne sais pas du tout comment nommer tous ce qui est écrit dans celle-ci sachant que la liste des éléments est modifiable.
    De quoi parles-tu précisément ? Si tu ne parles uniquement des "valeurs" de ta listview pas de problème.

    Ensuite ta listview est composée de 4 colonnes, mais de combien de lignes (le nombre de colonnes / lignes est bien fixé ?) ?
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  2. #22
    Membre du Club Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    Dans un de mes projets j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Item As String In ListBox2.Items
                mail.To.Add(New Net.Mail.MailAddress(Item))
            Next
    Pour envoyer le contenu d'une listeview par mail.

    Il n'y aurait-il pas un moyen semblable pour enregistrer le contenu dans My.settings ?

    Bonne prog

  3. #23
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Citation Envoyé par aus3004 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Item As String In ListBox2.Items
           mail.To.Add(New Net.Mail.MailAddress(Item))
    Next
    Vous comprenez quoi dans ces 3 lignes ?
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  4. #24
    Membre du Club Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    @methylene, désolé de ne pas t'avoir répondu avant car je n'avais pas remarqué la seconde page et je croyais que vous m'aviez oublié.

    Pour répondre à ta question, les 4 colonnes sont générées par le code que j'ai posté et les lignes varient celon les valeurs.

    Comment marche mon prog ?
    Je rentre une valeur dans 4 textboxs puis je clique sur un bouton et les 4 valeurs apparaissent dans la listview. En gros la listview "marche par ligne" car il faut que je remplisse les 4 textboxs pour valider (je précise ca au cas ou l'enregistrement dans my.settings changerait).

    Ce que je cherche c'est de pouvoir sauvegarder ces "lignes" donc enregistrer individuellement chaque item dans my.settings car je crois que c'est la seule solution.

    L'exemple avec les mails que je viens de poster montre que c'est possible d'appeler toutes les items d'une listview par un nom et peut être envisager de tout enregistrer dans my.settings d'un coup.

    Vala
    Images attachées Images attachées  

  5. #25
    Nouveau membre du Club
    Profil pro
    Ostéopathe
    Inscrit en
    Juillet 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ostéopathe

    Informations forums :
    Inscription : Juillet 2010
    Messages : 26
    Points : 37
    Points
    37
    Par défaut
    Salut

    Tu n'arrives peut être pas à voir comment tu peux transformer ton tableau (colonnes et lignes) de ton listview en une seule valeur que tu pourras sauvegarder dans My.Settings

    Une des solutions pourrait consister à construire une seule grosse String avec l'ensemble des données de ton tableau et enregistrer ensuite cette String dans My.Settings

    Pour l'enregistrement dans My.Settings tu as donc d'abord une partie du code qui construit la chaîne et ensuite l'instruction qui enregistre dans My.Settings :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
            'Déclare la chaîne temporaire qui servira à enregistrer le contenu du tableau
            Dim tmpContenu As String = ""
     
            'On va maintenant construire la même chose qu'un fichier .csv :
            '   - Chaque ligne est séparée par le caractère VbLf
            '   -Les données de chaque ligne sont séparées par le caractère ";"
     
            'Prend chacune des lignes de la ListView
            For Each I As ListViewItem In ListView1.Items
     
                'Prend chaque sous-élément de l'item actuel
                For Each SI As ListViewItem.ListViewSubItem In I.SubItems
     
                    'Ajoute la valeur du subitem à la string représentant le tableau (avec le ";" pour séparer les valeurs)
                    tmpContenu = tmpContenu & SI.Text & ";"
     
                Next
     
                'Ajoute le caractère VbLf à la string représentant le tableau
                tmpContenu = tmpContenu & vbLf
     
            Next
     
            'Retire de la chaîne de la String le ";" excédentaire de chaque ligne
            tmpContenu = tmpContenu.Replace(";" & vbLf, vbLf)
     
            'Enregistre maintenant cette String dans tes settings
            My.Settings("Passwords") = tmpContenu

    Pour faire la procédure inverse, on se tape le boulot dans l'autre sens : on récupère l'info de My.Settings et on l'interprète pour construire le ListView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
            Dim tmpContenu As String
            Dim Lignes As String()
            Dim Cells As String()
            Dim incr As Integer
            Dim Items As ListViewItem()
     
            'Récupère le tableau dans les settings
            tmpContenu = My.Settings("Passwords")
     
            'Divise la String en autant de lignes qu'il y en a (séparées par les VbLf)
            'Attention , comme dans la construction le dernier caractère est VbLf on va se retrouver avec une ligne en trop dont il ne faudra pas tenir compte
            Lignes = Split(tmpContenu, vbLf)
     
            'Indique le nombre d'items que l'on va ajouter à la ListView
            ReDim Items(Lignes.GetUpperBound(0) - 1) '-1 car il y a une ligne vide en trop dans le fichier
     
            'Ajoute chaque ligne dans le tableau de données
            For incr = 0 To Lignes.GetUpperBound(0) - 1
     
                'Divise la ligne en autant de données qu'elle en contient (séparées par des ";")
                Cells = Split(Lignes(incr), ";")
     
                'Ajoute la ligne à la liste des lignes à ajouter
                Items(incr) = New ListViewItem(Cells)
     
            Next
     
            'Ajoute l'ensemble des lignes à la ListView
            ListView1.Items.AddRange(Items)

    Vu que tu as une chaîne de caractères, ensuite libre à toi de la crypter avant de l'enregistrer dans les settings et de la décrypter ensuite au moment où tu la récupère.
    En tout cas tu as là une des méthodes permettant d'enregistrer dans une seule variable l'ensemble d'un tableau

    En espérant que ça réponde à ta demande

  6. #26
    Membre du Club Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    @mrtrampo merci pour ton code commenté, ca marche très très bien

    Tu me sauve la vie, a+ et bonne prog

  7. #27
    Membre du Club Avatar de aus3004
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Points : 47
    Points
    47
    Par défaut
    Encore moi

    J'avoue que vous m'avez très bien aidé pour l'enregistrement dans my.settings de la listview mais j'ai maintenant besoin de faire pareil avec une listbox. Dans Google il y a autant de réponse que pour la listview (0) donc je donne suite à notre discussion.

    Pour cela j'ai essayé d'adapter le code de la listview et ca m'a donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
                Dim tmpContenu As String
                Dim Lignes As String()
                Dim Cells As String()
                Dim incr As Integer
                Dim Items As ListBox.ObjectCollection()
     
                'Récupère le tableau dans les settings
                tmpContenu = My.Settings("Tableau")
     
                'Divise la String en autant de lignes qu'il y en a (séparées par les VbLf)
                'Attention , comme dans la construction le dernier caractère est VbLf on va se retrouver avec une ligne en trop dont il ne faudra pas tenir compte
     
                Lignes = Split(tmpContenu, vbLf)
                'Indique le nombre d'items que l'on va ajouter à la ListBox
     
                ReDim Items(Lignes.GetUpperBound(0) - 1) '-1 car il y a une ligne vide en trop dans le fichier
                'Ajoute chaque ligne dans le tableau de données
     
                For incr = 0 To Lignes.GetUpperBound(0) - 1
                    'Divise la ligne en autant de données qu'elle en contient (séparées par des ";")
     
                    Cells = Split(Lignes(incr), ";")
                    'Ajoute la ligne à la liste des lignes à ajouter
                    Items(incr) = New ListBox(Cells)
                Next
                'Ajoute l'ensemble des lignes à la ListBox
                ListBox3.Items.AddRange(Items)
     
        End Sub
    Avec un form_closing également adapté, cela ne marche pas, pouvez-vous me dire si le form1_load ne comporte pas d'erreur pour ensuite que je puisse centraliser mon attention sur la sub qui pose problème ?
    Pensez-vous que la conversion du code listview/listbox est faisable ?
    Faut-il un autre code qui n'a rien à voire ?

    Merci pour votre assistance et bonnes vacances.

    et bon dev

    PS : Mon accès à internet est limité en ce moment, mes réponses peuvent être lentes, désolé.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Récupérer les valeurs d'une listview et les mettre dans des textbox
    Par ph_anrys dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2018, 13h03
  2. Récupérer la valeur d'une Checkbox dans une ListView
    Par LHsafae dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 21/02/2013, 13h14
  3. sauvegarder une liste dans les settings
    Par ola-oz dans le forum C#
    Réponses: 3
    Dernier message: 03/08/2010, 12h11
  4. Réponses: 3
    Dernier message: 19/04/2010, 16h18
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo