Oppure

Loading
15/11/07 11:39
mruras
Buongiorno a tutti,

ho un problema.LA mia sub legge da 2 file.txt parte di alcune strighe , le confronta e le scrive in un Terzo file.txt.

Il problema é che il ciclo interno Do While (per scorrere tutto il file 2) viene eseguito e tutte le righe del file vengono lette , mentre il ciclo esterno (per scorrere tutto il file 1) legge solo la prima riga e poi esce.
Grazie in anticipo se qualcuno capisce e mi indica l'errore.Saluti.MArcello

Il codice é il seguente:

'reads from text file
Open Text1.Text For Input As #1
Open Text2.Text For Input As #2

'writes to text file
Open Text3.Text For Output As #3


Do While Not EOF(1)

comG = Mid(totsun1, 1, 10)

Do While Not EOF(2)

'lire donnes fichier 2
Line Input #2, totsun2

ComFo = Mid(totsun2, 1, 10)

If comG = ComFo Then ' confronto tra 2 linee
Print #3, totsun1, totsun2

End If

Loop

Loop ' Perché questo ciclo lo esegue solo una volta ??

Close #1
Close #2
Close #3
aaa
15/11/07 14:10
LuigiBiasi
perchè non chiudi il secondo file. Rimani sempre in eof quando finisce il secondo loop.
aaa
15/11/07 14:14
LuigiBiasi
scusa mi spiego meglio:

Postato originariamente da mruras:

Buongiorno a tutti,

ho un problema.LA mia sub legge da 2 file.txt parte di alcune strighe , le confronta e le scrive in un Terzo file.txt.

Il problema é che il ciclo interno Do While (per scorrere tutto il file 2) viene eseguito e tutte le righe del file vengono lette , mentre il ciclo esterno (per scorrere tutto il file 1) legge solo la prima riga e poi esce.
Grazie in anticipo se qualcuno capisce e mi indica l'errore.Saluti.MArcello

Il codice é il seguente:

'reads from text file
Open Text1.Text For Input As #1


'writes to text file
Open Text3.Text For Output As #3


Do While Not EOF(1)
Open Text2.Text For Input As #2
comG = Mid(totsun1, 1, 10)

Do While Not EOF(2)

'lire donnes fichier 2
Line Input #2, totsun2

ComFo = Mid(totsun2, 1, 10)

If comG = ComFo Then ' confronto tra 2 linee
Print #3, totsun1, totsun2

End If

Loop
Close #2
Loop ' Perché questo ciclo lo esegue solo una volta ??

Close #1
Close #3

va chiuso il file alla fine di ogni loop altrimenti rimane sempre alla fine.. avendolo letto tutto rimane a eof quindi va riaperto.
Non l'ho testato comunque credo sia questo il problema.
Però non go capito perchè usi:
comG = Mid(totsun1, 1, 10) 

e non usi una semplice line input...??
Spero di esserti stato di aiuto.
Ciao.
Ultima modifica effettuata da LuigiBiasi 15/11/07 14:18
aaa
15/11/07 15:13
mruras
OK, mille grazie il problema era quello, una vera sciocchezza. Grazie mille
Uso Mid (stringa,carattere parteza, lunghezza stringa) per prendere non tutta la riga ma solo porzioni che mi interessano. Ho file struttrati per diverse colonne. GRAZIE SALUTI
aaa