DCT -убрать лишнее

Clarion, Clarion 7

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

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

DCT -убрать лишнее

Сообщение gopstop2007 »

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

DCT -убрать лишнее

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

В Total Commander быстро нажать Alt-F7.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

DCT -убрать лишнее

Сообщение kreator »

gopstop2007 писал(а):Подскажите способ быстрого поиска не используемых полей в DCT.
Переведи.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

DCT -убрать лишнее

Сообщение gopstop2007 »

Дед Пахом писал(а):В Total Commander быстро нажать Alt-F7.
Таким решением и пользуюсь :D, когда знаю, что искать. Я не знаю какие поля не используются! У меня таблиц в dct около 60 умножить на количество полей в каждой таблице, то есть используя Alt-F7 - мудрое решение :)
kreator писал(а):Переведи.
Найти поля в DCT которые нигде в приложении(app+dll) не используются
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

DCT -убрать лишнее

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

gopstop2007 писал(а): У меня таблиц в dct около 60 умножить на количество полей в каждой таблице, то есть используя Alt-F7 - мудрое решение
Вообще-то я, например, могу с уверенностью сказать, какие поля из словаря у меня ИСПОЛЬЗУЮТСЯ, а если есть подозрение, что поле НЕ используется, то смотри мой первый ответ :-) И сколько таких полей, 2? 3?
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

DCT -убрать лишнее

Сообщение kreator »

Словарь - это хранилище избыточной информации. Им могут пользоваться несколько приложений. У этих приложений могут быть пересекающиеся таблицы. У нас, например, в словаре хранятся таблицы 1С-серверов, с которым работает только одно приложение (синхронизация с 1С). Проблема (если так можно сказать) в том, что App нельзя подсунуть несколько словарей. Поэтому есть один и он избыточный. Поэтому, думаю, нельзя автоматом сделать то, что Вы хотите.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

DCT -убрать лишнее

Сообщение gopstop2007 »

Дед Пахом писал(а):Вообще-то я, например, могу с уверенностью сказать, какие поля из словаря у меня ИСПОЛЬЗУЮТСЯ, а если есть подозрение, что поле НЕ используется, то смотри мой первый ответ :-) И сколько таких полей, 2? 3?
Если приложение одно и с ним работаешь постоянно, согласен. И завидую Вашей памяти :D
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

DCT -убрать лишнее

Сообщение gopstop2007 »

kreator писал(а): Словарь - это хранилище избыточной информации. Им могут пользоваться несколько приложений. У этих приложений могут быть пересекающиеся таблицы. У нас, например, в словаре хранятся таблицы 1С-серверов, с которым работает только одно приложение (синхронизация с 1С). Проблема (если так можно сказать) в том, что App нельзя подсунуть несколько словарей. Поэтому есть один и он избыточный. Поэтому, думаю, нельзя автоматом сделать то, что Вы хотите.
Согласен. А может так :cat:, как получить список не используемых полей, а потом можно (не)нужные таблицы исключить?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8029
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

DCT -убрать лишнее

Сообщение Игорь Столяров »

gopstop2007 писал(а): как получить список не используемых полей
Если память не подводит, то можно в проект вставить параметр "wdnu=>1"
Вот только не помню обрабатывает он не используемые локальные переменные или поля таблиц тоже ...
(попробуй или посмотри в справке)
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

DCT -убрать лишнее

Сообщение kreator »

gopstop2007 писал(а):А может так :cat:, как получить список не используемых полей, а потом можно (не)нужные таблицы исключить?
Есть SQL таблица, в ней несколько никогда неиспользуемых полей (типа DateTime, их заполняет SQL триггер). Мы всё равно их тянем в словарь для защиты от дурака (запрос "select * from table" приведёт к непредсказуемым результатам, если в словаре не все поля). Как бы ребёнка не выплеснуть.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

DCT -убрать лишнее

Сообщение gopstop2007 »

Спасибо всем кто принимал участие в обсуждении и особое спасибо Игорю - оно :cat:. Хоть начало, буду знать куда плыть :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

DCT -убрать лишнее

Сообщение RaFaeL »

Игорь Столяров писал(а): Если память не подводит, то можно в проект вставить параметр "wdnu=>1"Вот только не помню обрабатывает он не используемые локальные переменные или поля таблиц тоже ...(попробуй или посмотри в справке)
С ним тоже не очень удобно работать
Одиночные переменные хорошо обрабатывает, но вот например если объявлена типизированная очередь (полей так на ннадцать), из которой в этой процедуре используется всего несколько, то на неиспользуемые будет выдано сообщение. Я немного поигрался и отключил, так как выискивать среди сотни сообщений одно нужное - проще забить
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

DCT -убрать лишнее

Сообщение Admin »

Нет такого инструмента. И сомневаюсь что кто то сделает.
Нужно неплохой такой парсер исходников делать.
С учетом использования операторов типа WHAT, OMIT и т.д.

Вывод: Решает память, поиск глазками и т.д.
Если важно - потратьте неделю на чистку.

Как вариант:
Формируем ручками все возможные варианты переменных из словаря (прямое обращение и через префикс)
TVRMag.TOVAR
TVRMag.KOLVO1
TVR:TOVAR
TVR:KOLVO1
Пишем скрипт который перебирает по списку переменных все исходники и если не находит использование переменной - сообщает/выводит переменную в отдельный файл, для дальнейшего разбора полетов.
Далее анализируем ручками.
Скрипт можно на PHP написать за 5 минут, или на основе шаблонов Clarion (подольше).
Список переменных можно сформировать шаблоном #UTILITY

Далее удаляем все неиспользуемые переменные и пробуем компилировать приложение.
Если компилируется - тестируем.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

DCT -убрать лишнее

Сообщение Алексей- Софт-Центр »

Добрый день!
В принципе задача достаточно тривиальна:
1. Выгружаем словарь в текстовый файл
2. В секциях record определяем имена полей
3. Ищем их в *.clw файлах и формируем текстовый протокол работы, хоть по найденным clw-шкам, хоть по отсутствующим везде.

Как то так

Алексей
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

DCT -убрать лишнее

Сообщение kreator »

Алексей- Софт-Центр писал(а):обрый день!
В принципе задача достаточно тривиальна:
1. Выгружаем словарь в текстовый файл
2. В секциях record определяем имена полей
3. Ищем их в *.clw файлах и формируем текстовый протокол работы, хоть по найденным clw-шкам, хоть по отсутствующим везде.

Как то так
В clw автоматически будут поля, описанные в словаре. Хотя бы в качестве определения данных. Надо бы и этот момент учесть. Или поле первичного ключа в тексте может и не появиться, а его нельзя удалять (умозрительный пример, но всё же). Наверняка, ещё куча подводных камней.
We are hard at work… for you. :)
Ответить