Originariamente inviato da Pirelli72
Hai in mano un'arrayList popolato con le tue strutture, quindi se devi trovare la password per un programma non puoi fare altro che usare un ciclo For..next, esempio:




Il problema della sicurezza rimane comunque anche nel caso che ti ho proposto, bisogna dire che le password e le Username NON sono in chiaro ma il problema rimane, se prende in mano il file qualcuno che capisce qualcosa di programmazione (e di serializzazione degli oggetti), capisce subito che si tratta di una serializzazione di un'Arralist e a quel punto potrebbe deserializzare e ricavarne le strutture.

Grandioso grazie mille

ora mi manca solo l'ultimo pezzo!!

dopo aver effettuato la ricerca dovrei poter modificare e salvare
e dopo aver ricercato dovrei poter eliminare il "programma" quindi tutto ciò che è a lui associato (username e pwd)

come faccio?

ti posto il codice che ho adattato:


codice:
Imports System.IO
Imports System.Collections
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Runtime.Serialization

Public Class Form1


    Dim myList As New ArrayList

    <Serializable()> _
    Structure PWD
        Dim Programma As String
        Dim Username As String
        Dim Password As String
        Dim Note As String


        Sub New(ByVal programma As String, ByVal username As String, ByVal password As String, ByVal note As String)
            Me.Programma = programma
            Me.Password = password
            Me.Username = username
            Me.Note = note
        End Sub
    End Structure


    Sub AddItem()

        Dim myPWD As New PWD(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text)
        myList.Add(myPWD)
        myPWD = New PWD(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text)
        myList.Add(myPWD)
        myList.TrimToSize()
        Dim stream As FileStream = File.Open(Application.StartupPath & "\prova.bin", FileMode.Create)
        Dim formatter As New BinaryFormatter()
        formatter.Serialize(stream, myList)
        stream.Close()

    End Sub

    Sub Deserialize()

        Dim lista As ArrayList
        Dim stream As FileStream = File.Open(Application.StartupPath & "\prova.bin", FileMode.Open)
        Dim formatter As New BinaryFormatter()
        lista = formatter.Deserialize(stream)
        Dim mystruc As PWD = Find(ComboBox1.Text, lista)

        TextBox1.Text = mystruc.Programma
        TextBox2.Text = mystruc.Username
        TextBox3.Text = mystruc.Password
        TextBox4.Text = mystruc.Note

        stream.Close()

    End Sub

    Function Find(ByVal programma As String, ByVal lista As ArrayList) As PWD
        Dim mystruc As PWD
        For i As Integer = 0 To lista.Count - 1
            mystruc = CType(lista(i), PWD)

            If ComboBox1.Items.Contains(mystruc.Programma) = False Then ComboBox1.Items.Add(mystruc.Programma)

            If mystruc.Programma = programma Then Return mystruc

        Next
    End Function


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Deserialize()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        AddItem()

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ComboBox1.Items.Add(" ")
        Call Button2_Click(sender, e)

    End Sub
End Class



Grazie ancora