Florencesoft TextDiff compares and finds the differences between text files, source code, xml, scripts. Compares folders (directories) on Windows.

Extras

Today we added an anagram generator and a Black-Scholes option pricing calculator to the Microsoft Store. We wrote these pieces of software some time ago as a learning exercise, but we think one may be of some amusement and the other of some use.

Our anagram generator has found that one anagram of "Vladimir Putin" is "I, invalid Trump".

The internal web pages for our anagram generator and Black-Scholes option pricing calculator can be found here and here respectively.



Comparing Text For Differences

There are an almost infinite number of software utilities to find differences in text. Most of them use a variation of an algorithm developed by universities in the 1970s. They all find the longest in-order run of similar text between two documents. Any text outside of this is either marked as a deletion or an addition. This in itself proves to be very useful, although it is far from perfect.

Suppose you make a copy of a document (or software source code file) and then reorder some paragraphs (lines of code). Note you are not making any real changes. Perhaps you are just arranging the methods in a class in alphabetical order. If you compare the modified copy with the original document, you will find most comparison tools will fail. They will mark a reordered paragraph as either a deletion or addition. It is not a deletion or addition, it is just an unaltered line that has moved from the middle of a document to the top.

Could there be a separate step to detect moved text? Well that in itself has many problems. For one, suppose you take a paragraph, change one word in it and then move it from the bottom of the document to the top. How can the software spot that it has been moved, if it has been changed at the same time?

It can get more complicated. Suppose the paragraph isn't changed at all, but just has all its sentences reordered at the same time as being moved around in the document.

Our software product Florencesoft TextDiff for Microsoft Windows addresses the above problems. The color green is used for new text, red for deleted text, blue for text moved up in the document and gray for text moved down. The background color changes from white to alternating use of yellow and light blue to indicate that text has been reordered.

TextDiff is free to use for the first 30 days and can be downloaded from our Downloads page.



Main Advantages Of Florencesoft TextDiff

Florencesoft TextDiff has many useful features, such as the ability to compare text at the levels of whole lines (paragraphs), words or characters. It can display the results in one combined window showing all the changes or in two side-by-side windows showing the deletions in one pane and the additions in the other.

We think the most useful feature however is the ability to omit unchanged text and just show the differences. It is possible to show a user-specified number of lines of context around each difference.

Show only identical paragraphs near differences will show the differences with a few lines of unchanged text around them as context.

Don't show identical, unmoved paragraphs will omit unchanged text. However if a paragraph or line has been moved up or down in the document it will be displayed, even if its contents are the same.

Don't show any identical paragraphs will omit all unchanged text, including lines (or paragraphs) that have not been altered, but just moved about in the document.

There are many different documents types to work with. If you can copy the text out of your document to the clipboard, it can be pasted into the two text boxes on the main part of TextDiff's user interface. As such TextDiff is a fast and easy way to find the differences between text embedded in a vast number of different document types.

The software can compare two folders (directories) for differences. This is useful for software developers / programmers who want to see the changes in hierarchical directories of source code, XML and scripts. Double-clicking on each reported file difference will compare the two files for differences, so long as it is plain text, Rich Text Format or a Microsoft Word document. For the latter Word must be installed.

 

Finding New & Deleted Items In Lists

Florencesoft TextDiff was written with the original intention of finding the differences between text documents, source code, scripts and XML. However due to its many options, it can also be used to find out how one list differs from another.

Consider the two lists of countries below.

UK Japan
Malta Brazil
Spain Malta
USA Spain
France Germany
Malta UK

We can see that the country Malta has been duplicated in the first list. Duplications interfere with the process of finding out what has been added and deleted. Duplicates can be removed from both lists by using the functionality under the Duplicates menu. Each list has to be processed separately.

UK Japan
Malta Brazil
Spain Malta
USA Spain
France Germany
UK


Now that we have deleted the duplicate, we can find out how the two lists differ. Ensure Whole Paragraph/Line is selected on the Options dialog and that Show deleted and added text in different frames is selected on the main part of the user interface. Ensure Actively look for moved regions is checked. Hit Compare.

UK Japan
Malta Brazil
Spain Malta
USA Spain
France Germany
UK

We can see the results above. The UK is colored gray indicating it is in both lists, but has been moved from the top to the bottom. Malta and Spain are in both lists, were not reordered and so are displayed with black text.

USA Japan
France Brazil
Germany

The previous results were helpful, but there is just one more step. Select Don't show any identical paragraphs. Hit Compare. In the above results, we can see that all the countries in both lists have been omitted. USA and France were deleted from the first list and Japan, Brazil and Germany were added to the second list.

Florencesoft TextDiff License Agreement

Florencesoft TextDiff License Agreement

Florencesoft TextDiff
END-USER LICENSE AGREEMENT

IMPORTANT-READ CAREFULLY: This End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and DiffEngineX LLC for the software product identified above, which includes computer software and associated media, and may include "online" or electronic documentation ("SOFTWARE PRODUCT" or "SOFTWARE"). By installing, copying, or otherwise using the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. If you do not agree to the terms of this EULA, do not install, copy, or use the SOFTWARE PRODUCT.

SOFTWARE PRODUCT LICENSE
The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.

Installation and use. You are granted a license to install and use this software for a 30 day trial period for the purposes of evaluation. When the period expires you may no longer use the software, unless you obtain a registration key (or keys) from DiffEngineX LLC. A registration key (or keys) entitles you to use the software on as many personal computers as you have purchased licenses for. The functionality may not be exposed such that an installation on one computer allows its functionality to be used on other computers i.e. unless agreed otherwise 1 license allows the software to be used on 1 workstation but not on a server accessed by more than 1 user. As a further restriction, the software can only be used for a maximum of 60 comparisons unless a registration key (or keys) is obtained. If a user is allocated a license, said user may use the software on a second computer so long as no other user does so, unless that user has a separate license. It is the intention that one license is for one user. Use by multiple persons requires the purchase of additional licenses, one per person.

PURCHASING. For purchases unless DiffEngineX LLC receives full payment for the SOFTWARE PRODUCT within agreed and reasonable timescales, the license may be revoked. In the case of purchase orders, checks or non-debit/credit card payments, DiffEngineX LLC reserves the right to issue temporary registration keys. They will be valid for a period such as 30 or 60 days at its discretion. When full payment is received standard registration keys will be issued. With prior agreement, time limited registration keys or software may sometimes be issued for other circumstances.

COPYRIGHT. All rights, title, and copyrights in and to the SOFTWARE PRODUCT and any copies of the SOFTWARE PRODUCT are owned by DiffEngineX LLC.

Limitations on Reverse-Engineering, Decompilation, and Disassembly. You may not reverse-engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.

Termination. Without prejudice to any other rights, DiffEngineX LLC may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT and all of its component parts.

NO WARRANTIES. To the maximum extent permitted by applicable law, DiffEngineX LLC expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT and any related documentation are provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties of merchantability or fitness for a particular purpose. The entire risk arising out of use or performance of the SOFTWARE PRODUCT remains with you.

LIMITATION OF LIABILITY. DiffEngineX LLC's entire liability and your exclusive remedy under this EULA shall not exceed five dollars (US$5.00).

NO LIABILITY FOR CONSEQUENTIAL DAMAGES. To the maximum extent permitted by applicable law, in no event shall DiffEngineX LLC or its suppliers be liable for any damages whatsoever (including, without limitation, damages for loss of business profit, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of, or inability to use, this DiffEngineX LLC product, even if DiffEngineX LLC has been advised of the possibility of such damages. Because some states/jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you.