udf на Delphi

4 отговора 0 прегледа
#1

udf на Delphi

Привет!
Имам зор с писането на УДФ функция на Делфи, която да приема стринг и да го връща с главни букви. Тука имаше някаква особенност ама съм забравил.
Ако може някой да ми драсне една примерна но със стрингове ще съм благодарен.

Отговор
в отговор на stupid_555 #2

Re: udf на Delphi

ANSIUpperCase(<string>) - върши същата работа, като работи и на кирилица...

Отговор
в отговор на stupid_555 #3

Re: udf на Delphi

library myudf;

uses Windows, SysUtils;

{
DECLARE EXTERNAL FUNCTION MYUPCASE CSTRING(255) RETURNS CSTRING(255)
ENTRY_POINT 'MyUpCase' MODULE_NAME 'MYUDF'
}

function MyUpCase(aValue: PChar): PChar; cdecl; export;
begin
CharUpperBuff(aValue, Length(aValue));
Result:=aValue;
end;

exports MyUpCase;

begin
isMultiThread:=True;
end.

Отговор
в отговор на stupid_555 #4

Re: udf на Delphi

Струва ми се, че нямаш нужда от udf за uppercase(). Във Firebird имаш внедрена upper функция. Ако не бачка с кирилицата, виж дали базата ти е създадена с default charset WIN1251. Ако не е - оправи я и не се чупи да пишеш udf-и, щото ако се наложи да си сложиш базата на линукс машина с Firebird, ще трябва да пишеш .so библиотека.

Отговор
в отговор на stupid_555 #5

Re: udf на Delphi

Не си написал сървъра, за който е UDF-то (предполагам Firebird or Interbase), но в случая можеш да минеш и без удф. Не ти препоръчвам да се пишеш удф-та ако можеш да минеш без тях. Освен че ако минеш на линух трябва да пишеш .so, но са и доста "тънък" момент(може да си докараш 330 главоболия): [линк]

Отговор