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

Clarion, Clarion 7

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

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

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

Сообщение gopstop2007 »

Необходимо реалтайме видеть список открытых файлов, в том числе алиасов, если возможно. Если готовые примеры или шаблоны, заранее спасибо.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

Для чего, суть задачи какая?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение gopstop2007 »

Есть программа (немаленькая), в которой некоторые явные + скрытые процессы (процедуры) могут пересекаться, + куча алиасов на файл. Хочется запустить tools-окно с мониторингом открытых-используемых файлов и увидеть то что нужно. :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

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

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

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

Можно ещё FileCallback перехватывать, тогда все стандартные OPEN()/CLOSE() доступны, правда насчёт алиасов не уверен.
Если нужна отдельная утилита мониторинга, то это всё надо из основной программы в табличку БД писать, а в мониторе её периодически опрашивать.
Есть встроенная функция STATUS(FILE), но это вроде не то по условию задачи.
С уважением, ДП
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

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

Сообщение Shur »

gopstop2007 писал(а):Хочется запустить tools-окно с мониторингом открытых-используемых файлов и увидеть то что нужно. :)
Простите, не догоняю, что же всё-таки хочется увидеть? Что беспокоит-то? Блокировки какие или что?
Может открыть все таблицы-файлы сразу при старте программы и снять проблему разом (мол типа всё открыто, мониторить нечего)?
Какой в программе используется драйвер БД? Темплейты какие? Программа какая? Если многопользовательская и надо мониторить по всем юзерам, то надо сохранять в БД, если однопользовательская, то глобальной очереди достаточно. Интересует факт открыт/закрыт или необходим счётчик?
Уточните всё это.
Последний раз редактировалось Shur 22 Июль 2013, 12:09, всего редактировалось 1 раз.
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение gopstop2007 »

Admin писал(а):Property на чтение статуса файла не помню что бы было. Без этого придется во все места открытия и закрытия вставлять свой код и в глобальном классе/переменных собирать информацию о количестве открытий/закрытий файлов и т.д.
Если используется только FileManager то все проще тем что можно его наследовать и изменить.
Как то так. Народ поправит надеюсь...
Вроде просто, а как сложно :) Думал, может кто сталкивался.
Дед Пахом писал(а):Можно ещё FileCallback перехватывать, тогда все стандартные OPEN()/CLOSE() доступны, правда насчёт алиасов не уверен.
Если нужна отдельная утилита мониторинга, то это всё надо из основной программы в табличку БД писать, а в мониторе её периодически опрашивать.
Есть встроенная функция STATUS(FILE), но это вроде не то по условию задачи.
Спасибо, посмотрел - FileCallback, пригодится. Про STATUS знал, думал еще кто чего подскажет. Коллективный разум :)
Shur писал(а):Простите, не догоняю, что же всё-таки хочется увидеть? Что беспокоит-то? Блокировки какие или что?
Старая программа, писалась периодически, хочется упорядочить "разросшийся" файл диктонари(DCT).
Shur писал(а):Может открыть все таблицы-файлы сразу при старте программы и снять проблему разом (мол типа всё открыто, мониторить нечего)?
Можно, если бы периодически файлы не пересоздавались, апендились и прочее.
Shur писал(а):Какой в программе используется драйвер БД? Программа какая? Если многопользовательская и надо мониторить по всем юзерам, то надо сохранять в БД, если однопользовательская, то глобальной очереди достаточно. Темплейты какие? Уточните всё это.
TPS + ODBC, мониторинг локально, ABC.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2584
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 3 раза
Поблагодарили: 26 раз

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

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

Вставьте в эмбед стандартной процедуры открытия файла некий код отслеживания.
Это я только кажусь дураком! На самом деле я полный идиот!
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

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

Сообщение Shur »

gopstop2007 писал(а):Старая программа, писалась периодически, хочется упорядочить "разросшийся" файл диктонари(DCT).
Всё равно не ясно. Как это может повлиять? Ну ты увидишь, что таблица открылась, потом она закрылась. Какой из этого вывод?
Или уже есть кандидаты на уничтожение?
Shur писал(а):Интересует факт открыт/закрыт или необходим счётчик?
Пардон, вот здесь ещё...
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение gopstop2007 »

Shur писал(а):
gopstop2007 писал(а):Старая программа, писалась периодически, хочется упорядочить "разросшийся" файл диктонари(DCT).
Всё равно не ясно. Как это может повлиять? Ну ты увидишь, что таблица открылась, потом она закрылась. Какой из этого вывод?
Или уже есть кандидаты на уничтожение?
Shur писал(а):Интересует факт открыт/закрыт или необходим счётчик?
Пардон, вот здесь ещё...
Когда делалось изначально, сильно не заморачивался с файлами, для параллельных процессов(процедур) создавал алиасы, если были сомнения насчет их "пересечения". Так как многие процессы работают параллельно по таймеру, по "запросу извне", четко определить "загруженность" файлов для меня тяжеловато :) Насчет факта открыт/закрыт или счетчик, я думал как проще. Очередь со списком открытых файлов и алисов, пробежаться по самым "узким" местам программы создавая условия "полной загруженности" и посмотреть список "дублирующих" открытых файлов.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

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

Сообщение Shur »

Что до сабжа, то здесь мог бы помочь банальный профайл таблиц.
Если идея создания очереди превалирует, то можно смотреть в сторону написания темплейта на открытие-закрытие таблиц. Жалко только, что он будет одноразовый, сиюминутный. Поэтому мысль идёт дальше.
gopstop2007 писал(а):Когда делалось изначально, сильно не заморачивался с файлами, для параллельных процессов(процедур) создавал алиасы, если были сомнения насчет их "пересечения".
gopstop2007 писал(а):
Shur писал(а): Может открыть все таблицы-файлы сразу при старте программы и снять проблему разом (мол типа всё открыто, мониторить нечего)?
Можно, если бы периодически файлы не пересоздавались, апендились и прочее.
Раз всё так запущено, то я бы вернулся к идее открытия всех файлов разом. Append здесь никоим образом не мешает. А вот что с пересозданием файлов? Как сейчас оно происходит? Может нацелиться на переделку этого?
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение gopstop2007 »

Shur писал(а):Что до сабжа, то здесь мог бы помочь банальный профайл таблиц.
Эх, вот так банально и серпом по я...м :D Хотя, можете посоветовать как этот профайл получить? Когда -то видел от CapeSoft но там вроде не то, что мне нужно
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

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

Сообщение Shur »

Вот наспех соструганный темплейт. Работу с самой очередью не проверял, возможно, что уже потерял навыки и что-то не учёл.
Вложения
ShurOpenClose.zip
(1.32 КБ) 171 скачивание
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

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

Сообщение gopstop2007 »

Спасибо огромное, и как этим воспользоваться? Принцип шаблона?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

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

Сообщение Shur »

gopstop2007 писал(а):Спасибо огромное, и как этим воспользоваться? Принцип шаблона?
М-м... Как бы так помягче... :?
Принцип простой:
открываешь таблицу -- появляется запись в очереди; открываешь ещё раз -- счётчик увеличивается; закрываешь таблицу -- счётчик уменьшается; закрываешь последний раз -- запись удаляется.
Действия:
- Зарегистрировать шаблон,
- в глобальных расширениях поставить галку в этом темплейте, чтобы он начал свою работу
- перекомпилировать приложение, убедиться, что оно собирается, и дополнительный код при этом генерируется сразу после открытия и после закрытия таблиц
- на своё усмотрение написать процедуру мониторинга очереди
- слегка доработать шаблон в части обработки записей очереди, чтобы, например, лочить глобальную очередь в момент её изменения.
Последний раз редактировалось Shur 24 Июль 2013, 15:03, всего редактировалось 1 раз.
Ответить