Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Comparación de archivos (Ayuda)

Visual Formularios, MDI, Módulos, Class, DataReports, Rutime y mas..

Moderador: jAngel

Comparación de archivos (Ayuda)

Notapor stroyer el Sab Jul 29, 2006 4:45 pm

Buenas a tod@s, había diseñado un algoritmo que busca las diferencias entre 2 archivos de igual tamaño (con anterioridad ya me he cerciorado que los archivos sean de igual tamaño)

El problema que tengo es el siguiente, a la hora de comparar se hace muy lento el proceso porque estoy analizando posiciones de memoria una a una. El caso es que no se me ocurre otra forma de que no tarde tanto, he pensado en hacerlo por bloques de 255 pero el caso es que el tamaño no siempre se puede dividir por 255. no se si me explico bien.

A ver si me podeis hechar una mano el código es el que tengo publicado en la web del guille pero lo pondre aqui tambien.

Private Sub Command1_Click()
Text2.Text = ""
Command1.Enabled = False

Dim nFic As Integer
Dim sFic As String
Dim posmemoria As Long

sFic = Text3.Text

Dim I As Long

For I = 0 To FileLen(sFic)
b = I + 1
DoEvents

'archivo original
sFic = Text3.Text
nFic = FreeFile
Label6.Caption = FileLen(sFic)
Open sFic For Binary As nFic
A$ = Space$(1)
Get nFic, Label1.Caption, A$
Afile = Asc(A$)
Close nFic

'archivo modificado
sFic = Text4.Text
nFic = FreeFile
Open sFic For Binary As nFic
A$ = Space$(1)
Get nFic, Label1.Caption, A$
Bfile = Asc(A$)
Close nFic

posmemoria = Label1.Caption - 1

' mostrar las posiciones de memoria donde hay diferencias
' y los datos contenidos entre parentesis y separados por comas
If Not Afile = Bfile Then _
Text2.Text = Text2.Text & posmemoria & "(" & Afile & ", " & Bfile & ")" & vbCrLf

Label1.Caption = Label1.Caption + 1

Next I
Command1.Enabled = True
Label1.Caption = "1"
End Sub

espero que me puedan ayudar gracias y un saludo :)
stroyer
Novato
Novato
 
Mensajes: 2
Registrado: Mar Jul 18, 2006 12:18 pm

Volver a Visual Basic / Visual Basic .NET

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron