SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: agfed en Lunes 1 de Septiembre de 2003, 18:58
-
A ver si alguien me ayuda. Tengo un archivo que quiero comparar con otro, y asi saber si son semejantes o muy parecidos, porque de hecho se que no son identicos. :think:
-
Puedes abrir los archivos desde vb y compararlos línea a línea con algo así:
Private Function SonIguales(Byval Archivo1 As String, Byval Archivo2 as String) As Boolean
Dim int1 as integer, int2 as integer
Dim str1 as string, str2 as string
On Error Goto Error_Comparar
int1 = FreeFile
Open "Archivo1" For Input As #int1
int2 = FreeFile
Open "Archivo2" For Input As #int2
Do Until Eof(int1)
LineInput #int1, str1
LineInput #int2, str2
If str1 <> str2 then Goto Salir_Comparar
Loop
If Eof(int2) Then Son Iguales = True
Salir_Comparar:
On Error Resume Next
Close #int1
Close #int2
Exit Function
Error_Comparar:
MsgBox Err.Description
Resume Salir_Comparar
End Function
Si la comparación es algo puntual, también podrías utilizar el comando D.O.S. 'FC' (file compare).
Suerte.
-
Gracias por la respuesta. Pude cerrar la pregunta hasta hoy porque tenia que hacer pruebas. Tengo unas dudas.
El comando lineinput marca error. Tiene que ver que uso vba 6.0?
El archivo solo tiene una linea.
Lo resolvi con un open for input.
El código es estupendo, pero en mi caso no me funciona porque los archivos son binarios.
-
y no son identicos
-
Hola agfed.
El error que te da 'LineInput' se debe a que lo escribí mal (disculpas), debería ser
'Line Input'.
Aunque trabajes con archivos binarios el código debe de funcionar igual, si quisieras podrías abrirlos en modo binario (Open "Archivo" For Binary Access) y realizar la comparación de modo parecido utilizando el método 'Get' en lugar de 'Line Input'.
Suerte.
-
Gracias
Esto me lo resolvio el fabricante del equipo que produce este archivo binario. Me dio un comando de una de sus librerias para convertir el binario en una cadena hexadecimal y asi poder trabajar mas facil.
Doy por cerrado este tema. :good: