Autore Topic: ["risolto"(...)]creare e gestire un file di testo  (Letto 3959 volte)

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
["risolto"(...)]creare e gestire un file di testo
« il: 14 Aprile 2013, 18:43:16 »
vorrei sapere come creare un file in un dato percorso e leggerne i dati etc..
dalla wiki non ho capito molto purtroppo.. ???

e un altra cosa
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
« Ultima modifica: 16 Aprile 2013, 15:17:28 da simo97 »
;D

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #1 il: 14 Aprile 2013, 18:53:00 »
un modo semplice per creare un file di testo è questo:

Codice: [Seleziona]
dim s as string

s= "testo prova"

file.save(s, user.home  & "/prova.txt")


per leggerlo:


Codice: [Seleziona]
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 :)



Citazione
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?

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #2 il: 14 Aprile 2013, 19:24:23 »
grazie mille  :ok:

comunque intendevo se in fase di progettazione(quindi il programma parte da gambas con esegui)
e tipo un pulsante crea un file di testo sulla home una volta chiuso il programma il file rimane o viene cancallato oppure non viene neppure crealto era questo il dubbio...
;D

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #3 il: 14 Aprile 2013, 19:31:08 »
ho provato il codice per creare il txt in un pulsante ma mi da "not an object"

ho modificato un pò e mi da "access forbidden"
(ora ho capito... il programma non può creare file nella home ma solo nella sua cartella) :ciao:

 :hatecomputer: non ci sto capendo niente...
« Ultima modifica: 14 Aprile 2013, 22:49:06 da simo97 »
;D

Offline naderit

  • Grande Gambero
  • ***
  • Post: 140
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #4 il: 14 Aprile 2013, 20:52:34 »
ciao
Per creare un file, con qualunque estensione:

Codice: gambas [Seleziona]

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

Codice: gambas [Seleziona]

 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

Codice: gambas [Seleziona]

Dim fileurl As File

fileurl = Open Application.Path & "/link.dat" For Append ' aggiungere una stringa
Print #fileurl, TextBox1.Text
Close #fileurl




Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #5 il: 14 Aprile 2013, 21:08:09 »
benissimo grazie a tutti :ciao:
ora funziona!!
se avrò altro da chiedere (molto probabilmente...) chiederò qui  ;D
;D

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #6 il: 14 Aprile 2013, 22:41:25 »
per l'assunzione dei dati lidevo inserire in una text area ma ho notato che mi carica solo l'ultima riga del file
come posso caricare tutto il file così com'è(mantenendo gli invii) e trasferirlo in una text area??
« Ultima modifica: 14 Aprile 2013, 22:46:21 da simo97 »
;D

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #7 il: 14 Aprile 2013, 23:05:59 »
Prova ad usare l'istruzione READ al posto di Line Input, una cosa tipo:

Stringa = Read #Nomefile As String

Per poi copiarla nella TextArea.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #8 il: 14 Aprile 2013, 23:15:00 »
un modo semplice per creare un file di testo è questo:

Codice: [Seleziona]
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:

Codice: gambas [Seleziona]

   File.Save(FileName As String, Data As String )
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #9 il: 14 Aprile 2013, 23:49:38 »
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.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #10 il: 14 Aprile 2013, 23:55:05 »
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:
Codice: gambas [Seleziona]

 TextArea1.Text = TextArea1.Text & nuova_riga_letta_da_inserire
« Ultima modifica: 15 Aprile 2013, 00:01:55 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #11 il: 15 Aprile 2013, 15:43:39 »
ok ora non fate a botte :rotfl:
il problema è che con questo
Codice: [Seleziona]
 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:
« Ultima modifica: 15 Aprile 2013, 15:48:11 da simo97 »
;D

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #12 il: 15 Aprile 2013, 16:10:40 »
mi carica solo l'ultima riga del file :-\

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. Chiaro che con file.load() faresti prima e meglio.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #13 il: 15 Aprile 2013, 16:39:01 »
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:
Codice: gambas [Seleziona]

......
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.  :)
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline simo97

  • Gran Maestro dei Gamberi
  • *****
  • Post: 501
    • Mostra profilo
Re: creare e gestire un file di testo
« Risposta #14 il: 15 Aprile 2013, 18:00:59 »
ho risolto così
Codice: [Seleziona]
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:
;D