• Viernes 3 de Mayo de 2024, 01:47

Autor Tema:  Re: compara archivos o usar campos binarios  (Leído 2504 veces)

agfed

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
    • http://www.maersa.com.mx
Re: compara archivos o usar campos binarios
« en: Lunes 1 de Septiembre de 2003, 18:58 »
0
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:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: compara archivos o usar campos binarios
« Respuesta #1 en: Martes 2 de Septiembre de 2003, 08:14 »
0
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.

agfed

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
    • http://www.maersa.com.mx
Re: compara archivos o usar campos binarios
« Respuesta #2 en: Miércoles 3 de Septiembre de 2003, 18:14 »
0
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.

agfed

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
    • http://www.maersa.com.mx
Re: compara archivos o usar campos binarios
« Respuesta #3 en: Miércoles 3 de Septiembre de 2003, 18:15 »
0
y no son identicos

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: compara archivos o usar campos binarios
« Respuesta #4 en: Jueves 4 de Septiembre de 2003, 08:18 »
0
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.

agfed

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
    • http://www.maersa.com.mx
compara archivos o usar campos binarios
« Respuesta #5 en: Jueves 4 de Septiembre de 2003, 19:16 »
0
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: