un modo semplice per creare un file di testo è questo:
dim s as string
s= "testo prova"
file.save(s, user.home & "/prova.txt")
per leggerlo:
dim s as string
s= file.load(user.home & "/prova.txt")
textarea1.text=s
poi esite un modo utilizzando gli strem e le funzini oPEN READ, ma lacio che te le spieghi chi le usa + di me :)
se avviando il progetto da gambas il codice criede di creare un file nella home, esso può essere gestito in fase di collaudo del programma??
grazie in anticipo
che intendi?
ciao
Per creare un file, con qualunque estensione:
Dim filepws As File
filepws = Open Application.Path & "/miofile.dat" For Create 'per creare file
Print #filepws, TextBox2.Text 'metodo print per scrivere nel file appena creato
Close #filepws
per leggere in modo sequenziale un file
Dim fileurl As File
Dim dato As String
ListBox1.Clear
fileurl = Open Application.Path & "/miofile.dat" For Input
While Not Eof(fileurl)
Line Input #fileurl, dato
ListBox1.Add(dato)
Wend
Close #fileurl
per aggiungere al file un stringa dati
Dim fileurl As File
fileurl = Open Application.Path & "/link.dat" For Append ' aggiungere una stringa
Print #fileurl, TextBox1.Text
Close #fileurl
un modo semplice per creare un file di testo è questo:
dim s as string
s= "testo prova"
file.save(s, user.home & "/prova.txt")
Mi permetto, solo ai fini di non lasciare l'errore materiale di scambio di posizioni, di segnalare che - appunto - i parametri della funzione ''.Save()'' vanno invertiti:
File.Save(FileName As String, Data As String )
Simo97 si lamenta che Line Input gli legge solo l'ultima riga.
Con Read il file viene letto in maniera binaria e scritto così com'è nella stringa, magari potrebbe funzionare.
Capisco... ma ritengo che il problema sia nell'assegnazione dei dati alla TextArea. Nel senso che dovrebbe assegnare alla TextArea quel che già è stato assegnato alla TextArea medesima + la nuova riga di dati letti da inserire:
TextArea1.Text = TextArea1.Text & nuova_riga_letta_da_inserire
ok ora non fate a botte :rotfl:
il problema è che con questo
dim tx as sting
t = TextBox1.Text
txt = Open Application.Path & "/dati/" & t & ".dat" For Input
While Not Eof(txt)
Line Input #txt, tx
TextArea1.Text = tx
Wend
Close #txt
mi carica solo l'ultima riga del file :-\
ora provo :coder:
Il codice legge una riga alla volta.
Assegna il valore letto ad una proprieta' della textarea, ad ogni riga.
Chiaro che rimane solo l'ultima.
Quindi devi usare una variabile di appoggio dove "sommare" il tutto e solo alla fine settare il valore della textarea.
Concordo con pastrano, per questo ti avevo suggerito, volendo usare Line Input, di assegnare ogni riga alla TextArea così in base al tuo esempio:
......
While Not Eof(txt)
Line Input #txt, tx
TextArea1.Text = TextArea1.Text & tx
Wend
......
Chiaro che con file.load() faresti prima e meglio.
Concordo pienamente anche su questo. :)
ho risolto così
dim txt as file 'il file
dim t,tx as string 'il percorso e il testo
t = TextBox1.Text
txt = Open Application.Path & "/dati/" & t & ".dat" For Read
Read #txt, tx, Lof(txt)
TextArea1.Text = tx
Close #txt
datemi un parere... :2birre: