Monthly Archives: September 2016

Delphi. Битовые операции и фильтр Блума. Вступление.

Часто встречается множество булевых параметров, которые нужно хранить в базе. Что-то существует или не существует. Что-то true или false. И когда таких параметров несколько десятков – сложно воспринимать базу. Для этого, как я понял, существуют битовые операции и фильтр Блума. … Continue reading

Posted in Delphi | 6 Comments

Delphi.WinAPI. Доступен ли файл для чтения?

Способ № 1 (Рабочий, почти всегда)

Способ №2 (Не рабочий, если доступ к файлу закрыт) Данная функция НЕ РАБОТАЕТ, так как нужно проверять атрибуты безопасности файла, насколько я понимаю. Простая проверка возможности прочитать файл. //True – файл … Continue reading

Posted in Delphi, WinAPI | Comments Off on Delphi.WinAPI. Доступен ли файл для чтения?

Delphi. Как отсортировать TStringList и сохранить соответствие с несколькими другими TStringList?

Данный пост является развитием предыдущего. Будем сортировать один TStringList -другие же приводить в соответствие с переставленными элементами.

Исходные данные у меня точно такие же. Не буду переписывать часть поста сюда.Изменился только алгоритм сортировки, так как теперь в соответствие нужно … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Как отсортировать TStringList и сохранить соответствие с несколькими другими TStringList?

Delphi. Сортировка TStringList с приведением в соответствие другого TStringList

Что делаем? Есть у нас некоторый TStringList, скажем SLToSort:TStringlist. Нужно его отсортировать – задача элементарная, пишем компараторы для наших данных, включаем CustomSort и всё готово. А что делать, если кроме SLToSort есть просто SomeSL:TStringlist и после сортировки SLToSort – нужно привести его … Continue reading

Posted in Delphi, Алгоритмы | 2 Comments

Delphi. GDI+ vs StretchDraw. Как уменьшить много картинок в потоке и сохранить их на диске?

Встала задача – создать thumbnails для полноформатных изображений. В сети уйма информации, не знал за что хвататься, решил пробовать по очереди. В сущности, попробовал 2 способа более менее подробно, а остальные по верхам. Остановился на стандартном StretchDraw из Delphi, из … Continue reading

Posted in Delphi, Потоки(Threads) | Comments Off on Delphi. GDI+ vs StretchDraw. Как уменьшить много картинок в потоке и сохранить их на диске?

Delphi. TStringList.CustomSort – сортировка строк, integer, tdatetime в ascending и descending порядках

Часто использую TStringList, а вот сортировку в нём не часто. Понадобилась, разобрался, ниже основные моменты по сортировке разных типов, тем или иным путем попавшим в TStringList. Сортировка строк

Ascending Вариант 1 (самый популярный, поэтому самый краткий)

Все остальные … Continue reading

Posted in Delphi | Comments Off on Delphi. TStringList.CustomSort – сортировка строк, integer, tdatetime в ascending и descending порядках

Delphi. Indy. FTP. Как получить дату создания, изменения и последнего доступа на сервере от idFTP ?

Этот вопрос можно преобразовать в “как преобразовать 20160911195120 в 11.09.2016 19:51:20 и перевести в LocalTime?” Я также поднял этот вопрос на 2 форумах Русский форум Английский форум Также мне показалась интересной ссылка на TTimeZone  – класса, который появился, начиная с Delphi … Continue reading

Posted in Delphi, Indy | Comments Off on Delphi. Indy. FTP. Как получить дату создания, изменения и последнего доступа на сервере от idFTP ?

Delphi. Indy. FTP. Как правильно удалить директорию с FTP сервера?

Столкнулся с тем, что если удалять директорию с помощью стандартной функции RemoveDir библиотеки Indy, то непустые директории не удаляются. Немного поискав, наткнулся на почти готовое решение на форуме. Суть в том, что удалять директории нужно рекурсивно, и начиная с конца списка. … Continue reading

Posted in Delphi | Comments Off on Delphi. Indy. FTP. Как правильно удалить директорию с FTP сервера?

Delphi. TListView. Как добавить элементы в виртуальном режиме (OwnerData:=true)?

Виртуальный режим нужен для отображения большого числа данных. В принципе, на мой взгляд, чтобы перестраховаться, можно использовать его в большинстве случаев. Далее пример того как добавить данные в TListView в виртуальном режиме. На примере загрузки файлов сервера. Получится примерно так… … Continue reading

Posted in Delphi | Comments Off on Delphi. TListView. Как добавить элементы в виртуальном режиме (OwnerData:=true)?

Delphi. FTP. Indy. Как добавить верификацию загрузки файла на серверe?

Как узнать – полностью ли загрузился файл на FTP сервер? Идентичны ли файлы на клиенте и сервер? Можно написать свой алгоритм, проверяющий по тем или иным параметрам идентичность файлов, но в Indy уже всё готово и можно этим только пользоваться. … Continue reading

Posted in Delphi | Comments Off on Delphi. FTP. Indy. Как добавить верификацию загрузки файла на серверe?