I need an OCX that displays the contents of two ASCII files in a side-by-side format with the differences between the two files color-coded, in place. The OCX will be called from VB6. It should be written in either C or C++
The diff engine must: 1) support the various line termination character sequences as defined by the following operating systems: Windows, Unix, & Mac, 2) allow ignoring of white space and case differences (upper/lower), 3) allow for three levels of granularity: Line Level, Word Level, Character Level, 4) Produce results consistent with Unix's DIFF
The OCX should allow: 1) in-place editing of either of the files and a mechanism to save the changes, 2) highlighting of multiple lines in one file and copying to the other file, 3) right-clicking on a differing line/section in a file and selecting a context menu option to copy this section to the other file, 4) programmatic navigation to any line in either file, 5) browse to first, next, previous, & last difference, 6) changing of font style/forecolor/backcolor for regular text and differing text, 7) scrolling in unison of both panes, 8) resizing of both panes in proportion, 9) automatic insertion of line numbers
All OCX properties will be accessed at design time via a Property Window and at run time via a programmatic interface. No toolbars or dialog windows are required.
HUGE files (> 4 Gig) and Unicode character sets should be supported
This OCX will be used in a commercial application so it needs to be done properly. Only programmers with prior experience with file differencing or related experience need to bid. Project completion time is not a major concern. I would much rather that time is taken to research the various diff algorithms and that the code be tight, and clean, and as fast as possible.
The file difference viewer in programs such as Beyond Compare, Compare IT, and Araxis Merge should be consulted.
1) Complete and fully-functional working OCX as well as complete source code (thoroughly documented), a VB6 demo demonstrating all of the properties, methods, and events of the control, and some documentation as to how to use the control.
2) Exclusive and complete copyrights to all work purchased.