Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Сохранение процедуры в файл


Автор: Чучмек 26.7.2008, 23:19
Оказывается можно сохранить процедуру в файл, а потом загрузить и выполнить в другой программе
например:
сохранение:
Код

var 
h,Lpr:integer;
procedure proc([параметры]);// сохраняемая процедура
begin
....
//
....
end;
......
begin
h:=filecreate('proca.nax');
filewrite(h,(@proc)^,Lpr);
fileclose(h);
end

загрузка и выполнение:
Код

var 
h,Lpr:integer;
pr:procedure([параметры]);
begin
....
getmem(@pr,Lpr);
h:=fileopen('proca.nax',0);
fileread(h,(@pr)^,Lpr); // загрузка процедуры из файла
fileclose(h);
pr([параметры]); // вызов загруженной процедуры
.....
end;


Здесь Lpr - размер занимаемый процедурой в динамической памяти.
Сохранение имеет ряд ограничений, так похоже пруцедура должна использовать только  локальные переменные .
Параметры в сохраняемой и вызываемой загруженной процедурах должны совпадать.

Теперь сам вопрос.
Как определить Lpr ?
Можно взять, конечно, заведомо избыток, или определить методом тыка. Но это ведь не выход.

Автор: Pini3n 27.7.2008, 09:10
Цитата(Чучмек @  27.7.2008,  00:19 Найти цитируемый пост)
Как определить Lpr ?

getmem(@pr, 1000) - 1 mb 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)