evg
В некотором проекте нарисовалась необходимость резервного копирования базы данных.
Нарисовалась, путем уничтожение кем-то или чем-то части данных :)

Хотелось сделать малой кровью.
Реализована идея использования создания архивной копии базы. Делалось на C++Builder 2010.
В качестве архиватора выбран 7-zip (Оф. сайт)
evg

Задача:

Необходимо передать в функцию указатель на двумерный массив (типа: long ** ptr) и в ней динамически создать двумерный массив.

Решение:

На самом деле все просто :) нам нужен указатель на указатель на указатель. Также нужно не забыть уничтожить свежесозданные массивы.

evg

Генератор синусоиды.

В цифровом виде синусоидальная волна образуется из:
Сэмпл(sample) или выборкамгновенное значение волны
Амплитуда максимальное и минимальное значения зависят от разрядности.
Разрядность количество битов, используемых для представления выборки: 8, 16, 32 и т. д. Максимальная амплитуда равна (2^разрядность) / 2 – 1.
Частота дискретизации число выборок в секунду.
Генератор используется для получения в массиве buf значений синусоиды (сэмплов) в количестве N_SAMPL = FRQD / FREQ;
В данном коде получаем 8 битную синусоиду (значения от 0 до 255) частоты freq с частотой дискритизации frqd = 44100 Гц.
evg
Рассмотрим алгоритм и реализацию изменения яркости изображения и создания негатива. Для изменения яркости изображения необходимо прибавить/вычесть к значению каждого канала(C) одну и ту же величину(N). Т.е.
nC = C + N - увеличиваем яркость
nC = C - N - уменьшаем яркость
При этом нужно учитывать, что значения канала должны находится в пределах 0 .. 255, поэтому необходимо контролировать выход за эти пределы.
evg
Все программисты C++Builder сталкиваются с недостаточной скоростью вывода графики в Canvas из массива.
Для переноса изображения из массива в Canvas обычно применяется свойство Canvas->Pixels[x][y].
Но это очень медленный метод. Для ускорения мы создаем объект TBitmap и для доступа к пикселям изображения используем его свойство TBitmap->ScanLine, которое определяет линии изображения. Это уже намного быстрее чем запись в Pixels[x][y].
Получившийся битмап копируем в Canvas при помощи winapi функции BitBlt.