Il carattere di fine linea può essere impostato con la proprietà Stream.EndOfLine. di conseguenza la funzione Line Input troncherà la linea quando incontra tale sequenza.
Quella proprietà penso che vada settata prima di usare Line Input, magari, come dice Sotema, controllando il file subito dopo l'apertura.
Effettivamente, contrariamente a come supponevo, la proprietà
.EndOfLine va impostata con la costante coerente con il tipo di codifica del
fine-riga contenuto dal file di testo.
Dunque, la proprietà
.EndOfLine della variabile di tipo
File non è in grado di dirci a priori quale sia il tipo di carattere di
fine-riga; ci può dire - invece - il tipo da noi impostato per far troncare ciascuna linea presente nel file di testo in modo coerente con la codifica.
Poniamo il caso di avere un file di testo, la cui rappresentazione esadecimale è la seguente:
46 6F 72 75 6D 20 64 69
0D 47 61 6D 61 62 73
0DDa notare i due valori di
fine-riga 0x0D, quindi appartenenti alla codifica Mac.
Leggiamo quel file di testo con il seguente codice Gambas:
Public Sub Main()
Dim s As String
Dim fl As File
fl = Open "/percorso/del/file/di/testo" For Input
' Sapendo a priori che la codifica del file di testo è quella del Mac,
' impostiamo la proprietà ".EndOfLine" in modo coerente:
fl.EndOfLine = gb.Mac
While Not Eof(fl)
Line Input #fl, s
Print s
Wend
fl.Close
End
oppure con la proprietà .Lines:
Public Sub Main()
Dim s As String
Dim fl As File
fl = Open "/percorso/del/file/di/testo" For Input
fl.EndOfLine = gb.Mac
For Each s In fl.Lines
Print s
Next
fl.Close
End
o anche con il metodo
.ReadLine:
Public Sub Main()
Dim s As String
Dim fl As File
fl = Open "/percorso/del/file/di/testo" For Input
fl.EndOfLine = gb.Mac
While Not Eof(fl)
s = fl.ReadLine()
Print s
Wend
fl.Close
End