Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - LETTURA  e SCRITTURA file.txt
Forum - Visual Basic 6 - LETTURA e SCRITTURA file.txt

Avatar
mruras (Normal User)
Newbie


Messaggi: 2
Iscritto: 15/11/2007

Segnala al moderatore
Postato alle 12:39
Giovedì, 15/11/2007
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

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 15:10
Giovedì, 15/11/2007
perchè non chiudi il secondo file. Rimani sempre in eof quando finisce il secondo loop.

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 15:14
Giovedì, 15/11/2007
scusa mi spiego meglio:

Testo quotato

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:
Codice sorgente - presumibilmente Plain Text

  1. comG = Mid(totsun1, 1, 10)


e non usi una semplice line input...??
Spero di esserti stato di aiuto.
Ciao.

Ultima modifica effettuata da LuigiBiasi il 15/11/2007 alle 15:18
PM Quote
Avatar
mruras (Normal User)
Newbie


Messaggi: 2
Iscritto: 15/11/2007

Segnala al moderatore
Postato alle 16:13
Giovedì, 15/11/2007
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

PM Quote