Кактус, или как перестать грызть Lazarus

| рубрика: Заметки | автор: st
Метки: , ,

"Мыши плакали, кололись, но продолжали грызть кактус..."

Из новорусского фольклора

Присказка

Первый раз о тестировании сладкой парочки, состоящей из Free Pascal (FPC) - компилятора и библиотек общего назначения FCL, и Lazarus - библиотеки компонентов LCL и среды разработки, я написал еще в 2010 году. Выводы были не слишком утешительные.

С той поры …

Перечитывая Лу Гринзоу "Философия программирования"

| рубрика: Библиотечка | автор: st
Метки: , ,

Пообещав написать небольшую рецензию по книге двадцатилетней выдержки, перехожу к выполнению данного слова.

В оригинале исповедь автора называется «Дзен программирования в Windows 95» (Zen of Windows 95 Programming). Пусть вас не пугает цифра «95», ключевым сюжетом является именно Дзен, а не быстро меняющеся номера версий основной операционной системы последних десятилетий …

Тест скорости: array vs TList vs dynamic array

| рубрика: Испытания | автор: st
Метки: ,

Проведем небольшой замер скорости случайного и последовательного доступа, используя:

  • статический массив (array, должен размещаться на стеке)
  • класс-контейнер TList (размещается в куче)
  • динамический массив (тоже размещается в куче)

Используем массив из 10 миллионов элементов имеющих типы данных integer и varaint. При необходимости вы можете легко изменить тип в соответствующей секции программы …

"Test drive" FreePascal/Lazarus

| рубрика: Программирование | автор: st
Метки: , ,

Тестировал FreePascal/Lazarus на предмет пригодности к профессиональной разработке. В качестве теста взял простенькое приложение из 3 компонентов (1 исполняемый модуль и 2 DLL-ки по принципу плагинов) с несложной обработкой XML внутри. Выводы.

Продукт имеет немало продвинутой функциональности, главная из которой - компиляция и кросс-компияция под множество платформ, включая мобильные устройства …

Delphi. Строку в файл и обратно.

| рубрика: Заметки | автор: st
Метки:

В связи с переходом на unicode "по умолчанию" в Delphi 2009, функцию записи содержимого строки в файл необходимо немного изменить.

procedure SaveStrToFile(SrcStr: string; FileName: string);
var
  FS: TFileStream;
begin
  FS := TFileStream.Create(FileName, fmCreate);
  try
    FS.WriteBuffer(SrcStr[1], Length(SrcStr) * SizeOf(SrcStr[1]));
  finally
    FS.Free;
  end;
end …

Delphi. Массив байтов в строку шестнадцатеричных значений.

| рубрика: Заметки | автор: st
Метки: ,

Иногда бывает нужно посмотреть значение массива байтов в понятном человеку виде, чаще всего в виде пар шестнадцатеричных цифр. Задача может быть решена простой функцией, на примере которой мы увидим три подхода к работе со строками в Delphi и Паскале.

Паскалевские строки: наглядно и просто

Предлагаемый ниже способ хотя и не …

"Оптисток" на выставке

| рубрика: Заметки | автор: st
Метки:

Поскольку продукты (мои/с моим участием) попадают на выставку не так часто (третий раз, если точнее), то небольшая заметка, посвященная сему событию. Похвастаюсь, тсзать.

Выставка EQUIP AUTO 2007 проходила с 15 по 20 октября в припарижском городке Villepinte, что на пути следования из столицы в аэропорт Шарль-де-Голль. К сожалению, сам …

Использование ADO и DAO для массированного импорта данных

| рубрика: Испытания | автор: st
Метки:

Многие задачи импорта/экспорта данных эффективно решаются стандартными средствами той или иной СУБД (например, bulk copy). Однако, такая проблема может возникнуть и в вашем приложении, например, если используется схема с автономным рабочим местом, синхронизирующимся с центральной БД.

Так как мощность клиентских компьютеров сейчас высока, то миллионы строк в локальной БД …

Про Delphi 2007 и развертывание

| рубрика: Заметки | автор: st
Метки:

Не успел выйти Delphi 2007, как мы начали на нем новый проект... Согласно подготовленным обоснованиям выбор у клиента был нетрудный: между существующей и уже устаревшей инфраструктурой .NET 1.1, разворачивая которую компания в свое время получила немало проблем, между перспективой развернуть по второму разу NET 2.0 и между предложением …