Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - salvare\caricare collection
Forum - Visual Basic 6 - salvare\caricare collection

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
salve ragazzi....
sono alle mie prime esperienze con la collection, mi sono chiari i metodi add ,item,remove,count e for each....
il problema m si presenta quando vado a salvare la collection su file, supponiamo di testo, per poi poterla carichare al prossimo avvio del programma....

per salvare la collection e poi caricarla faccio cosi'

Codice sorgente - presumibilmente VB.NET

  1. Dim insieme As New Collection
  2.  Dim parola(0 To 3) As Variant
  3.  
  4.  Private Function fun(tag As String)
  5.   Dim file(0 To 5) As String
  6.   Dim dati(0 To 5) As String
  7.  
  8.   If tag = "salva collection" Then
  9.      file(0) = App.Path & "\text.txt"
  10.      Open file(0) For Binary Access Write As #2
  11.         For Each parola(2) In insieme
  12.             Put 2, , parola(2)
  13.         Next parola(2)
  14.      Close #2
  15.      
  16.   ElseIf tag = "carica collection" Then
  17.      file(1) = App.Path & "\text.txt"
  18.      Open file(1) For Input As #1
  19.         Do While Not EOF(1)
  20.            Line Input #1, dati(0)
  21.            insieme.Add dati(0)
  22.         Loop
  23.      Close #1
  24.   End If
  25.  end function



quando vado a caricare il file mi carica tutto su una stessa riga......ho provato anche a splittare , ma necessito di un ciclo for che preferirei non usare in quanto lento se si parla di migliaia di elementi.....
se avete quache suggerimento ben volentieri.....

Ultima modifica effettuata da il 11/02/2009 alle 7:52
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 9:14
Mercoledì, 11/02/2009
Per scrivere devi usare la

Print #

e per leggere la

Line Input #

Per la lettura il ciclo while e' sufficiente.

La velocità non sarà mai elevata, dato che le collection non sono veloci e per molti elementi non ci sono tante soluzioni ...

Inoltre, non capisco nel tuo codice perche' usi tutti quei vettori e perche' usi dei Variant ...

Ultima modifica effettuata da theprogrammer il 11/02/2009 alle 9:16
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:13
Mercoledì, 11/02/2009
grazie mille ho usato print ed e' cambiato parecchio il discorso....

nuovo codice.....

Codice sorgente - presumibilmente VB.NET

  1. Private Function fun(tag As String)
  2.   Dim file(0 To 5) As String
  3.   Dim dati(0 To 5) As String  
  4.  
  5.   If tag = "salva collection" Then
  6.      file(0) = App.Path & "\text.txt"
  7.      Open file(0) For Output As #1
  8.         For Each parola(2) In insieme
  9.             'Put 2, , parola(2)
  10.             Print #1, parola(2); " "
  11.         Next parola(2)
  12.      Close #1
  13.      
  14.   ElseIf tag = "carica collection" Then
  15.      file(1) = App.Path & "\text.txt"
  16.      Open file(1) For Input As #1
  17.         Do While Not EOF(1)
  18.            Line Input #1, dati(0)
  19.            insieme.Add dati(0)
  20.         Loop
  21.      Close #1
  22.   End If
  23. End Function



mi chiedevi perche' uso
  Dim file(0 To 5) As String
  Dim dati(0 To 5) As String
perche' facendo cosi' non occorre che crei nuovi nomi di variabili, uso una stessa variabile numerandola, anche perche' creando una matrice di funzioni devo dichiarare le variabili all'inizio.....

Ultima modifica effettuata da il 11/02/2009 alle 19:23
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:39
Mercoledì, 11/02/2009
Continuo a non capire perche' tu debba creare piu' variabili e non utilizzare sempre le stesse ...

Ma hai compreso come si usano le variabili in VB?

Ti consiglio di rivedere i primi capitoli di un libro di programmazione ...

PM Quote