views:

698

answers:

3

In my asp.net project, I have two strings (actually, they are stored in a Session object, then i do a .ToString() )

This project is part of my free Japanese language exercises on my website (Italian only for now, so i won't link/spam)

For now i do an if (original == inputted.ToLower()) , but I would like to compare the strings and highlight the differences on the screen

like this:

original: hiroyashi
wrote by user: hiroyoshi

i was thinking to compare the two strings and save the differences in another variable, with HTML tags, and then show it on a Literal control... but... if the differences are many, or the input is shorter... how to do that?

It looks there is the needing of an huge amount of coding... or not?

+3  A: 

I seem to remember someone asking this not too long ago, and essentially they were pointed at difference engines.

A quick search on codeplex brings up: http://www.codeplex.com/site/search?projectSearchText=diff

May be worth a hunt through some of those that come up - you may be able to plug something into your existing code?

Cheers, Terry

Terry_Brown
few more URLs: http://www.codeproject.com/KB/recipes/diffengine.aspxhttp://www.mathertel.de/Diff/ http://www.menees.com/index.html
Terry_Brown
this looks perfect for my use: http://www.mathertel.de/Diff/thank you!
Magnetic_dud
A: 

I am not sure if this would be helpful, but this is a way I would do:

I would use a hashmap, and store all words seperate by space there. Then using that I would map with the original.

You can add html tags or whatever if they are different.

There is bound to be a performance issue here on a large dictionary of words The coding itself would not be long though.

waqasahmed
+1  A: 

John Resig wrote a javascript diff algorithm, but he's removed the page explaining what it does from his site. It's still available through the google cache though. Apologies if linking that is bad John. It should do what you want, someone else took it, tweaked it and put an article up about it here - complete with a test page

Dan F