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
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!
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 :)
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! :)
Prego, di nulla, se ho tempo e so le cose lo faccio volentieri :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.