/*айтишные заметки*/
Расстояние Левенштейна между двумя строками - это минимальное количество операций вставки одного символа, удаления одного символа и замены одного символа на другой, необходимых для превращения одной строки в другую [Википедия]. Например, есть строки:
"text" и "text!"
Для того чтобы первую строку превратить во вторую, нужно добавить к ней символ "!", и наоборот - для того чтобы превратить вторую в первую - нужно удалить из нее восклицательный знак. Иными словами, нужно выполнить одну операцию. Это значение и называют расстоянием Левенштейна. Зачем используется такое понятие? Расстояние Левенштейна имеет множество практических применений. Например - различные утилиты, которые предназначены для мержа файлов исходного кода, утилита для сравнения текстов diff в Linux, нестрогое сравнение текстов - когда нужно "примерно" сравнить две порции текстовых данных, и прочее.
Сeгодня получил от Google письмо счастья, о том что Google Code в скором времени полностью прекратит свое существование, с рекомендацией перенести свои проекты куда-нибудь в другое место, например GitHub. Давным давно я сделал один проект, который сейчас казалось бы некуда деть, но он находится на Google Code. Хотелось бы сохранить этот код, поэтому решил перекинуть его на BitBucket.
BPlist2Xml - это конвертер формата Property List, который используется продуктами Apple для хранения различных настроек и т.п. Написана эта программа, прости господи, на pascal (использовался Free Pascal). Суть в том, что документ формата Property List бывает двух типов - обычный XML документ и сжатый бинарный формат. Для того, чтобы читать и редактировать последний, есть специальные редакторы. Если кому-нибудь, неизвестно для чего, понадобиться производить манипуляции с бинарным plist используя например Delphi, эта реализация - единственная, насколько мне известно, на этом языке.
Скачать (исходный код и бинарники)