|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.08.2019, 22:01 | #11 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Так мой смайлик улыбается счастливо (а не ехидно) по случаю окончания маршрута у ледника где-то на границе с Грузией в середине 80-х. А бошка теперь, конечно, не так быстра и остра, как в молодости, но парадоксально - если бы лет 40 назад, когда моя фотоморда не раз Доской почета отмечалась как лучший инженегр - так вот я тогда и половины не знал того, что знаю и умею теперича. Но увы... Ну иногда студню-лентяю прогу накрейтю или себе дивайсик спаяю какой-нить - чтоб мозга шевелилась.
|
16.08.2019, 01:39 | #12 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
Конечно нет. Т.е. под описанием задачи я не имел в виду только "описание", но конкретизацию того, для чего вам нужно "из некоторой процедуры вызвать другую, заранее неизвестную процедуру (или одну из известных)".
P.S. А по поводу "усыхания мозгов" это вы перебарщиваете. |
16.08.2019, 11:02 | #13 |
Пользователь
Регистрация: 14.08.2019
Сообщений: 18
|
Все равно, изложив предысторию мне легче конкретизировать.
Функция (пусть будет "First"), та, что перебирает файлы в каталогах (папках) и ищет файлы соответствующие некоторому критерию, используется несколько раз (точнее 8). В написанных 10 лет назад программах, действия, которые нужно выполнять с каждым найденным файлом описаны непосредственно в теле этой функции. Сейчас я хочу оформить действия в восьми разных процедурах и вызывать нужную для каждого найденного файла. Но как объяснить функции "First", какую из 8 процедур нужно вызывать? Оптимальный вариант - указывать имя процедуры в параметре функции "First" при ее вызове. Понимаю, что выполнение программы замедлится на время вызова и возврата (передачи параметра - Push, вызова - Call и возврата - Ret). И это для каждого найденного файла. Не хотелось бы дополнительно увеличивать это время, добавив оператор выбора (case) в функцию "First". В связи с этим и был задан вопрос. Использовать в параметре процедурный тип здесь не получается. Процедурный тип и процедура - разные типы (или я чего-то не понимаю, тогда попрошу пример кода, пожалуйста), пока остановился на операторе выбора (подумал, ну подумаешь всего 8 вариантов). Теперь, после конкретизации, если Вы можете подсказать другое, более оптимизированное решение, то подскажите, только с учетом, что перед Вами любитель и как всякий любитель имеет далеко неполные знания, в том, что ему интересно - может быть дока, а в других близколежащих темах - полный профан. Если нужно еще что нибудь уточнить, то я с удовольствием. И отдельно: Спасибо разработчикам сайта. Очень удобна кнопочка расширения поля ввода сообщения. И вообще, сайт прекрасно структурирован - легко можно найти нужную информацию. На других сайтах с этим делом все намного сложнее, иногда информацию проще найти в поисковике, причем она будет найдена на этом же сайте. |
16.08.2019, 11:49 | #14 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Код:
Код:
Цитата:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 16.08.2019 в 12:01. |
||
16.08.2019, 14:34 | #15 |
Пользователь
Регистрация: 14.08.2019
Сообщений: 18
|
Спасибо.
Разобрался, все получилось. Сейчас даже не могу понять, почему я сразу отбросил возможность использовать процедурный тип. С уважением, Николай. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вызвать функцию(с++) | Sterben | Помощь студентам | 13 | 29.09.2015 09:01 |
написать программу массивы (C++) - Написать функцию выводящую на экран указанную часть таблицы умножения | Саша1990 | Помощь студентам | 1 | 02.02.2015 08:01 |
Как вызвать функцию.. | Аделинкка | Общие вопросы Delphi | 10 | 21.12.2012 10:47 |
Як вызвать функцию из dll в C# ? | Dr.Pauliss | Помощь студентам | 5 | 26.09.2011 12:42 |
Как вызвать функцию? | blackstersl | Общие вопросы Delphi | 10 | 07.06.2009 19:22 |