![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
UDF [D7, XP]
Irish_34 © (2007-12-10 20:02:00)Привет ВСЕМ, помогите пожалусто UDF, начиная работать в процедуре "спотыкается" об чего, я уже не знаю в чем и ошибка и чге я некоректно что обозвала
DECLARE EXTERNAL FUNCTION CEX6
VARCHAR(50)
RETURNS VARCHAR(50) BY DESCRIPTOR
ENTRY_POINT 'psc6' MODULE_NAME 'PDL6.dll'
function psc6(var s:PChar):PChar;cdecl;export;
var
j1,i1:byte;
j: PSmallInt;
s1: string;
begin
j:=nil;
j1:=0;
i1:=0;
if ((s=nil) or (s='0') or (s='')) then
Result:='0'
else
if StrPos(s,'6')<>nil then
begin
j:=PSmallInt(StrPos(s,'6'));
s1:=PChar(s)^;
Result:='';
delete(s1,1,j^+1);
if Length(s1)=1 then //s:=copy(s1,1,1)
StrPLcopy(Result,s1,1)
else
begin
for i1:=1 to length(s1) do
if ((s1[i1]=',') or (s1[i1]='.') or (s1[i1]=';') or (s1[i1]=' '))
then
begin
delete(s1,i1,length(s1));
StrPLcopy(Result,s1,length(s1));
end
else StrPLcopy(Result,s1,2);
end;
end
else
Result:='';
end;
trubin (2007-12-24 21:01:00) [21]
> адо мне буду использовать менеджер памяти
А смысл?
irish_34 (2007-12-24 20:59:00) [22]
> > uses ShareMem, SysUtils;
>
>
> Зачем это
адо мне буду использовать менеджер памяти
palva (2007-12-24 20:46:00) [23]lstrcpy, lstrcpyA - это без разницы.
Desdechado (2007-12-24 19:19:00) [24]
uses System;
или
function lstrcpy(lpString1, lpString2: PChar): PChar; stdcall;
external 'kernel32.dll' name 'lstrcpyA';
Учите матчасть.
trubin (2007-12-24 19:18:00) [25]
> uses ShareMem, SysUtils;
Зачем это
> function lstrcpy(Str1, Str2: PChar): PChar; cdecl;external
> 'kernel32.dll';
Вроде StdCall требуется, может ошибка при попытке очистки стека
irish_34 (2007-12-24 18:50:00) [26]
> Показывай код ..
{.$Define Debug}
{$ALIGN OFF}
unit U1;
interface
uses ShareMem, SysUtils;
implementation
function lstrcpy(Str1, Str2: PChar): PChar;cdecl;external 'kernel32.dll';
function psc6(s:PChar):PChar;cdecl;export;
var
i1,j,j1:byte;
s1: string;
begin
j1:=0;
//if (s=nil) then s1:='0'
//else
begin
s1:=s;
if Pos('6',s1)>0 then
begin
delete(s1,1,Pos('6',s1));
if Pos(',',s1)>0 then j1:=Pos(',',s1) else
if Pos('.',s1)>0 then j1:=Pos('.',s1) else
if Pos(';',s1)>0 then j1:=Pos(';',s1) else
if Pos(' ',s1)>0 then j1:=Pos(' ',s1) else
if Pos(')',s1)>0 then j1:=Pos(')',s1);
if j1>0 then delete(s1,1,j1) else s1:='0';
if length(s1)=0 then s1:='0' else
begin
j:=0;
if Pos(',',s1)>0 then delete(s1,Pos(',',s1),length(s1));
if Pos('.',s1)>0 then delete(s1,Pos('.',s1),length(s1));
if Pos(';',s1)>0 then delete(s1,Pos(';',s1),length(s1));
if Pos(' ',s1)>0 then delete(s1,Pos(' ',s1),length(s1));
end;
end
else s1:='0';
end;
result:=lstrcpy(s,PChar(s1));
end;
exports
psc6;
end.
Сергей М. (2007-12-24 11:53:00) [27]
> дает такой же результат
>
Показывай код ..
irish_34 (2007-12-23 18:33:00) [28]
> [18]
дает такой же результат
Сергей М. (2007-12-20 08:25:00) [29]
> irish_34 (19.12.07 17:59) [69]
Код в [36] не соответствует шаблону из [18]
irish_34 (2007-12-19 19:23:00) [30]
> тебя решение интересует
меня интересует причина такой ошибки памяти
www (2007-12-19 18:15:00) [31]
> irish_34 (19.12.07 17:59) [69]
тебе показали явные в нем проблемы
тебя решение интересует?
нет?
irish_34 (2007-12-19 17:59:00) [32]
> Показывай свой код с шаблоном [18] ..
[36]
Сергей М. (2007-12-19 08:24:00) [33]
> irish_34 (18.12.07 19:00) [65]
> ошибка об инструкции всё равно остаётся (даже в [18])
Показывай свой код с шаблоном [18] ..
irish_34 (2007-12-18 22:24:00) [34]
> А бывает так, что на вход функции поступают значения NULL
> ?
нет, и условие есть+и проапдейтила специально, чтоб null не было
palva (2007-12-18 22:02:00) [35]А бывает так, что на вход функции поступают значения NULL ?
irish_34 (2007-12-18 19:00:00) [36]
> А это тогда как понимать
это вплане того, что ошибка об инструкции всё равно остаётся (даже в [18]), а [18] я пользовалась, собственно с ним функцией обрабатывается вся таблица не "спотыкаясь" о сторки, но
irish_34 (2007-12-18 18:56:00) [37]
> второе
я так и знала, плюс логика женщины ну ни как не совместима с логикой программиста ))))
Сергей М. (2007-12-18 08:32:00) [38]
> irish_34 (17.12.07 21:34) [61]
>
> всё равно ни чё хорошо не работает
Как это "не работает" ?
А это тогда как понимать
> irish_34 (15.12.07 11:18) [37]
>
> кстати заработала она
?
И почему не воспользовалась шаблоном в [18] ?
Правильный_Вася (2007-12-17 22:46:00) [39]второе
irish_34 (2007-12-17 21:34:00) [40]всё равно ни чё хорошо не работает, то ли это fb1 такой привередливый, то ли это ошибка ДНК