Originariamente inviato da Pirelli72
Diciamo che stai sbagliando il metodo.
Il mio consiglio è quello si di creare una struttura come hai fatto, popolare un'arrayList con la/le strutture create e serializzare il tutto. In questo modo non hai il problema dell'accodamento del file e non hai il problema di recuperare le password quando deserializzi.

Quindi:

codice:
 Dim myList As New ArrayList

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

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

    Sub AddItem()
        Dim myPWD As New PWD("mioProgramma", "MioUsername", "miaPassword")
        myList.Add(myPWD)
        myPWD = New PWD("mioProgramma2", "MioUsername2", "miaPassword2")
        myList.Add(myPWD)
        myList.TrimToSize()
        Dim stream As FileStream = File.Open("C:\mioFile.bin", FileMode.Create)
        Dim formatter As New BinaryFormatter()
        formatter.Serialize(stream, myList)
        stream.Close()
    End Sub

Quando recuperi:

è
codice:
   Sub Deserialize()
        Dim lista As ArrayList
        Dim stream As FileStream = File.Open("C:\mioFile.bin", FileMode.Open)
        Dim formatter As New BinaryFormatter()
        lista = formatter.Deserialize(Stream)
        stream.Close()
    End Sub

Scusa per la frettolosità del codice.
grazie mille per l'esempio

solo che non ho capito una cosa sul "recupero"

ok apro il file, deserializzo con il codice che mi hai scritto...e poi?

come effettuo la ricerca su uno dei campi ?

scusa ma ho appena messo mani sul vb.net


Originariamente inviato da gibra
Hai aperto il tuo file bin? Non credo...
A parte il fatto che vengono incluse informazioni inerenti al progetto sorgente (e ripetute per ogni aggiunta, e che non servono a niente) le informazioni sono scritte 'in chiaro' .
Io preferisco usare una Hashtable ed un FileStream (al posto del MemoryStream), come indicato qui:

http://msdn.microsoft.com/it-it/libr...inaryformatter(VS.80).aspx?ppud=4


Comunque sarebbe più corretto usare la crittografia, visto il tipo di informazioni che registri:
http://www.devx.com/codemag/Article/16747

grazie mille anche a te

ottimo il suggerimento sulla critto, prima xò credo che debba imparare a farlo in chiato e appena ci risco lo faccio con la crittografia che è molto importante!!