Też zauważyłem ten wątek, ale się wstrzymałem z komentowaniem 
Czy jest sens robić tego typu program, gdy są już gotowe, darmowe, do wykorzystania?
Z jednej strony na pewno tak, przy jego tworzeniu i poprawianiu masz okazję dużo się nauczyć. To że dałeś tu takie info, też może CI wyjść na dobre, możliwe, że dostaniesz trochę opinii i komentarzy od ewentualnych "końcowych uzerów". Aby jednak tak się stało, twój "produkt" musi być konkurencyjny wobec istniejących.
Warto więc zobaczyć jak działają inne tego typu programy i jak używają je użytkownicy. Ja używam linuxa, więc dużo Ci nie pomogę.
Pod linuxem jest multum takich programów, ja używam diff - konsolowy a czasami meld'a - wersji okienkowej, która dokładniej pokazuje różnice.
Jest jeszcze cmp - porównuje pliki binarnie - bajt po bajcie, diff porównuje pliki tekstowe, liniami.
Jak działa diff - jeżeli pliki są jednakowe, domyślnie, nic nie wyświetla, ale po dodaniu przełącznika wyświetla że podane pliki o wielkości takiej i takiej były identyczne.
Dla mnie jest to wystarczająca informacja - było ok i program nic nie wyświetlił, lub były różnice i wtedy wyświetla linię poprzedzającą, linię/linie różniące się i jedną następną, oraz numery linii. To zachowanie, można oczywiście zmieniać przełacznikami, ale ja z tego nie korzystam, wystarcza, że jest błąd i muszę go szukać już ręcznie w kodzie programu, a nie w pliku wyjścia [ewentualnie muszę znale[color=#FF0000][s]ś[/s][/color]źć dla jakich danych wejściowych mam błędy] - jak by to robił twój program byłby super - dla błędnej linii outputu, wyświetlał odpowiednią linię input.
Program diif, uruchomiony bez parametrów wyświetla podpowiedź, ma też dokumentację [man diff] oraz można w necie znaleźć i ściągnąć jego źródła [ramka niżej - home page] - w końcu to program na licencji gnu. Popatrz [fragment]:
diff
diff: missing operand after 'diff'
diff: Try 'diff --help' for more information.
diff --help
Usage: diff [OPTION]... FILES
Compare FILES line by line.
Mandatory arguments to long options are mandatory for short options too.
--normal output a normal diff (the default)
-q, --brief report only when files differ
-s, --report-identical-files report when two files are the same
-c, -C NUM, --context[=NUM] output NUM (default 3) lines of copied context
-u, -U NUM, --unified[=NUM] output NUM (default 3) lines of unified context
-e, --ed output an ed script
-n, --rcs output an RCS format diff
-y, --side-by-side output in two columns
..........
i jeszcze kilka[nascie] linii opcji ;-), a na koncu:
..........
FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'.
If --from-file or --to-file is given, there are no restrictions on FILE(s).
If a FILE is '-', read standard input.
Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
Report bugs to: bug-diffutils@gnu.org
GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
Poczekaj, lub wróć do tego postu, bo jeszcze nie skończyłem, za jakiś czas jeszcze wrócę tu do edycji lub w nowym poście i trochę jeszcze dopiszę, jeżeli będziesz oczywiście chciał 