udf на Delphi
4 отговора
0 прегледа
udf на Delphi
Привет!
Имам зор с писането на УДФ функция на Делфи, която да приема стринг и да го връща с главни букви. Тука имаше някаква особенност ама съм забравил.
Ако може някой да ми драсне една примерна но със стрингове ще съм благодарен.
Имам зор с писането на УДФ функция на Делфи, която да приема стринг и да го връща с главни букви. Тука имаше някаква особенност ама съм забравил.
Ако може някой да ми драсне една примерна но със стрингове ще съм благодарен.
Re: udf на Delphi
ANSIUpperCase(<string>) - върши същата работа, като работи и на кирилица...
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.
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.
Re: udf на Delphi
Струва ми се, че нямаш нужда от udf за uppercase(). Във Firebird имаш внедрена upper функция. Ако не бачка с кирилицата, виж дали базата ти е създадена с default charset WIN1251. Ако не е - оправи я и не се чупи да пишеш udf-и, щото ако се наложи да си сложиш базата на линукс машина с Firebird, ще трябва да пишеш .so библиотека. 
Re: udf на Delphi
Не си написал сървъра, за който е UDF-то (предполагам Firebird or Interbase), но в случая можеш да минеш и без удф. Не ти препоръчвам да се пишеш удф-та ако можеш да минеш без тях. Освен че ако минеш на линух трябва да пишеш .so, но са и доста "тънък" момент(може да си докараш 330 главоболия): [линк]