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:
Il codice l'ho testato ed è funzionante.
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.
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
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 ....
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