DCT -убрать лишнее
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
DCT -убрать лишнее
Подскажите способ быстрого поиска не используемых полей в DCT. Спасибо!
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
DCT -убрать лишнее
Переведи.gopstop2007 писал(а):Подскажите способ быстрого поиска не используемых полей в DCT.
We are hard at work… for you. 

-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
DCT -убрать лишнее
Таким решением и пользуюсьДед Пахом писал(а):В Total Commander быстро нажать Alt-F7.


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

С уважением, ДП
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
DCT -убрать лишнее
Словарь - это хранилище избыточной информации. Им могут пользоваться несколько приложений. У этих приложений могут быть пересекающиеся таблицы. У нас, например, в словаре хранятся таблицы 1С-серверов, с которым работает только одно приложение (синхронизация с 1С). Проблема (если так можно сказать) в том, что App нельзя подсунуть несколько словарей. Поэтому есть один и он избыточный. Поэтому, думаю, нельзя автоматом сделать то, что Вы хотите.
We are hard at work… for you. 

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

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
DCT -убрать лишнее
Согласен. А может такkreator писал(а): Словарь - это хранилище избыточной информации. Им могут пользоваться несколько приложений. У этих приложений могут быть пересекающиеся таблицы. У нас, например, в словаре хранятся таблицы 1С-серверов, с которым работает только одно приложение (синхронизация с 1С). Проблема (если так можно сказать) в том, что App нельзя подсунуть несколько словарей. Поэтому есть один и он избыточный. Поэтому, думаю, нельзя автоматом сделать то, что Вы хотите.

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
DCT -убрать лишнее
Если память не подводит, то можно в проект вставить параметр "wdnu=>1"
Вот только не помню обрабатывает он не используемые локальные переменные или поля таблиц тоже ...
(попробуй или посмотри в справке)
Make Clarion Great Again ! 
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
DCT -убрать лишнее
Есть SQL таблица, в ней несколько никогда неиспользуемых полей (типа DateTime, их заполняет SQL триггер). Мы всё равно их тянем в словарь для защиты от дурака (запрос "select * from table" приведёт к непредсказуемым результатам, если в словаре не все поля). Как бы ребёнка не выплеснуть.gopstop2007 писал(а):А может так, как получить список не используемых полей, а потом можно (не)нужные таблицы исключить?
We are hard at work… for you. 

-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
DCT -убрать лишнее
Спасибо всем кто принимал участие в обсуждении и особое спасибо Игорю - оно
. Хоть начало, буду знать куда плыть 


“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
DCT -убрать лишнее
С ним тоже не очень удобно работать
Одиночные переменные хорошо обрабатывает, но вот например если объявлена типизированная очередь (полей так на ннадцать), из которой в этой процедуре используется всего несколько, то на неиспользуемые будет выдано сообщение. Я немного поигрался и отключил, так как выискивать среди сотни сообщений одно нужное - проще забить
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
DCT -убрать лишнее
Нет такого инструмента. И сомневаюсь что кто то сделает.
Нужно неплохой такой парсер исходников делать.
С учетом использования операторов типа WHAT, OMIT и т.д.
Вывод: Решает память, поиск глазками и т.д.
Если важно - потратьте неделю на чистку.
Как вариант:
Формируем ручками все возможные варианты переменных из словаря (прямое обращение и через префикс)
TVRMag.TOVAR
TVRMag.KOLVO1
TVR:TOVAR
TVR:KOLVO1
Пишем скрипт который перебирает по списку переменных все исходники и если не находит использование переменной - сообщает/выводит переменную в отдельный файл, для дальнейшего разбора полетов.
Далее анализируем ручками.
Скрипт можно на PHP написать за 5 минут, или на основе шаблонов Clarion (подольше).
Список переменных можно сформировать шаблоном #UTILITY
Далее удаляем все неиспользуемые переменные и пробуем компилировать приложение.
Если компилируется - тестируем.
Нужно неплохой такой парсер исходников делать.
С учетом использования операторов типа 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-шкам, хоть по отсутствующим везде.
Как то так
Алексей
В принципе задача достаточно тривиальна:
1. Выгружаем словарь в текстовый файл
2. В секциях record определяем имена полей
3. Ищем их в *.clw файлах и формируем текстовый протокол работы, хоть по найденным clw-шкам, хоть по отсутствующим везде.
Как то так
Алексей
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
DCT -убрать лишнее
В clw автоматически будут поля, описанные в словаре. Хотя бы в качестве определения данных. Надо бы и этот момент учесть. Или поле первичного ключа в тексте может и не появиться, а его нельзя удалять (умозрительный пример, но всё же). Наверняка, ещё куча подводных камней.Алексей- Софт-Центр писал(а):обрый день!
В принципе задача достаточно тривиальна:
1. Выгружаем словарь в текстовый файл
2. В секциях record определяем имена полей
3. Ищем их в *.clw файлах и формируем текстовый протокол работы, хоть по найденным clw-шкам, хоть по отсутствующим везде.
Как то так
We are hard at work… for you. 
