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 il contenuto di un listbox alla chiusura del form
Forum - Visual Basic 6 - Salvare il contenuto di un listbox alla chiusura del form

Avatar
alebird (Normal User)
Pro


Messaggi: 67
Iscritto: 05/10/2007

Segnala al moderatore
Postato alle 15:07
Giovedì, 26/06/2008
Ho creato un programma ora l'ultimo codice che mi serve e quello di salvare il contenuto di un listbox quando clico su un commandButton il commandbutton si chiama esci & salva cosi quando si riapre il programma nel listbox escono tutte le cose che c'erano prima di chiudersi..:k:
grazie in anticipo.

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 17:16
Giovedì, 26/06/2008
Ma quando riapri il programma, il codice che legge e ripresenta i dati nella listbox, l'hai gia' scritto?

PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 17:34
Giovedì, 26/06/2008
Ciao alebird,
come ti ha già detto gantonio devi predisporre il codice per aprire il file; io ti ho preparato quello che serve per salvare il file, sulla falsa riga e con le dovute differenze, predisporrai il codice di cui sopra:
Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. '--------------------------------------------------------------
  3. Private Sub Form_Load()
  4.  
  5. ' Carica la ListBox:
  6.     List1.AddItem "Prova1"
  7.     List1.AddItem "Prova2"
  8.     List1.AddItem "Prova3"
  9.  
  10. End Sub
  11. ' --------------------------------------------------------------
  12. Private Sub Esci_Salva_Click()
  13.    
  14.     If List1.ListCount = 0 Then MsgBox "Attenzione la lista è vuota." & Chr(13) _
  15.         & "Per salvare è necessario almeno un elemento!": Exit Sub
  16.  
  17.     With CommonDialog1
  18.         .Flags = cdlOFNHideReadOnly
  19.         .DialogTitle = "Salva la lista"
  20.         .Filter = "Text Files|*.txt|All Files|*.*"
  21.         .FileName = "Prova.txt"
  22.         .ShowSave
  23.        
  24.         Call SalvaLista(.FileName)
  25.     End With
  26. End Sub
  27. ' --------------------------------------------------------------
  28. ' Salva il contenuto della ListBox in un file di testo:
  29. Sub SalvaLista(xPath As String)
  30.  
  31.     Dim FileNum As Integer, ListCount As Integer
  32.    
  33.     FileNum = FreeFile()
  34.    
  35.     Open xPath For Output As #FileNum
  36.         For ListCount = 0 To Form1.List1.ListCount - 1
  37.             Print #FileNum, Form1.List1.List(ListCount)
  38.             DoEvents
  39.         Next ListCount
  40.     Close #FileNum
  41.  
  42. End Sub



Il codice l'ho testato ed è funzionante. :k:

PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 18:33
Giovedì, 26/06/2008
Mah, il codice per aprire il file e caricare la ListBox ha delle complicazioni; ti posto la prova che ho eseguito, con l'uso della CommonDialog, sembra funzionare:
Codice sorgente - presumibilmente Delphi

  1. ' Apre il file di testo e carica la ListBox:
  2. Private Sub CmdLoad_Click()
  3.    
  4.    Dim FileTitle As String
  5.  
  6. ' Pulisce la ListBox:
  7.     If Form1.List1.ListCount > 0 Then Form1.List1.Clear
  8.    
  9. ' Apre il file:
  10.    With Form1.CommonDialog1
  11.        .DialogTitle = "Selezionare il file da aprire"
  12.        .Flags = cdlOFNNoChangeDir
  13.        .Filter = "Text Files|*.txt|All Files|*.*"
  14.        .FilterIndex = 1
  15.        .DefaultExt = "txt"
  16.        .ShowOpen
  17.        FileTitle = Form1.CommonDialog1.FileTitle
  18.  
  19.        Call CaricaFile(App.Path & "\" & FileTitle)
  20.    End With
  21.  
  22. End Sub
  23. ' --------------------------------------------------------------
  24. ' Apre/Carica il file:
  25. Sub CaricaFile(xPath As String)
  26.    
  27.    Dim OurBuffer As String
  28.    
  29.    If Dir(xPath) = "" Then MsgBox "Attenzione il file non è presente! ", vbCritical, "Errore - file non trovato.": Exit Sub
  30.    
  31.    FileNum = FreeFile()
  32.                    
  33.    Open xPath For Input As #FileNum
  34.        Do While Not (EOF(FileNum) = True)
  35.            Line Input #FileNum, OurBuffer
  36.            'Qualora la linea è vuota non deve inserirla - salta:
  37.             If Len(OurBuffer) = 0 Then GoTo JumpAdd
  38.             Form1.List1.AddItem OurBuffer
  39. JumpAdd:
  40.             DoEvents
  41.         Loop
  42.     Close #FileNum
  43.  
  44. End Sub


PM Quote
Avatar
alebird (Normal User)
Pro


Messaggi: 67
Iscritto: 05/10/2007

Segnala al moderatore
Postato alle 18:43
Giovedì, 26/06/2008
grazie a tutti ma. . .
praticamente il mio programma  e una rubrica non posso far caricare i dati quando apro il programma... perche i dati si aggiungono quando la persona inserisce i numeri di telefono e clicca su un comandbutton percio io non so che dati aggiungere perche non li aggiungo io i dati.
:-| Non so se mi sono spiegato bene. . .cmq ancora grazie

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 19:03
Giovedì, 26/06/2008
No ... non ti sei spiegato ...

Scusa ma riassumo alcuni punti:

1) la tua e' una rubrica di nomi e telefoni

2) inserisci i nomi e i telefoni

3) quando il programma termina li salvi su disco

Ora viene naturale che il programma, quando riparte, si riprenda in memoria i numeri e i nomi e quindi li legga dal file ....

PM Quote