Newsgroup: it.comp.lang.visual-basic
Titolo: lettura files...

Salve a tutti, ho il seguente problema:
Ho la necessità di aprire un file non di testo in lettura e leggere tutte le
righe al suo interno. Il problema è che all'interno del file è contenuto più
volte anche il carattere "EOF" e ciò provoca la lettura del contenuto fino a
questo carattere senza continuare fino alla fine effettiva del file. Come
posso creare un loop che legga tutto il file fino alla fine ignorando gli
eventuali "EOF" al suo interno?
Il codice classico che ho scritto io e che non funziona è il seguente:
dim riga as string
open "pippo.xxx" for input as #1
do until eof(1)
    line input #1, riga
    .....ciclo if  che ricerca la stringa che mi interessa all'interno di
riga..........
loop
close #1
P.S. Ho aperto il file anche come binary ma non cambia nulla.....
Grazie
F43

eventuali "EOF" al suo interno?
Secondoo me ti conviene cambiare il modo in cui è scritto EOF quando
lo scrivi all'interno del file.
Lo 'codifichi' in un'altra maniera univoca e il problema non sorge
più, perchè puoi distinguere tra EOF scritto da te  e EOF di fine
file. 
Axè!

 
Funzione input
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 ha scritto nel messaggio
news:6pvdnv8g09omea0nm...@4ax.com...


 resco ad arrivare a leggerli.
Dalla guida:
"Restituisce un valoreString che contiene i caratteri letti da un file 
aperto in modalità Input o Binary .
Sintassi
Input(numero, [#]numerofile)
La sintassi della funzione Input è composta dalle seguenti parti:
Parte Descrizione
numero Obbligatoria. Qualsiasiespressione numerica valida che specifica 
il numero di caratteri che devono essere restituiti.
numerofile Obbligatoria. Qualsiasinumero di file valido.
Osservazioni
I dati letti tramite la funzione Input vengono in genere scritti su file 
con Print # o Put. Utilizzare questa funzione solo per i file aperti in 
modalità Input o Binary.
A differenza dell'istruzione Input #, la funzione Input restituisce 
tutti i caratteri letti, incluse virgole, ritorni a capo, caratteri di 
avanzamento riga, virgolette e spazi iniziali.
Se si tenta di leggere i file aperti in modalità Binary utilizzando la 
funzione Input fino a quando EOF non restituisce True, verrà generato un 
errore. Utilizzare le funzioni LOF e Loc al posto di EOF se per la 
lettura di file binari viene utilizzata Input oppure utilizzare Get con 
la funzione EOF.
Nota   Con i dati byte contenuti in file di testo è possibile utilizzare 
la funzione InputB. In questo caso numero consente di specificare il 
numero di byte da restituire anziché il numero di caratteri."
Se invece vuoi che ti scriva io il codice devi contattare il mio ufficio 
commerciale. ;-)


 P.S. Ho aperto il file anche come binary ma non cambia nulla.....
Non cambia nulla se utilizzi line input. 
Il corrispondente per il binario mi sembra sia get.
-- 
Ciao,
        Fabrizio
<=- 
http://www.negusweb.it
 -=>

 righe al suo interno. Il problema è che all'interno del file è contenuto
più
Se il file non e' di testo non ha senso leggere "le righe" perche' non ci
sono delle righe di testo degne di questo nome. :-)
Io per caricare un intero file in una stringa, qualunque sia il suo
contenuto, usa questa funzione:
Public Function CaricaFile(NomeFile As String) As String
Rem carica il file (contenente solo testo) NomeFile
Rem e restituisce una stringa che contiene l'intero
Rem testo di NomeFile
Rem se c'e' un errore visualizza un messaggio e restituisce
Rem una stringa = ""
Dim MiaStringa As String
Dim Ret As Integer
Dim TotSize As Long
Dim NFile As Integer
On Error Resume Next
Err.Number = 0
TotSize = FileLen(NomeFile)
MiaStringa = String(TotSize, Chr(0))
NFile = FreeFile
Open NomeFile For Binary Access Read As NFile
Get NFile, 1, MiaStringa
If (Err.Number <> 0) Then
    CaricaFile = ""
    Close NFile
    Exit Function
End If
Close NFile
CaricaFile = MiaStringa
End Function