Список открытых файлов

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Re: Список открытых файлов

Сообщение gopstop2007 »

Shur писал(а): Принцип простой:
открываешь таблицу -- появляется запись в очереди; открываешь ещё раз -- счётчик увеличивается; закрываешь таблицу -- счётчик уменьшается; закрываешь последний раз -- запись удаляется.
Действия:
- Зарегистрировать шаблон,
- в глобальных расширениях поставить галку в этом темлейте, чтобы он начал свою работу
- перекомпилировать приложение, убедиться, что оно собирается, и дополнительный код при этом генерируется сразу после открытия и после закрытия таблиц
- на своё усмотрение написать процедуру мониторинга очереди
- слегка доработать шаблон в части обработки записей очереди, чтобы, например, лочить глобальную очередь в момент её изменения.
Из Ваших 10 строк мне надо было две последние :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Re: Список открытых файлов

Сообщение Shur »

gopstop2007 писал(а):
Shur писал(а): - на своё усмотрение написать процедуру мониторинга очереди
- слегка доработать шаблон в части обработки записей очереди, чтобы, например, лочить глобальную очередь в момент её изменения.
Из Ваших 10 строк мне надо было две последние :)
это самостоятельно
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Список открытых файлов

Сообщение Губин Игорь »

Да делов там на пару минут. Даже без шаблона. Тем более, что "процедуру мониторинга очереди" в любом случае писать надо самому, т.к. никто не знает как она должна выглядеть.
Это я только кажусь дураком! На самом деле я полный идиот!
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Список открытых файлов

Сообщение Yufil »

Хм... А если я ночью под одеялом в Source-процедуре файлами балуюсь? Какие там шаблоны?

Мож, попробовать подменить или перехватить Cla$file_open и Cla$file_close, поправив builtins.clw в локальном каталоге...
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Список открытых файлов

Сообщение Губин Игорь »

Юрий, не надо так сразу и жестоко! )))
1. Если ты уж ручками делаешь open/close, то не думаю, что тебе сложно отследить открытие файлов ;)
2. Речь идёт о явном использовании вопрошающим стандартных шаблонов
3. Лично я взял за привычку использовать даже в source-процедурах стандартные функции открытия файлов из шаблонов. Это очень упрощает жизнь, когда надо что-то сделать при ЛЮБОМ открытии ЛЮБОГО файла.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Список открытых файлов

Сообщение Дед Пахом »

А когда это в Source-процедурах запретили шаблоны?
С уважением, ДП
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Список открытых файлов

Сообщение Губин Игорь »

НИКОГДА! Юрий, очевидно, имел ввиду, когда он полностью пишет всё ручками. Включая open(file)
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Список открытых файлов

Сообщение Дед Пахом »

Ну ручками так ручками. Я всё же предпочитаю карандаши.
С уважением, ДП
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Список открытых файлов

Сообщение Yufil »

Умные вы...

А если я написал Relate:FIle.Open() - могу ли я быть уверен, что будут посчитаны ВСЕ реально открытые файлы?
Кроме того, реально файл открывается ровно один раз на тред, а в подсчётах этот фактор не учитывается, надо бы считать в каждом треде отдельно...
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Список открытых файлов

Сообщение Губин Игорь »

Да не критикуем мы тебя! Как можно?! :P
Так смотря куда и что вставить. Я вставляю коды в тело процедуры, ты в объект...
Это я только кажусь дураком! На самом деле я полный идиот!
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Список открытых файлов

Сообщение Yufil »

Не в объект.

Я призывал обмануть Кларион, прописав в Builtins.clw что-то типа

OPEN(FILE,UNSIGNED = 022H),NAME('TraceFILE_OPEN')
TRUEOPEN(FILE,UNSIGNED = 022H),NAME('Cla$FILE_OPEN')

CLOSE(FILE),NAME('TraceFILE_CLOSE')
TRUECLOSE(FILE),NAME('Cla$FILE_CLOSE')

и

TraceFile_Open Procedure(File,Mode)
Code
!.... Перед открытием ....
! Полезную информацию о файле извлекаем из Prop:Driver, Prop:Owner, Prop:Name и т д
TrueOpen(File,Mode)
!.... После открытия
Return

TraceFile_Close Procedure(File)
Code
!.... Перед закрытием ....
TrueClose(File,Mode)
!.... После закрытия
Return


Ну и поюзать Debug API из FreeABC и прогу DbgView от Sysinternals для наблюдения за...
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Re: Список открытых файлов

Сообщение Shur »

Yufil писал(а):Кроме того, реально файл открывается ровно один раз на тред, а в подсчётах этот фактор не учитывается, надо бы считать в каждом треде отдельно...
Я вот тоже об этом думал. Но тут зависит от того, что всё-таки нужно узнать у программы. Надеюсь, проблема назрела у Gopstop2007 не на ровном месте, и он хочет посчитать парность открытий-закрытий. Или где-то он пользуется source-процедурой, которая ничего не открыла, а таблицу начинает использовать. Или это не так?
А вообще это вопрос того, как он дальше мой простой темплейт разовьёт. Основа есть, остальное приложится.
Последний раз редактировалось Shur 25 Июль 2013, 14:15, всего редактировалось 2 раза.
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

Re: Список открытых файлов

Сообщение Губин Игорь »

Yufil писал(а):Не в объект.
Ну а я использую Embed из CheckOpen. Все требуемые файлы открываются только через неё. Не надо никого обманывать, не надо (хуже налоговой!) вносить исправления в стандартные файлы...
Это я только кажусь дураком! На самом деле я полный идиот!
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Re: Список открытых файлов

Сообщение gopstop2007 »

Я как раз и смотрю, перечитываю, ищу и т.п., чтобы выбрать и найти наиболее простое и эффективное решение.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить