Newsgroup: it.comp.lang.visual-basic
Titolo: Tornare all'inizio di un file

ciao a tutti....
ricordate la domanda che vi ho posto pochi giorni fa (ricerca in un
file di testo x verificare se il campo era presente)?
sto provando a fare tutto in vb, con un controllo brutale riga x riga
beh, mi sono imbattuto in questo problema: ho il mio bel file da
aggiornare, lo apro, poi inizio un ciclo di controllo: prendo il primo
nome, mi leggo tutto il file da aggiornare e controllo, il programma
fa la verifica una volta senza problemi, poi arriva alla fine del
file, e la seconda volta non entra nel ciclo di controllo, perche' il
mio ciclo inizia con un 
Do While Not DaAggiornare.AtEndOfStream, 
e lui e' effettivamente alla fine dello stream!
ma non posso aprire e chiudere il file in ogni controllo, perche' se
il file e' grosso, e ci mette 0.5 sec. ad aprirlo se ogni volta lo fa
ci metto tantissimo tempo!
allora come cavolo faccio a mettere il cosino che indica la posizione
del file all'inizio?
non c'e' l'equivalente del rewind di c?
ho guardato sulla msdn, ma non ho trovato nulla... possibile che non
ci sia un modo?
le varie funzioni che spostano il file pointer (credo si chiami cosi')
funzionano solo x file sequenziali, e comunque con un handle del file,
che io non ho (il mio e' un textstream... non ho numeri!)
uff.
meew che gli manca solo questo e ha finito...
P.S.dite che devo rifare tutto e fare una tabellona di database??
e se si, visto che non ho mai creato un db da vb e no so come si fa,
dove trovo una guidina? basta l'msdn?

 non c'e' l'equivalente del rewind di c?
[SNIP]
Puoi usare l'istruzione Seek, ma come hai notato lavora solo sui file aperti con
le istruzioni native di VB mentre il TextStream e' un classe contenuta in una
libreria esterna.
Comunque con le istruzioni canoniche Open, LineInput ecc. dovresti riuscire a
fare tutto quello che fai con il TextStream e sfruttare anche il seek, ad
esempio:
'leggiamo un file di testo, riga per riga, due volte senza chiuderlo
Dim strFile As String
Open "c:\autoexec.bat" For Input As #1
Debug.Print "--- prima iterazione ---"
Do While Not EOF(1)
    Line Input #1, strFile
    Debug.Print strFile
Loop
Seek #1, 1
Debug.Print "--- seconda iterazione ---"
Do While Not EOF(1)
    Line Input #1, strFile
    Debug.Print strFile
Loop
Close #1
Ciao
--
Luca Dormio
luca....@tin.it

ciao a tutti....
ricordate la domanda che vi ho posto pochi giorni fa (ricerca in un
file di testo x verificare se il campo era presente)?
sto provando a fare tutto in vb, con un controllo brutale riga x riga
beh, mi sono imbattuto in questo problema: ho il mio bel file da
aggiornare, lo apro, poi inizio un ciclo di controllo: prendo il primo
nome, mi leggo tutto il file da aggiornare e controllo, il programma
fa la verifica una volta senza problemi, poi arriva alla fine del
file, e la seconda volta non entra nel ciclo di controllo, perche' il
mio ciclo inizia con un 
Do While Not DaAggiornare.AtEndOfStream, 
e lui e' effettivamente alla fine dello stream!
ma non posso aprire e chiudere il file in ogni controllo, perche' se
il file e' grosso, e ci mette 0.5 sec. ad aprirlo se ogni volta lo fa
ci metto tantissimo tempo!
allora come cavolo faccio a mettere il cosino che indica la posizione
del file all'inizio?
non c'e' l'equivalente del rewind di c?
ho guardato sulla msdn, ma non ho trovato nulla... possibile che non
