usar usa tabla que puede programar porque para mejor hacer entre diferencias diferencia cual con comparacion bueno c# diff word-diff

tabla - ¿Cómo mostrar las diferencias de palabras usando c#?



porque usar c# (4)

Aparte de algunas optimizaciones generales, si necesita incluir los separadores en la comparación, básicamente está haciendo una comparación de carácter por carácter con los descansos. A pesar de que podría usar la O (ND) que vinculó, va a realizar tantos cambios como lo haría básicamente escribiendo los suyos.

El principal problema con la comparación de diferencias es encontrar la continuación (si elimino una sola palabra, pero el resto es el mismo).

Si desea utilizar su código comience con el ejemplo y no escriba los caracteres eliminados, si hay caracteres reemplazados en el mismo lugar, no dé este resultado. A continuación, debe calcular la ejecución continua más larga de palabras "modificadas", resalte esta cadena y el resultado.

Lo siento, no es una gran respuesta, pero para este problema, la respuesta es básicamente escribir y ajustar la función.

Me gustaría mostrar las diferencias entre dos bloques de texto. En lugar de comparar líneas de texto o caracteres individuales, me gustaría simplemente comparar palabras separadas por caracteres específicos (por ejemplo, ''/ n'', '''', ''/ t''). Mi principal razonamiento para esto es que el bloque de texto que voy a comparar generalmente no tiene muchos saltos de línea y las comparaciones de letras pueden ser difíciles de seguir.

Me he encontrado con la siguiente lógica O (ND) en C # para comparar líneas y caracteres, pero no sé cómo modificarlo para comparar palabras.

Además, me gustaría hacer un seguimiento de los separadores entre las palabras y asegurarme de que estén incluidos en la diferencia. Entonces, si un espacio es reemplazado por un retorno fuerte, me gustaría que surgiera como una diferencia.

Estoy usando Asp.Net (c #) para mostrar todo el bloque de texto, incluido el texto original eliminado y el nuevo texto agregado (ambos se resaltarán para mostrar que se eliminaron / agregaron). Una solución que funcione con esas tecnologías sería apreciada.

Cualquier consejo sobre cómo lograr esto es apreciado.


Microsoft ha lanzado un proyecto de diferencias en CodePlex que le permite hacer diferencias de palabras, caracteres y líneas. Está licenciado bajo la Licencia Pública de Microsoft (Ms-PL).

https://github.com/mmanela/diffplex


string string1 = "hola mundo como estas"; string string2 = "hola como estas";

var first = string1.Split('' ''); var second = string2.Split('' ''); var primary = first.Length > second.Length ? first : second; var secondary = primary == second ? first : second; var difference = primary.Except(secondary).ToArray();


Well String.Split con ''/ n'', '''' y ''/ t'', ya que los caracteres divididos te devolverán una serie de palabras en tu bloque de texto.

A continuación, podría comparar cada matriz para las diferencias. Una simple comparación 1: 1 le diría si alguna palabra ha sido cambiada. Comparando

hello world how are you

y:

hello there how are you

Te daría ese world y lo cambiarías there .

Lo que no le diría sería si las palabras se hubieran insertado o eliminado y aún necesitara analizar los bloques de texto carácter por carácter para ver si se ha cambiado alguno de los caracteres separadores.