Hola quisiera saber si alguien me puede ayudar con esto, tengo 2 archivos 1.txt y 2.txt quisiera comparar lo escrito dentro de los dos y si no coinciden que me de un alerta, les agradeceria la ayuda, soy nuevo en esto espero que sepan entender
Desde ya muchas gracias
Saludos
Hola,
Si solo necesitas saber si el contenido de los dos ficheros es idéntico o no (sin importar qué línea concreta cambia), con leer ambos ficheros enteros y compararlos como texto te vale:
Dim contenido1 As String = System.IO.File.ReadAllText("1.txt")
Dim contenido2 As String = System.IO.File.ReadAllText("2.txt")
If contenido1 <> contenido2 Then
MsgBox("Los archivos son diferentes")
Else
MsgBox("Los archivos son iguales")
End If
File.ReadAllText carga el fichero entero en una única cadena, y VB.NET compara cadenas de texto carácter a carácter con <>, así que basta con esa comparación directa. Para ficheros de texto normales (no muy grandes, unos cuantos MB como mucho) esto es más que suficiente y muy simple de mantener.
Si en cambio necesitas saber qué líneas concretas son distintas (por ejemplo, para mostrarle al usuario «la línea 5 cambió de X a Y»), hace falta comparar línea a línea en vez de el fichero entero de golpe:
Dim lineas1 As String() = System.IO.File.ReadAllLines("1.txt")
Dim lineas2 As String() = System.IO.File.ReadAllLines("2.txt")
If lineas1.Length <> lineas2.Length Then
MsgBox("Los archivos tienen distinto numero de lineas")
Else
For i As Integer = 0 To lineas1.Length - 1
If lineas1(i) <> lineas2(i) Then
MsgBox("La linea " & (i + 1) & " es diferente")
End If
Next
End If
Para tu caso (solo quieres un aviso si no coinciden), la primera opción con ReadAllText es la más directa.
Sara