Сегодня залил на GitHub исходники очень нужной, полезной и, не побоюсь этого слова, эксклюзивной программы, написанной за один день.
 
ClipFixer - пример Qt-проекта, в котором демонстрируется работа с буфером обмена
Данная программа написана в рамках говноавтоматизации сметно-договорного отдела промышленной организации, в которой я сейчас работаю.
 
Задача:
Оператору передаются Excel-файлы смет, каждый экземпляр которых создан со всей сопутствующей фантазией.  Единой формы нет, единых принципов составления нет. Единственное, что объединяет эти файлы - шапка сметы, которая содержит почти единообразное кол-во столбцов и почти похожие наименования столбцов.  Проблема в том, что один и тот же столбец сметы в разных файлах может занимать  разное количество ячеек по ширине (от 1 до 80). И одна запись в смете по высоте может занимать от 1 до 10 ячеек. Кто как захотел, тот так и сделал.
 
Учитывая, что в организации 8 отделов и 2 сторонних организации,  а в каждом отделе (организации) пара человек занимается сметами,  и каждый человек составляет сметы примерно в двух-трех различающихся форматах,  имеем около 50 различных форматов смет.  Всего смет около 3000.
 
Сметно-договорной отдел должен ежемесячно формировать из этого зоопарка итоговую смету, в один лист которой попадают работы  из других файлов смет. А так как все сметы разные, то после копи-паста приходится много править вручную.
 
Внедрять автоматизированную систему для работы со сметами никто не собирается, требовать от всех единого формата никто не решается, поэтому задача была сформулированна так: сделайте что-нибудь, чтобы мы могли быстрее обрабатывать сметы.
 
Решение:
 
Ну что же, вот вам программа с волшебной кнопкой "Сделать хорошо".
Окно программы имеет два элемента управления: выбор формата сметы и волшебная кнопка.  В формате сметы указывается, сколько ячеек по ширине занимает каждый столбец. Пользователь копирует в буфер обмена строку (строки) из исходной сметы, нажимает волшебную кнопку,  и в буфере обмена размещаются преобразованные ячейки, объединенные согласно формату.
Пользователь имеет возможность самостоятельно создавать форматы смет. Так же в программе предусмотрен отладочный режим,  который позволяет просматривать исходное и преобразованное содержимое буфера обмена.
 
Код:
 
Код сделан в лучших традициях говнокодинга. Работает, и ладно.
 
Скриншоты:
 
Стандартный вид:
 

 
Расширенный вид:
 

 
Желаю всем программистам никогда не писать подобные программы.