Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

UDF   Найти похожие ветки 

 
trubin ©   (2007-12-24 21:01) [80]


> адо мне буду использовать менеджер памяти


А смысл?


 
palva ©   (2007-12-24 21:38) [81]

Никак не могу приспособиться к вашей логике. Возьмем, например, такую строку:
"1234 5 6;xxx,yyy"
Ваша программа должна выделить из нее строку "yyy" Так?


 
irish_34   (2007-12-24 22:03) [82]


> А смысл?

чтоб менше ошибок было как ещё в одном разговоре написано, используется один общий менеджер


 
irish_34   (2007-12-24 22:04) [83]


> Ваша программа должна выделить из нее строку "yyy" Так?

ххх, но это не важно что происходит со строками, проблема я так поняла в некорректной работе с PChar


 
palva ©   (2007-12-24 22:15) [84]

> ххх
Тогда содержательно ваша программа работает неправильно. Возможно из-за ошибок, которых вы не ожидали, на ваших тестовых данных где-нибудь переполняется буфер.

> проблема я так поняла в некорректной работе с PChar
А для проверки работы с PChar можно временно выкинуть всю начинку и присвоить выходному параметру константное значение. По-крайней мере поймете, из-за чего программа валится.

Еще, Напишите здесь, как вы описали UDF в FireBird.


 
irish_34   (2007-12-24 22:29) [85]


> Еще, Напишите здесь, как вы описали UDF в FireBird.

DECLARE EXTERNAL FUNCTION CEX6
   CSTRING(50)
RETURNS CSTRING(50)
ENTRY_POINT "psc6" MODULE_NAME "Pr1.dll"


 
palva ©   (2007-12-24 22:58) [86]

trubin ©   (24.12.07 19:18) [76]
Вот это справедливо.


 
Сергей М. ©   (2007-12-25 08:21) [87]


> irish_34   (24.12.07 22:03) [82]


> используется один общий менеджер


Общий с кем ?


> irish_34   (24.12.07 22:29) [85]


Отсебячина.

В [18] ф-ция декларирована иначе.

Что, проблема даже скопировать шаблон из [18] "один в один" ?)


 
Desdechado ©   (2007-12-25 11:15) [88]

> lstrcpy, lstrcpyA - это без разницы.
Разница выделена.


 
Сергей М. ©   (2007-12-25 11:56) [89]


> irish_34   (24.12.07 22:04) [83]
>
>


Приведи десяток различных возможных вариантов строковых значений, которые ожидаются в кач-ве параметров твоей ф-ции, и выдели в них жирным подстроки, которые должна возвращать ф-ция ..


 
palva ©   (2007-12-25 12:10) [90]


> Desdechado ©   (25.12.07 11:15) [88]
> > lstrcpy, lstrcpyA - это без разницы.
> Разница выделена.

Вообще да. Разница есть. В имени. Но я имел в виду, что без разницы, какое имя указывать. Это одна и та же функция.

{$APPTYPE CONSOLE}
uses Windows;
var
 h: THandle;
 f: FarProc;
begin
 h := LoadLibrary("Kernel32.dll");
 f := GetProcAddress(h, "lstrcpy");
 WriteLn(Integer(f)); // 2088812033
 f := GetProcAddress(h, "lstrcpyA");
 WriteLn(Integer(f)); // 2088812033
end.


 
Desdechado ©   (2007-12-25 12:15) [91]

> palva ©   (25.12.07 12:10) [90]
Разница выделена была в том посте, который ты комментировал вначале. Это соглашение о вызовах stdcall.
А имена, которые ты зацепил, действительно синонимы, с этим я и не спорю.


 
palva ©   (2007-12-25 13:10) [92]

Desdechado ©   (25.12.07 12:15) [91]
OK


 
irish_34   (2007-12-25 18:54) [93]


> Приведи десяток различных возможных вариантов строковых
> значений, которые ожидаются в кач-ве параметров твоей ф-
> ции, и выдели в них жирным подстроки, которые должна возвращать
> ф-ция ..

6,4,10
6(рез);7;103;5
6.8.12.10.9
6.21.15.21.5.21
6.15п.11.15
6.10  чпу
6.5.15.5.7.5.7.5
6.15(рихт.)8.15.13(шл.)8  чпу


 
irish_34   (2007-12-25 18:56) [94]


> Что, проблема даже скопировать шаблон из [18] "один в один"
> ?)

Переделывала жи


 
trubin ©   (2007-12-25 19:02) [95]

Внимательно прочитай статью указанную в [1], хорошая статья


 
irish_34   (2007-12-25 19:05) [96]


> Внимательно прочитай статью указанную в [1], хорошая статья

ды читала я, что конкретно не так-то?


 
Сергей М. ©   (2007-12-26 09:22) [97]


> irish_34   (25.12.07 18:54) [93]


Т.е. в интересующих тебя строках 6-ка всегда является первым символом строки ? Или есль другие варианты, где 6-ка не первый символ ?

Например, 7.6.15п.11.15 ?


 
irish_34   (2007-12-26 18:19) [98]

6-ка всегда является первым символом строки


 
Сергей М. ©   (2007-12-27 09:57) [99]

Держи, горемычная)


DECLARE EXTERNAL FUNCTION CEX6
 CSTRING(32767)
RETURNS PARAMETER 1
ENTRY_POINT "psc6" MODULE_NAME "PDL6.dll"

function psc6(AString:PChar):PChar; cdecl;

function ExtractSubstring(AString: String): String;
const
 ld: PChar = ".,; ";
 rd: PChar = ".,; )";
var
 i,n,k,b: Integer;

function IsDelimiter(ADelimiters: PChar; ASymbol: Char): Boolean;
var
 i: Integer;
begin
 i := 0;
 Result := False;
 while (i < n) and not Result do
 begin
   Result := ASymbol = ADelimiters[i];
   Inc(i);
 end;
end;

begin
 Result := "0";
 if AString[1] <> "6" then Exit;
 i := 2;
 k := Length(AString);
 n := StrLen(ld);
 while (i <= k) and not IsDelimiter(ld, AString[i]) do Inc(i);
 Inc(i);
 b := i;
 n := StrLen(rd);
 while (i <= k) and not IsDelimiter(rd, AString[i]) do Inc(i);
 Result := Copy(AString, b, i-b);
 if Result="" then Result := "0";
end;

begin
Result := lstrcpy(AString, PChar(ExtractSubstring(AString)));
end;


 
irish_34   (2007-12-28 20:48) [100]


> Держи, горемычная)

:* спасибо огромное, но и твоя и моя работают только начиная с 1.5 FB, а 1.0FB...даже и не знаю как он может работать с UDF.и я сделала проще установила 1.5



Страницы: 1 2 3 вся ветка

Текущий архив: 2008.01.27;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.026 c
3-1189751998
Xmen
2007-09-14 10:39
2008.01.27
Учет доставки периодики. Проблема с недоставкой.


2-1198758118
Wolf
2007-12-27 15:21
2008.01.27
Подскажите функцию удаления определенных символов из строки


15-1198232238
tytus
2007-12-21 13:17
2008.01.27
Как скопировать файл по сети?


2-1198725839
Washington
2007-12-27 06:23
2008.01.27
Копирование таблиц из одной базы данных в другую


2-1197266998
Evgenyy
2007-12-10 09:09
2008.01.27
TMemoryStream - копировать, сохранить