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 - Confronto di due file
Forum - Visual Basic 6 - Confronto di due file

Avatar
Lino (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/10/2007

Segnala al moderatore
Postato alle 14:38
Venerdì, 27/06/2008
Ragazzi ho bisogno di voi spero che mi possiate aiutare...
Ho la necessità di confrontare due file (a prescindere della loro estensione), per ora ho buttato giù qualche riga di codice aprendo i due file in binario e poi confrontandoli...ma mi sono bloccato sul confronto, se mi potesse aiutare o mi dareste qualche dritta mi farete un grosso favore :)

PM Quote
Avatar
M@d_Hacker (Ex-Member)
Expert


Messaggi: 254
Iscritto: 25/02/2008

Segnala al moderatore
Postato alle 14:42
Venerdì, 27/06/2008
in ke senso confrontarli??

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 14:53
Venerdì, 27/06/2008
Se li vuoi confrontare, dopo averli aperto in binario, leggi una porzione del primo e un'altra del secondo e con una if confronti i due pezzi ...
e continui con gli altri pezzi fino alla fine ...

PM Quote
Avatar
Lino (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/10/2007

Segnala al moderatore
Postato alle 15:07
Venerdì, 27/06/2008
Testo quotato

Postato originariamente da gantonio:

Se li vuoi confrontare, dopo averli aperto in binario, leggi una porzione del primo e un'altra del secondo e con una if confronti i due pezzi ...
e continui con gli altri pezzi fino alla fine ...


Si praticamente era questo il modo metodo che volevo utilizzare, il mio unico problema è il confronto, io faccio così:
Codice sorgente - presumibilmente Delphi

  1. Private Sub cmdConfronta_Click()
  2.  
  3. Open (destinazione del file) For Binary Access Read As #1
  4. Open (la destinazione del file) For Binary Access Read As #2
  5.  
  6. If......    then
  7.             MsgBox "I FILE SONO UGUALI", vbOKOnly
  8.             Else
  9.             MsgBox "I FILE NONO SONO UGUALI", vbCritical
  10.  
  11. End If
  12. Close #1, #2
  13. End Sub


è nel ciclo if non so cosa mettere 8-|

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 15:11
Venerdì, 27/06/2008
intanto devi prelevare i dati dai file con il get
poi vedi se i dati sono uguali

PM Quote
Avatar
Lino (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/10/2007

Segnala al moderatore
Postato alle 15:52
Venerdì, 27/06/2008
Testo quotato

Postato originariamente da antometal:

intanto devi prelevare i dati dai file con il get
poi vedi se i dati sono uguali



potresti essere un pò più preciso??

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:42
Venerdì, 27/06/2008
Testo quotato


è nel ciclo if non so cosa mettere


prima di tutto l'if non è un ciclo (a meno che non venga utilizzato assieme ad un goto).

Il codice viene cosi:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub cmdConfronta_Click()
  2. dim a as byte
  3. dim b as byte
  4.  
  5. Open (destinazione del file) For Binary Access Read As #1
  6. Open (la destinazione del file) For Binary Access Read As #2
  7. while not eof(1)
  8. get #1,,a
  9. get #2,,b
  10. if a<>b then
  11. msgbox "i file non sono uguali"
  12. Close
  13. Exit Sub
  14. end if
  15. wend
  16.  
  17. msgbox "i file sono uguali"
  18. Close
  19. End Sub


Ultima modifica effettuata da Overflow il 27/06/2008 alle 17:55
PM Quote
Avatar
Lino (Normal User)
Newbie


Messaggi: 14
Iscritto: 04/10/2007

Segnala al moderatore
Postato alle 18:05
Sabato, 28/06/2008
Testo quotato

Postato originariamente da Overflow:

Testo quotato


è nel ciclo if non so cosa mettere


prima di tutto l'if non è un ciclo (a meno che non venga utilizzato assieme ad un goto).

Il codice viene cosi:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub cmdConfronta_Click()
  2. dim a as byte
  3. dim b as byte
  4.  
  5. Open (destinazione del file) For Binary Access Read As #1
  6. Open (la destinazione del file) For Binary Access Read As #2
  7. while not eof(1)
  8. get #1,,a
  9. get #2,,b
  10. if a<>b then
  11. msgbox "i file non sono uguali"
  12. Close
  13. Exit Sub
  14. end if
  15. wend
  16.  
  17. msgbox "i file sono uguali"
  18. Close
  19. End Sub



Grazie Overflow ci ero quasi arrivato, ma nn avevo considerato l'end of file :)..
ora un problema che mi sorge è velocizzare il tempo di confronto, potrei dividere il contenuto della variabile "a" (ad esempio in 10 parti) in modo tale da fare un confronto con un insieme di dati ristretto?? se si come posso fare??

Ultima modifica effettuata da Lino il 28/06/2008 alle 18:09
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 18:39
Sabato, 28/06/2008
Non ha senso fare un confronto leggendo carattere per carattere ... utilizza un buffer e leggi a blocchi ...

PM Quote