PDA

View Full Version : [VB6] ** leggere una singola riga di un .txt


robnet77
25-06-2003, 13:01
Se mi rispondete ve ne sarei molto grato:

come faccio a far leggere il contenuto di una singola riga di un file di testo?

invece che Open "file.txt" For Input As #1

che mi leggerebbe il contenuto dell'intero file,


come faccio a leggere una riga qualsiasi?

Ho la necessità di leggere una riga per volta ed assegnare la stringa relativa ad una textbox...


Grazie! :)

Michelle
25-06-2003, 13:25
open nomefile for input as #nfile
line input #nfile, variabile
close #nfile

matpez
25-06-2003, 14:02
Originally posted by "Michelle"

open nomefile for input as #nfile
line input #nfile, variabile
close #nfile

Esatto ma ti conviene sempre fareti dare dal OS il numero del file, infatti io aggiungerei la riga prima di aprire il file:

nfile=FreeFile

cosi sei sicuro del numero e nn rischiare di avere errori vari

robnet77
25-06-2003, 16:34
grazie ragazzi, il codice funziona, ora sto ideando il ciclo per leggere tutte le righe:


Dim i As Integer
nomefile = InputBox("Inserisci il nome del file:")
Open nomefile For Input As 1

While Not EOF(1)
nfile = FreeFile

Line Input #1, variabile
Text1(i).Text = variabile
i = i + 1
Wend
Close 1



solo che ho un problema :muro: :

se ho 100 righe nel file txt e posso stampare solo 60 etichette per pagina, come faccio a interrompere il ciclo, resettare i campi e riprendere il ciclo da dove si era fermato?

Ci vorrebbe una variabile temporanea in cui memorizzare il valore di i che è 60, oppure all'inizio del prossimo ciclo fare i = 65 ? :confused:

Help me please! :(

Grazie!

matpez
25-06-2003, 16:52
IL codice è errato, cosi utilizzi sempre 1 e nn il FreeFile

correggilo cosi:

Dim i As Integer
dim nfile as integer

nomefile = InputBox("Inserisci il nome del file:")
nfile = FreeFile

Open nomefile For Input As #nfile

While Not EOF(#nfile)

i = i + 1
Line Input nfile , variabile
Text1(i).Text = variabile

if i=60 then
'** Fagli fare quello che vuoim tanto poi riprende a ciclare **
end if

Wend

Close# nfile

robnet77
25-06-2003, 17:29
Originally posted by "matpez"

IL codice è errato, cosi utilizzi sempre 1 e nn il FreeFile

correggilo cosi:

Dim i As Integer
dim nfile as integer

nomefile = InputBox("Inserisci il nome del file:")
nfile = FreeFile

Open nomefile For Input As #nfile

While Not EOF(#nfile)

i = i + 1
Line Input nfile , variabile
Text1(i).Text = variabile

if i=60 then
'** Fagli fare quello che vuoim tanto poi riprende a ciclare **
end if

Wend

Close# nfile


intanto grazie!
non ho capito bene cosa rappresenta questo FreeFile... :mc:

e poi...

quando il contatore raggiunge il valore di 60, come faccio a far riprendere la lettura del file .txt dalla 61a riga? :muro:


e poi ancora, se proprio non hai altro da fare... :p

per ora ho impostato la proprietà multiline delle textbox a True, ma come faccio a dire al programma di andare a capo quando incontra un certo carattere (che so, due caratteri dopo la lettera N che è riservata)? :cry:


Comunque sei un grande, mi hai aiutato più volte, voterò per te alle prossime elezioni del moderatore della sezione (virtuali, tanto non lo mettono mai :p )

:)

P.S. Se non hai tempo per rispondere a queste altre domande non fa niente, grazie comunque per l'aiuto dato fino ad ora, e grazie anche a Michelle :)

matpez
25-06-2003, 17:49
Grazie ma io sono qui da poco, chi merita un voto è sicuramente "cionci" :pig:


Cmq FreeFile da un numero univoco al tuo file, cosi anzichè mettere sempre #1 lui ti mette un numero che sicuramente in quel momento è univoco, altrimenti se tu forzi un tuo numero rischi che quel file sia utilizzato da altri e nn va troppo bene.

Il contatore raggiunge il 60, entra nel ciclo, fa quello che deve fare, e poi uscendo incontra il wend e torna da capo, ma il puntatore al tuo file è fermo a 60, ciclando riparte da 61. L'importante è che nn riapri il file, altrimenti lui parte da 0!!!

Per fare andare a capo basta che metti cosi: "text1=text1 & vbcrlf" dove vbcrlf significa Visual Basic Cursor Return Line Feed, devi mettere l'istruzione quando vuoi che vada a capo nel suo text1!!

ciaooooooooooo :p

robnet77
25-06-2003, 18:06
domattina provo e sperimento, grazie mille! :)

matpez
25-06-2003, 18:39
Prego, di nulla, se ho tempo e so le cose lo faccio volentieri :p