?

Log in

Язык Delphi
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in ru_delphi's LiveJournal:

[ << Previous 20 ]
Friday, February 19th, 2016
6:00 pm
[imageman72]
Книга "Семакин И., Шестаков А., Основы программирования.djvu"
Учебник по программированию Паскаль (Pascal) "Семакин, Шестаков. Основы программирования. 2001" можно скачать там:
Программу для просмотра DjVu качать отсюда: http://windjview.sourceforge.net/ru/ (бесплатная)
Read more...Collapse )
Monday, January 18th, 2016
7:41 pm
[imageman72]
Множественная линейная регрессия
Может кому пригодится (искал несколько дней).

Множественная линейная регрессия (Multiple linear regression) используется для аппроксимации массива данных линейной функцией вида f(x)=b[1]*x1+b[2]*x2+b[3]*x3...+b[n]*xn+b[n+1] Т.е. когда мы имеем измерения во время эксперимента и результат эксперимента и хотим построить функцию предсказания. Регрессия часто используется в задачах классификации. В моем случае она используется для построения ансамбля слабых классификаторов из которых потом будет строиться дерево решений.

Библиотека оформлена в виде 1 юнита + dll (x32 и x64). Работает очень шустро - порядка миллиона строк обрабатывает меньше, чем за секунду. Очень проста в использовании, есть пара примеров.

Multiple linear regression 1.02 (for Delphi and FPC Pascal): http://pages.videotron.com/aminer/ 

На этой же странице можно найти PArchiver, библиотеку сжатия, различные очереди (потоковые), хэш-список, Быстрая параллельная сортировка и вообще всякие плюшки для работы с потоками.</strong>
Saturday, August 1st, 2015
6:16 pm
[imageman72]
Sunday, April 19th, 2015
2:02 pm
[imageman72]
ИБ-эксперт обнаружил 22 уязвимости в SQLite за полчаса
Один из самых известных ИБ-специалистов в мире Михал Залевски (Michal Zalewski) в течение 30 минут обнаружил 22 ошибки в популярной встраиваемой системе управления базами данных SQLite. Стоит отметить, что архитектура SQLite считается относительно простой и при этом достаточно безопасной.
Исправления были включены в версию SQLite 3.8.9. Залевски рекомендует обновить все версии системы.
Read more...Collapse )
Friday, February 28th, 2014
2:40 pm
[imageman72]
PC Beeper - играем на спикере
Лет n-дцать назад компьютеры пищали только встроенным динамиком. Этот динамик и сейчас есть. Только добраться до него трудно. Но возможность попищать есть и теперь.
Причем ключевые строки довольно простые:
  ioDLLInstance := LoadLibrary('inpoutx64.dll');

  if ioDLLInstance >= 32 then { if <=32 - error ! }
  begin
    @InputPort := GetProcAddress(ioDLLInstance, 'Inp32');
    @OutputPort := GetProcAddress(ioDLLInstance, 'Out32');
  end

Больше исходного кода и демкаCollapse )
Monday, October 21st, 2013
5:25 pm
[st_tsourkan]
Как работать с XML-документами в Delphi? В частности, с помощью TXMLDocument?
Всех приветствую! Несколько лет писал на Матлабе, а тут приспичило на Дельфи программу написать.

Мне необходимо научиться работать с xml-документами. Работаю в RAD Stiduo XE3. Там есть компонент TXMLDocument, наверно, известный многим программящим на Delphi. Вроде бы и умеет много. Но проблема в том, что по нему нет понятной документации и описания. Хэлп в RAD Studio - фигня, потому что нормальной информации там нет; только разбросанная по страницам скудная справка по некоторым методам и процедурам (без примеров и нормального описания). Перерыл весь инет. Нашёл только темы на форумах с решением конкретных задач, где надо ещё час догадываться, что делает та или иная строка, связанная с обращением к xml-файлу.
Мне же нужно руководство по основным функциям, процедурам и методам, применяемым при работе с xml. Учебник, мануал, описание. Или хотя бы "xml в Delphi для чайников". Например:

Для открытия xml-файла используем метод XMLDocument1.LoadFromFile('filemane.xml'), где filename - имя файла.
Переменная nodelist типа IXMLNode служит для хранения списка дочерних элементов. Для определения этого списка служит метод Xmldocument1.DocumentElement (где XMLDocument1 - исследуемый xml-файл).
Чтобы запросить содержимое дочернего элемента 'element1' используется метод XMLDocument1.DocumentElement.ChildNodes['element1'].Text...

и в таком духе дальше по всем применяемым методам, процедурам, типам данных.
Где найти подобные мануалы/описания? Кто может помочь?

Если нужна конкретная задача, опишу её.
Имеется xml-документ вида:

Более подробно про задачу и искомые методы решенияCollapse )
Monday, February 25th, 2013
7:45 pm
[careerlab]
Enterprise Developers Conference
Добрый день, коллеги!

Enterprise Developers Conference — II-я ежегодная конференция о технологиях, решениях и практиках эффективной поддержки бизнеса крупных организаций в сфере разработки и интеграции приложений.
Цель данной конференции — помочь корпоративным разработчикам сориентироваться в современном технологическом мире и добиться максимальной эффективности в работе.

Мы приглашаем к участию в конференции CIO, руководителей IT-департаментов, технических директоров, руководителей разработки, разработчиков, архитекторов ПО и системных аналитиков.

Конференция делится на два параллельных тематических блока - "Управление разработкой, проекты и решения" и "Мобильные приложения, безопасность, базы данных". Участник самостоятоятельно выбирает, какой доклад ему интересен из двух предложенных.

Программа мероприятияCollapse )

Мы - центр профессионального роста CareerLab (официальный сайт - www.careerlab.ru). Мы занимаемся образовательными программами и проектами — от корпоративных тренингов до крупных международных конференций. Enterprise Developers Conference - как раз один из наших таких проектов.

Участие в конференции платное (8000 руб). Зарегистрироваться на конференцию можно на сайте. По вопросам регистрации на конференцию обращайтесь к Карине Истоминской по телефону: +7 (495) 933-01-33 доб.126 или e-mail: k.istominskaya@careerlab.ru
Sunday, July 15th, 2012
12:59 am
[altiumhr]
Требуются ведущие системные программисты, Киев

Ищем профессиональных Delphi/C++/C# программистов для нашей RnD команды в Киеве. ЗП от $3000. Только фултайм, рассматриваем людей из России, помогаем с переездом.  Проект – разработка  CAD  системы Altium Designer. Опыт работы не менее 6-7 лет. Все вопросы: iryna.vaskovskaya@altium.com

Будем благодарны, если пропустите пост :)

Saturday, March 10th, 2012
1:15 pm
[haliffn]
BoldDataset, *DBLookUp*
Добрый день.
Имел ли кто дело с Borland MDA, BOLD?

Вопрос вот в чем. Как пользоваться cxDBLookUpCombobox в связке с BoldDataset? Пока сделал очень проктологически:
Изменил BoldOclSymbolImplementations.pas, добавив OclOperation для получения BoldId
Создал соответствующий лукапному полю лукап-датасет, в котором определил поле типа 'self.BoldId'
Описал событие OnChange для  cxDBLookUpCombobox, в котором меняю BoldObject этого контрола
дальше все стандартно.
Вроде работает, но решение мне совершенно не нравится.
Наверняка все решается элегантнее.

В OnChange не просто проктология, а проктология через удаленный доступ
TBoldObjectReference(TBoldDataSet(TcxdbLookUpComboBox(Sender).DataBinding.DataSource.DataSet).ActiveBoldObject.BoldMemberByExpressionName['Strana']).BoldObject := TBoldDataSet(TcxdbLookUpComboBox(Sender).Properties.ListSource.DataSet).ActiveBoldObject;
Thursday, March 8th, 2012
2:00 pm
[haliffn]
cxDBDateEdit nullvalue
Здравствуйте. Понимаю, что вопрос совершенно ламерский, каждый наступал на эти грабли.

Как при пустом поле в присоединенном к датасету cxDateEdit выводить незаполненное значение вместо 30.12.1899?

Заранее спасибо.
Monday, December 12th, 2011
3:01 pm
[imageman72]
Быстрая хэш функция
Натолкнулся я на хабре на любопытную статью "MinHash — выявляем похожие множества".
Для реализации этого алгоритма "необходимо семейство хэш-функций". Но можно поступить и по другому. Вычислить очень длинный хэш и порезать его на куски.
Что такое хэш функция.
Код:
хочу видеть код!Collapse )
Wednesday, October 19th, 2011
7:14 pm
[sv_foster]
Hi Resolution Timer

Introduction

Иногда нужно замерить отрезок времени со значительной точностью, например, при анализе скорости выполнения функции. Казалось бы, задача простая, можно просто два раза вызвать Now(), сохранить значения, которые они вернут, и вычесть одно из другого. Фигу, ничего не получится, если ваша функция работает быстрее, чем секунда.

Столкнувшись с такой проблемой я нашел эффективный способ ее решения, позволяющий оценить быстродействие до наносекунд или еще точнее.

Timer

Для примеров я буду использовать Rad Studio Delphi 2010, Windows 7 x64 на компьютере с процессором Intel Core 2 Quad Q8300.

 

Read more...Collapse )
Wednesday, July 6th, 2011
1:03 pm
[filimonovdmtry]
Костыли для OpenOffice
Вот накропал на коленке функцию возвращающую буквенный идентификатор колонки в OO:Calc.
Этот дуратский OpenOffice, числовой идентификатор (типа =R3C3+R3C4) не понимает. А с буквами мне в Delphi возиться не хочется, привык координаты цифрами указывать. Вот и изгаляюсь.

Function TWorkCells.ResultABC (NumCol : Integer) : String;
var SimStr : Array[0..25] Of String[1];
Iter : Integer;
Res : String[2];
Begin
For Iter := 65 To 90 Do SimStr[Iter - 65] := Chr (Iter);
If NumCol <= 000 Then NumCol := 0;

Case NumCol Of
000..025 : Res := '';
026..051 : Res := SimStr[0];
052..077 : Res := SimStr[1];
078..103 : Res := SimStr[2];
End;

if NumCol >= 78 Then Dec (NumCol, 26);
if NumCol >= 52 Then Dec (NumCol, 26);
if NumCol >= 26 Then Dec (NumCol, 26);

Res := ConCat (Res, SimStr[NumCol]);
Result := Res;
End;

Есть еще один вариант, он более универсальный.

Function ResultABCnew (NumCol : Integer) : String;
var     SimStr  : Array[0..25] Of String[1];
        Iter    : Integer;
        Res     : String[2];
Begin
        For Iter := 65 To 90 Do   SimStr[Iter - 65] := Chr (Iter);
        If (NumCol <= 000) Or (NumCol >= 702) Then NumCol := 0;

        if NumCol < 26 then Res := ''
                       else Res := SimStr[(NumCol div 26) - 1];

        For Iter := 1  To (NumCol div 26) Do Dec (NumCol, 26);

        Res := ConCat (Res, SimStr[NumCol]);
        Result := Res;
End;

Спасибо vvakko. Натолкнул на мысль.
Sunday, June 26th, 2011
11:28 am
[keenest]
midi
добрый день!
подскажите пожалуйста, где можно разжиться библиотекой для работы с midi-файлами? интересует всего-то несколько простых функций - проигрывание, изменение темпа и транспонирование.
долгие поиски навели лишь на одну толковую библиотеку, но платную.

уповаю на вашу помощь)
Saturday, January 1st, 2000
6:28 am
[p_o_p_y_e]
Минимальные требования
Доброго времени суток.
появился вопрос тут, как определить минимальные требования программы на писаной на delphi?
Tuesday, June 7th, 2011
9:45 pm
[imageman72]
Функция Slice в Delphi
Originally posted by imageman72 at Функция Slice в Delphi
Returns a sub-section of an array.

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

Например:
InitMaskStates(MaskValue, Slice(PMaskStateArray(FMask)^, FSize));

в этом случае будут передаваться первые FSize элементов от массива PMaskStateArray(FMask)^

Вот только не пойму, можно ли этой функцией передать (к примеру) кусок массива от 5-го до 10-го элемента?

Saturday, January 1st, 2000
10:49 am
[p_o_p_y_e]
доброго времени суток.
очень нужна помощь
имеется программа учета трафика сети требуется добавить в неё "построение графика"
т.е. отображать скорость входящего/исхдящего трафика на графике
добавляю chart, но функция при запуске ведёт себя очень странно, происходят непонятные скачки, не пойму в чем дело
исходник:
http://zalil.ru/31005660
заранее благодарю.
Saturday, May 7th, 2011
4:36 pm
[imageman72]
Оптимизация работы со строками в Delphi (7)
Originally posted by imageman72 at Оптимизация работы со строками в Delphi (7)

Я уже где-то читал, что Delphi с длинными строками работает как с динамическими массивами и от этого могут быть потери скорости. В частности в случае s:=s+' ' будет вызываться менеджер памяти, который будет выделять память под более длинную строку s.

А сейчас я решил исследовать насколько мы проиграем в скорости. Для этого я сделал функцию очистки строки от мусора (в том числе и пробелы) + приведение к верхнему регистру.


function CleanTextForceSimple(Text:string):string ;
var
  LenOfInputText: integer;
  I: Integer;
begin
  LenOfInputText:=Length(Text);
  Result:='';
  for I := 1 to LenOfInputText do begin
    if Text[i] in ['0'..'9','A'..'Z','a'..'z','А'..'Я','а'..'я','ё','Ё'] then begin
      Result:=Result+UpCase( Text[i]);
    end;
  end;
end;

Read more... )

Friday, April 29th, 2011
12:36 pm
[abatvsurin]
Отображение копирования файлов (ProgressBar)
Всем привет! Подскажите пожалуйста, как можно отобразить состояние копирования файлов в ProgressBar. Примером может стать установочный дистрибутив.
Monday, April 18th, 2011
9:17 am
[filimonovdmtry]
Ловим окна Windows
Originally posted by filimonovdmtry at Ловим окна Windows
Так случилось, что мне вдруг потребовалось проверять, запущено приложение, или нет. Ну подумал я, подумал, и решил что самое верное, проверять его присутствие по заголовку окна. Но делать проверку под конкретное приложение "не комильфо", и я написал унифицированную функцию. 

Function TFreeProc.SearchWindow (SubStr : String): Boolean;
Var Win : hWND;
Buff : Array[0..120] Of Char;
BuffUp : String[120];
begin
SubStr := AnsiUpperCase (SubStr);
Result := False;
Win := GetWindow (Application.Handle, gw_hWndFirst);
While Win <> 0 Do
begin
GetWindowText(Win, buff, sizeof(buff));
BuffUp := AnsiUpperCase (buff);
If AnsiPos (SubStr, BuffUp) <> 0 Then Begin Result := True; Break; End;
Win := GetWindow (Win, gw_hWndNext);
End;
End;
[ << Previous 20 ]
About LiveJournal.com