Oppure

Loading
26/06/08 13:07
alebird
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.
aaa
26/06/08 15:16
gantonio
Ma quando riapri il programma, il codice che legge e ripresenta i dati nella listbox, l'hai gia' scritto?
aaa
26/06/08 15:34
Louis
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:
Option Explicit
'--------------------------------------------------------------
Private Sub Form_Load()

' Carica la ListBox:
    List1.AddItem "Prova1"
    List1.AddItem "Prova2"
    List1.AddItem "Prova3"

End Sub
' --------------------------------------------------------------
Private Sub Esci_Salva_Click()
    
    If List1.ListCount = 0 Then MsgBox "Attenzione la lista è vuota." & Chr(13) _
        & "Per salvare è necessario almeno un elemento!": Exit Sub

    With CommonDialog1
        .Flags = cdlOFNHideReadOnly
        .DialogTitle = "Salva la lista"
        .Filter = "Text Files|*.txt|All Files|*.*"
        .FileName = "Prova.txt"
        .ShowSave
        
        Call SalvaLista(.FileName)
    End With
End Sub
' --------------------------------------------------------------
' Salva il contenuto della ListBox in un file di testo:
Sub SalvaLista(xPath As String)

    Dim FileNum As Integer, ListCount As Integer
    
    FileNum = FreeFile()
    
    Open xPath For Output As #FileNum
        For ListCount = 0 To Form1.List1.ListCount - 1
            Print #FileNum, Form1.List1.List(ListCount)
            DoEvents
        Next ListCount
    Close #FileNum

End Sub


Il codice l'ho testato ed è funzionante. :k:
aaa
26/06/08 16:33
Louis
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:
' Apre il file di testo e carica la ListBox:
Private Sub CmdLoad_Click()
    
    Dim FileTitle As String

' Pulisce la ListBox:
    If Form1.List1.ListCount > 0 Then Form1.List1.Clear
    
' Apre il file:
    With Form1.CommonDialog1
        .DialogTitle = "Selezionare il file da aprire"
        .Flags = cdlOFNNoChangeDir
        .Filter = "Text Files|*.txt|All Files|*.*"
        .FilterIndex = 1
        .DefaultExt = "txt"
        .ShowOpen
        FileTitle = Form1.CommonDialog1.FileTitle
   
        Call CaricaFile(App.Path & "\" & FileTitle)
    End With

End Sub
' --------------------------------------------------------------
' Apre/Carica il file:
Sub CaricaFile(xPath As String)
    
    Dim OurBuffer As String
    
    If Dir(xPath) = "" Then MsgBox "Attenzione il file non è presente! ", vbCritical, "Errore - file non trovato.": Exit Sub
    
    FileNum = FreeFile()
                     
    Open xPath For Input As #FileNum
        Do While Not (EOF(FileNum) = True)
            Line Input #FileNum, OurBuffer
            'Qualora la linea è vuota non deve inserirla - salta:
            If Len(OurBuffer) = 0 Then GoTo JumpAdd
            Form1.List1.AddItem OurBuffer
JumpAdd:
            DoEvents
        Loop
    Close #FileNum

End Sub
aaa
26/06/08 16:43
alebird
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
aaa
26/06/08 17:03
gantonio
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 ....
aaa