Differenze tra le versioni di "Scrivere un file di testo"
(Creata pagina con 'In questa pagina distingueremo fra scrivere un file di testo ''ex novo'' e scrivere dati di testo all'interno di un file di testo già esistente. Un file di testo è un file ...') |
|||
(10 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | In questa pagina | + | In questa pagina mostreremo alcune modalità per scrivere un file di testo ''ex novo''. |
Un file di testo è un file , comprensibile alla lettura a vista dell'utente, contenente caratteri ''stampabili'' e/o anche alcuni caratteri ''non stampabili'' (ritorno a capo, tabulazione, etc). La codifica più comune dei file di testo è la corrispondenza fra numero e carattere data dal codice [http://it.wikipedia.org/wiki/ASCII ASCII]. | Un file di testo è un file , comprensibile alla lettura a vista dell'utente, contenente caratteri ''stampabili'' e/o anche alcuni caratteri ''non stampabili'' (ritorno a capo, tabulazione, etc). La codifica più comune dei file di testo è la corrispondenza fra numero e carattere data dal codice [http://it.wikipedia.org/wiki/ASCII ASCII]. | ||
Riga 5: | Riga 5: | ||
==Scrivere un file di testo== | ==Scrivere un file di testo== | ||
− | Per scrivere un file di testo ''ex novo'' si | + | Per scrivere un file di testo ''ex novo'' si potranno utilizzare il Metodo ".Save()" della Classe ''File'', nonché le istruzioni ''Write'' e ''Print''. |
− | ===Uso | + | ===Uso del Metodo ".Save()" della Classe ''File''=== |
− | In Gambas la modalità più semplice per scrivere un file ''a rappresentazione stringa'', ossia un file di testo, è l'uso | + | In Gambas la modalità più semplice per scrivere un file ''a rappresentazione stringa'', ossia un file di testo, è l'uso del Metodo "'.Save()" della Classe ''File'': |
− | File.Save("''/percorso/del/file/di/testo/da/salvare''", "''dati stringa da salvare''") | + | File.Save("<FONT color=darkgreen>''/percorso/del/file/di/testo/da/salvare''</font>", "''dati stringa da salvare''") |
− | Nel primo argomento verrà indicato il percorso ed il nome del nuovo file di testo che si viene a creare. Il secondo argomento, invece, contiene i dati da salvare e che costituiranno il file di testo. Tali dati sono, ovviamente, dati di tipo stringa. | + | Nel primo argomento verrà indicato il percorso ed il nome del nuovo file di testo che si viene a creare. Il secondo argomento, invece, contiene i dati da salvare e che costituiranno il file di testo. Tali dati sono, ovviamente, dati di tipo stringa, ossia normali caratteri. |
<BR>Esempio: | <BR>Esempio: | ||
− | + | Public Sub Main() | |
Dim s As String = "Testo qualsiasi" | Dim s As String = "Testo qualsiasi" | ||
− | + | File.Save("/tmp/nomefile1", "testo qualsiasi") | |
− | + | File.Save("/tmp/nomefile2" , s) | |
− | + | End | |
===Uso dell'istruzione ''Write''=== | ===Uso dell'istruzione ''Write''=== | ||
− | Usando la funzione ''[[ | + | Usando la funzione ''[[Write]]'' in Gambas 3, sarà sufficiente specificare come suo secondo parametro il testo da scrivere nel file: |
Write #flusso, "Testo qualsiasi" | Write #flusso, "Testo qualsiasi" | ||
Esempio pratico: | Esempio pratico: | ||
− | + | Public Sub Main() | |
Dim fl As File | Dim fl As File | ||
Dim s As String = "Testo qualsiasi" | Dim s As String = "Testo qualsiasi" | ||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" For Create | ||
− | + | Write #fl, s | |
− | + | fl.Close | |
− | + | End | |
− | |||
− | |||
Riga 50: | Riga 49: | ||
Esempio pratico: | Esempio pratico: | ||
− | + | Public Sub Main() | |
Dim fl As File | Dim fl As File | ||
Dim s As String = "Testo qualsiasi" | Dim s As String = "Testo qualsiasi" | ||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" For Create | ||
− | + | Print #fl, s | |
− | + | fl.Close | |
− | + | End | |
− | |||
− | |||
+ | ==Scrivere un file di testo partendo da valori di tipo byte== | ||
+ | Nei casi precedenti abbiamo creato nuovi file di testo usando direttamente dati ''a rappresentazione stringa'', ossia normali caratteri di testo. In quest'altro caso, invece, si utilizzeranno dati numerici di tipo ''Byte'' (8bit) per generare un file di testo. Ovviamente bisognerà far scrivere nel file di testo dati, il cui valore numerico corrisponda ad un carattere secondo la codifica ASCII. | ||
+ | <BR>Esempio: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim b As Byte | ||
+ | Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] | ||
+ | |||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" For Create | ||
+ | |||
+ | For b = 0 To bb.Max | ||
+ | <FONT color=gray>' ''In questo caso si deve specificare anche il "tipo" di valore che viene scritto:''</font> | ||
+ | Write #fl, bb[b] As Byte | ||
+ | Next | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | Se non si vuole utilizzare il ciclo, allora bisognerà servirsi del Metodo ".Write()" del vettore di tipo "Byte[]". | ||
+ | <BR>Esempio pratico: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] | ||
+ | |||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" For Create | ||
+ | |||
+ | bb.Write(fl, 0, bb.Count) | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | oppure usare anche il Metodo ".ToString()" del vettore: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] | ||
+ | |||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" For Create | ||
+ | |||
+ | Write #fl, bb.ToString() | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | Inoltre, si possono far scrivere nel file di testo valori di tipo stringa convertendo, però, <SPAN style="text-decoration:underline">preliminarmente</span> ciascun dato di tipo ''Byte'' nel corrispondente carattere ASCII mediante la funzione "Chr()": | ||
+ | Write #flusso, chr(<FONT color=gray>''valore_byte''</font>) | ||
− | + | Esempio pratico: | |
− | + | Public Sub Main() | |
− | + | ||
− | <FONT color= | + | Dim fl As File |
+ | Dim b As Byte | ||
+ | Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] | ||
+ | |||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" | ||
+ | |||
+ | Write #fl, Chr(84) & Chr(101) & Chr(115) & Chr(116) & Chr(111) & Chr(32) & Chr(113) & Chr(117) & | ||
+ | Chr(97), Chr(108) & Chr(115) & Chr(105) & Chr(97) & Chr(115) & Chr(105) &Chr(10) | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | oppure passare come una stringa anche valori numerici, rappresentati però questa volta in ''esadecimale'', ai quali siano premessi il caratter escpae <FONT color=B22222>\x</font> . | ||
+ | <BR>Esempio pratico: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | |||
+ | fl = Open "<FONT color=darkgreen>''/percorso/del/file/di/testo''</font>" | ||
+ | |||
+ | Write #fl, "\x54\x65\x73\x74\x6F\x20\x71\x75\x61\x6C\x73\x69\x61\x73\x69\x0A" | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End |
Versione attuale delle 16:46, 24 giu 2024
In questa pagina mostreremo alcune modalità per scrivere un file di testo ex novo.
Un file di testo è un file , comprensibile alla lettura a vista dell'utente, contenente caratteri stampabili e/o anche alcuni caratteri non stampabili (ritorno a capo, tabulazione, etc). La codifica più comune dei file di testo è la corrispondenza fra numero e carattere data dal codice ASCII.
Indice
Scrivere un file di testo
Per scrivere un file di testo ex novo si potranno utilizzare il Metodo ".Save()" della Classe File, nonché le istruzioni Write e Print.
Uso del Metodo ".Save()" della Classe File
In Gambas la modalità più semplice per scrivere un file a rappresentazione stringa, ossia un file di testo, è l'uso del Metodo "'.Save()" della Classe File:
File.Save("/percorso/del/file/di/testo/da/salvare", "dati stringa da salvare")
Nel primo argomento verrà indicato il percorso ed il nome del nuovo file di testo che si viene a creare. Il secondo argomento, invece, contiene i dati da salvare e che costituiranno il file di testo. Tali dati sono, ovviamente, dati di tipo stringa, ossia normali caratteri.
Esempio:
Public Sub Main() Dim s As String = "Testo qualsiasi" File.Save("/tmp/nomefile1", "testo qualsiasi") File.Save("/tmp/nomefile2" , s) End
Uso dell'istruzione Write
Usando la funzione Write in Gambas 3, sarà sufficiente specificare come suo secondo parametro il testo da scrivere nel file:
Write #flusso, "Testo qualsiasi"
Esempio pratico:
Public Sub Main() Dim fl As File Dim s As String = "Testo qualsiasi" fl = Open "/percorso/del/file/di/testo" For Create Write #fl, s fl.Close End
Uso dell'istruzione Print
Analogamente si potrà scrivere un file di testo con la funzione Print:
Print #flusso, "Testo qualsiasi"
Da tenere conto che con tale modalità verrà aggiunto automaticamente alla fine del file il carattere non stampabile: x0A (nuova riga a capo).
Esempio pratico:
Public Sub Main() Dim fl As File Dim s As String = "Testo qualsiasi" fl = Open "/percorso/del/file/di/testo" For Create Print #fl, s fl.Close End
Scrivere un file di testo partendo da valori di tipo byte
Nei casi precedenti abbiamo creato nuovi file di testo usando direttamente dati a rappresentazione stringa, ossia normali caratteri di testo. In quest'altro caso, invece, si utilizzeranno dati numerici di tipo Byte (8bit) per generare un file di testo. Ovviamente bisognerà far scrivere nel file di testo dati, il cui valore numerico corrisponda ad un carattere secondo la codifica ASCII.
Esempio:
Public Sub Main() Dim fl As File Dim b As Byte Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] fl = Open "/percorso/del/file/di/testo" For Create For b = 0 To bb.Max ' In questo caso si deve specificare anche il "tipo" di valore che viene scritto: Write #fl, bb[b] As Byte Next fl.Close End
Se non si vuole utilizzare il ciclo, allora bisognerà servirsi del Metodo ".Write()" del vettore di tipo "Byte[]".
Esempio pratico:
Public Sub Main() Dim fl As File Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] fl = Open "/percorso/del/file/di/testo" For Create bb.Write(fl, 0, bb.Count) fl.Close End
oppure usare anche il Metodo ".ToString()" del vettore:
Public Sub Main() Dim fl As File Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] fl = Open "/percorso/del/file/di/testo" For Create Write #fl, bb.ToString() fl.Close End
Inoltre, si possono far scrivere nel file di testo valori di tipo stringa convertendo, però, preliminarmente ciascun dato di tipo Byte nel corrispondente carattere ASCII mediante la funzione "Chr()":
Write #flusso, chr(valore_byte)
Esempio pratico:
Public Sub Main() Dim fl As File Dim b As Byte Dim bb As Byte[] = [84, 101, 115, 116, 111, 32, 113, 117, 97, 108, 115, 105, 97, 115, 105, 10] fl = Open "/percorso/del/file/di/testo" Write #fl, Chr(84) & Chr(101) & Chr(115) & Chr(116) & Chr(111) & Chr(32) & Chr(113) & Chr(117) & Chr(97), Chr(108) & Chr(115) & Chr(105) & Chr(97) & Chr(115) & Chr(105) &Chr(10) fl.Close End
oppure passare come una stringa anche valori numerici, rappresentati però questa volta in esadecimale, ai quali siano premessi il caratter escpae \x .
Esempio pratico:
Public Sub Main() Dim fl As File fl = Open "/percorso/del/file/di/testo" Write #fl, "\x54\x65\x73\x74\x6F\x20\x71\x75\x61\x6C\x73\x69\x61\x73\x69\x0A" fl.Close End