Autore Topic: Gestione dei file di testo  (Letto 3115 volte)

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Gestione dei file di testo
« il: 06 Febbraio 2009, 17:09:50 »
Ciao a tutti, ho ancora bisogno di consigli, sto cercando di salvare una matrice in un file di testo cercando sulle guide e con quello che ricordo sono riuscito a scrivere questo:

PUBLIC anag1 AS String[300]

PUBLIC SUB Salva()
  DIM i AS Integer
  DIM af AS File
   af = OPEN "ff" FOR OUTPUT
    FOR i = 1 TO 300
      PRINT #af, anag1
    NEXT
   CLOSE #af
END

Ma quando eseguo mi appare un errore: access forbidden sulla riga "open"
Qualche consiglio? grazie ciao

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #1 il: 06 Febbraio 2009, 17:19:11 »
io per salvare una matrice faccio:

PUBLIC SUB Salva()
DIM i AS Integer
DIM stringa AS string


 FOR i = 1 TO 300

   stringa=stringa & anag1 & "\n"

 NEXT
file.save("percorso e nome file",stringa)

END

in questo modo io mi trovo meglio

per caricare la matrice dal file invece:


PUBLIC SUB carica()
DIM i AS Integer
DIM stringa AS string


 DIM stringa AS String


  stringa = File.Load("percorso e nome file")
  anag1 = Split(stringa, "\n", "", TRUE)

END

Offline madnessmike

  • Gamberetto
  • *
  • Post: 43
    • Mostra profilo
    • MadnessBlog
Re: Gestione dei file di testo
« Risposta #2 il: 06 Febbraio 2009, 17:58:26 »
Curiosità:
Ma il comando File.Save salva sovrascrivendo il precedente file, o c'è possibilità di accodarlo senza bisogno di fare ad esempio:

Codice: [Seleziona]

stringa=File.load("nomefile")
stringa &= RobaDaAccodare
File.Save("nomefile", stringa)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Gestione dei file di testo
« Risposta #3 il: 06 Febbraio 2009, 19:23:13 »
Durante la dichiarazione di OPEN se metti APPEND aggiunge dati in fondo al file, se metti CREATE cancella il file se esiste prima di scriverci:
Codice: [Seleziona]

OPEN file FOR OUTPUT [CREATE|APPEND]
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #4 il: 06 Febbraio 2009, 22:03:40 »
I metodi: File.Load() e File.Save() sono metodi generici, fatti per eseguire la lettura e la scrittura in un'unica soluzione, senza passare dal via... :-)
Molto utili per operazioni veloci, e dove non è necessario un controllo più particolareggiato.

Le operazioni più complesse, ovvero l'inserimento di testo (o binario), in un file esistente, deve essere fatto usando comandi più a basso livello, come OPEN, READ e WRITE. Le opzioni che è possibile aggiungere a questi comandi, sono fatte apposta per determinare il comportamento delle operazioni sul file.

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #5 il: 07 Febbraio 2009, 11:30:58 »
Visto che il salvataggio sarà più complesso di come sto provando, preferirei utilizzare il metodo "tradizionale"

Premetto che il file "ff" non esiste e avevo già provato ad aggiungere "CREATE"
ma l'errore rimane uguale.

ciao ivo

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #6 il: 07 Febbraio 2009, 12:35:10 »
Prova ad indicare esattamente la path del file di destinazione; è probabile che il tentativo di scrittura avvenga nella root del sistema, o in qualche directory non accessibile in scrittura.
E' necessario fare attenzione a questa cosa, e avere l'accortezza di verificare prima dove l'applicazione stà puntando al momento; la classe Application ha dei metodi per verificare questo.

  • Visitatore
Re: Gestione dei file di testo
« Risposta #7 il: 07 Febbraio 2009, 17:37:22 »
Io di solito faccio così
PUBLIC anag1 AS String[300]
PUBLIC SUB Salva()
DIM i AS Integer
DIM af AS File
OPEN "/percorso/file.txt" FOR READ WRITE CREATE as #af
FOR i = 1 TO 300
dato = anag & gb.newline 'ti serve andare a capo ? omettilo se non serve
WRITE #af , dato , len(dato)  ' si fà così ,da guida, se no dà file troncato quando lo apri
NEXT
CLOSE #af
END

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Gestione dei file di testo
« Risposta #8 il: 07 Febbraio 2009, 17:44:08 »
usa i tag (code) sennò i messaggi letti così sembrano liste della spesa.

  • Visitatore
Re: Gestione dei file di testo
« Risposta #9 il: 07 Febbraio 2009, 18:54:33 »
intendi con il codice tutto bello colorato come in gambas ? Non so come fare ,,,,,

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Gestione dei file di testo
« Risposta #10 il: 07 Febbraio 2009, 23:37:21 »
Per inserire del codice, inseriscilo fra i tag
Codice: [Seleziona]
 e 
.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Gestione dei file di testo
« Risposta #11 il: 08 Febbraio 2009, 00:18:14 »
Citazione

giac_fab ha scritto:
intendi con il codice tutto bello colorato come in gambas ? Non so come fare ,,,,,


O fai come dice Leo o più semplicemente evidenzi il codice e poi clicchi sul tasto in alto...il terzo dopo il tastino per scegliere le emoticons (faccine) da inserire nelle tue risposte ai post...( Quello così: <>)

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #12 il: 09 Febbraio 2009, 11:16:31 »
OK scrivendo per esteso il percorso funziona, Grazie mille Ivo

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #13 il: 05 Gennaio 2012, 15:36:47 »
Ciao, allora, io provo a fare in questo modo:
Codice: [Seleziona]
file.Save(user.home & "/lastcheck.txt", "<dt><font color=" "#FFFFFF" ">" & Time(Now) & " (last check)</dt>") 
file.Save(MntFolder & "/lastcheck.txt", "<dt><font color=" "#FFFFFF" ">" & Time(Now) & " (last check)</dt>")

Nel primo caso salvo il file sull'hard disk, e funziona.
Nel secondo caso, io ho montato una directory su un disco in rete, ma mi dice "access forbidden".
Suppongo ci sia qualche problema con autorizzazioni e permessi, giusto?

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Gestione dei file di testo
« Risposta #14 il: 06 Gennaio 2012, 14:16:07 »
esatto , non hai i permessi per scrivere in quella posizione