Autore Topic: Come scrivere su file .txt  (Letto 1551 volte)

Offline Michy9393

  • Gran Maestro dei Gamberi
  • *****
  • Post: 570
  • Ubuntu: Linux for Human Beings
    • Mostra profilo
Come scrivere su file .txt
« il: 11 Novembre 2013, 15:53:27 »
Salve a tutti,
dopo tanto tempo eccomi con una nuova domanda...Come faccio a scrivere su un file .txt con Gambas?  ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 13 Novembre 2013, 00:09:50 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 Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #2 il: 12 Novembre 2013, 00:13:17 »
No, gli attacca direttamente la ceskhonite senza passare dal via. ;D
Scherzi a parte, c'è un esempio del wiki che non ho capito bene:

Codice: [Seleziona]
While Not Eof(fl)
   Read #fl, s$, -256
' Mostra il contenuto della variabile s$ in una "TextArea":
   TextArea1.Text = TextArea1.Text & s$ & "\n"
  Wend

Quel -256 che significa?
« Ultima modifica: 12 Novembre 2013, 00:17:42 da Top Fuel »
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 Michy9393

  • Gran Maestro dei Gamberi
  • *****
  • Post: 570
  • Ubuntu: Linux for Human Beings
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #3 il: 12 Novembre 2013, 08:09:02 »
Grazie!
Eppure ho cercato con il cerca nel forum  :-\

Offline splugenbrau

  • Grande Gambero
  • ***
  • Post: 205
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #4 il: 12 Novembre 2013, 09:20:10 »
Buon giorno Michy9393, Top Fuel, vuott,

Citazione
Read #fl, s$, -256

#fl    -> il file.
s$     -> la stringa
-256  -> il numero di caratteri da leggere dall'inizio della stringa

solamente che, quando il numero è negativo non dovrebbe copiare proprio nulla!
ho visto il link: http://gambasdoc.org/help/lang/write
ciao.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #5 il: 12 Novembre 2013, 12:46:53 »
solamente che, quando il numero è negativo non dovrebbe copiare proprio nulla!
ho visto il link: http://gambasdoc.org/help/lang/write

Ciao,
...però lì si parla di Write in Gambas 2. Tra l'altro con Gambas 3 la specificazione di un numero negativo, come terzo elemento della sintassi di Write nella scrittura di una stringa, non inficia la scrittura dell'intera stringa.

   https://gambaswiki.org/wiki/lang/write

Per quel che riguarda Read, invece, circa la specificazione in Gambas 3 di un numero negativo nel terzo elemento sintattico (numero di byte di legge per volta) la documentazione ufficiale dice:
" If Length is negative, then at most (- Length) bytes are read until the end of the stream. "

   https://gambaswiki.org/wiki/lang/read

In sostanza, verrà letta una quantità di byte per volta, indicata dal valore -n in 8bit, comunque di fatto non eccedente la fine del file, evitando così l'errore "End of file".
La combinazione di quel valore negativo con il ciclo While...Wend consente di leggere l'intero file senza provocare quell'errore di fine file.
« Ultima modifica: 24 Ottobre 2021, 16:27:39 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 splugenbrau

  • Grande Gambero
  • ***
  • Post: 205
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #6 il: 12 Novembre 2013, 14:59:27 »
Chiedo venia :-\
ho fatto la ricerca per WRITE anzichè per READ,
e per di più m'è apparsa la pagina della versione 2.0

Offline baldi96

  • Gamberetto
  • *
  • Post: 19
  • zZzZzZzZzZzZzZzZz
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #7 il: 18 Novembre 2013, 18:28:50 »
Ciao a tutti...
Io per scrivere su un file di testo uso il metodo File.Save(filepath,data) e file.load(filepath) per leggerelo.
combinando i due metodi posso aggiungere una stringa a un file gia esistente: file.save(filepath, file.load(filepath) & "\n" & data)
"Disobedience, in the eyes of anyone who has read history, is man's original virtue. It is through disobedience and rebellion that progress has been made."
-- Oscar Wilde, The Soul of Man Under Socialism

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: Come scrivere su file .txt
« Risposta #8 il: 18 Novembre 2013, 23:21:31 »
Come faccio a scrivere su un file .txt con Gambas?  ;D

Io ero per proporre una cosa come questa, ovviamente con i dovuti controlli d'errore (se invece che sub fai una function e ritorni un valore a seconda che ci siano stati errori o meno, puoi gestirti ancora meglio)... ci sono svantaggi e vantaggi nell'usare una routine magari anche complessa per scrivere i file: ovvero, i primi possono essere un rallentamento, nel caso di uso di molti file (e per molti da potersene accorgere non intendo cento, ma almeno un paio di ordini di grandezza in piu'), mentre i secondi sono una sicurezza e una semplificazione, visto che ti risparmi di fare check ad ogni salvataggio.

Codice: [Seleziona]
Public Sub ScriviFile(nomefile As String, testo As String, aggiungi As Boolean)
Dim f As Stream
 
    If aggiungi = False Then
        If Exist(nomefile) = True Then
          Try Kill nomefile
        Endif
        f = Open nomefile For Create
    Else
        If Exist(nomefile) = True Then
             f = Open nomefile For Append
        Else
          f = Open nomefile For Create
        Endif
    Endif

        Print #f, testo
    Close #f
End