Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10

Удаление мусора из исходника

03.06.2013, 18:30. Показов 3642. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется исходник программы от предыдущего программиста.
Вот кусочек:
C++
1
2
3
4
5
6
7
8
         {
//              return (float)FormColorSliders->m_SliderYellow*
//              (float)FormColorSliders->m_SliderCommon/65536;
              ret=(float)FormColorSliders->m_SliderYellow*
              (float)FormColorSliders->m_SliderCommon/65536;
              DataFromDvigok[chanel]=ret;
 
         }
и в таком духе тысячи, десятки тысяч строк, половина из которых (или больше) - балласт.

Как избавиться от них? И даст ли это что-либо?
Вручную затирать строки - это немыслимо, работы на месяцы.

И кроме этого, много файлов *.cpp , *.h и т.д., некоторые из которых также могут быть "брошенными" (неиспользуемыми).

Есть ли в билдере какой-либо механизм почистить исходник автоматически?
Полезные комментарии, естественно, нужно сохранить.

Спасибо за все полезные советы
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2013, 18:30
Ответы с готовыми решениями:

Удаление мусора
Доброе утро, Форумчане! С надвигающимся Новым Годом! С 2007 года автоматизирую работу розничного ювелирного магазина в Access 2003. За...

.gitignore удаление мусора
Добрый день! У меня одна проблема. При разработке в репозиторий был добавлен так называемый мусор. Сейчас я поправил файл .gitignore. ...

Удаление объекта из памяти без сборщика мусора
Как удалить объект из памяти, не используя сборщик мусора (например, его отключив)? Добавлено через 1 минуту Я не знаю как это...

32
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
03.06.2013, 19:16
Эти комменты на всякий случай оставлены, для того, чтобы, если понадобится, то вернуть в прежнее состояние.
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
03.06.2013, 21:39  [ТС]
это я понимаю, но
для меня написанные строки - китайская грамота,
а их автора уже нет,
и для меня непонятно,
какие строки являются работающими вариантами,
а какие - просто неправильно написаны, поэтому никогда не пригодятся и попросту являются мусором.
Для нового программиста это балласт, который только затрудняет и без того нелёгкую задачу разобраться в чужом коде.

в языке HTML (которым я владею) существуют редакторы, которые выделяют цветом неправильно написанные операторы, теги и другие элементы.

Есть ли такий инструменты в С++Билдере? , или может другие утилиты есть для этого?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.06.2013, 21:53
мусора в цитируемом коде нет, есть однострочные комментарии:
C++
1
2
3
4
5
6
7
// ...
возможно также для нескольких строк:
/*
  ...
  ...
  ...
*/
, аналоги более знакомого вам
HTML5
1
<!-- ... -->
, комментарии при компиляции опускаются и на программу не влияют, для чего они нужна - вам уже сказали выше. В отличие от языка разметки, которым является HTML, в языке программирования предусмотреть все маразмы пользователя невозможно, но все, что нужно для исправления ошибок, если таковы имеются, выводится в окно сообщений. дальше - как обычно: спасение утопающих - дело рук самих утопающих.

Добавлено через 6 минут
для массового удаления комментариев можно написать махонькую программку, которая будет грузить файл, искать строки, начинающиеся на
C++
1
//
, и удалять эти строки. возможно, такая программа и есть
шире вопрос освещен здесь:
Удалить комментарии из файла. Помогите найти ошибку.

но я бы этого не делал
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
03.06.2013, 23:06
Цитата Сообщение от СДФ Посмотреть сообщение
в языке HTML (которым я владею) существуют редакторы, которые выделяют цветом неправильно написанные операторы, теги и другие элементы.
я думаю что в данном случае закомментированные строки написаны правильно, и их раскомментирование не вызовет ошибки, которую мог бы отловить билдер. Это только изменит логику работы программы, но компилятору не дано понять ваш замысел и определить, нужны ли эти операции.

Так же в коде сайта на HTML может быть куча кода, который не будет подсвечиваться как ошибочный, но его использование испортит работу сайта.

Тебе остаётся либо постепенно разобраться в коде (сделай привычное форматирование, пиши свои комментарии к строкам, смысл который понятен. Раскручивай клубок.), либо оставить всё как есть, ничего не меняя.
ИМХО, если править код, работу которого не понимаешь, ничего хорошего в результате не выйдет.

Добавлено через 2 минуты
Да, и что бы ты не делал, не забывай про бекапы!
Наврное и сам знаешь, но на всякий случай напоминаю :-)
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
04.06.2013, 10:28  [ТС]
Все это я тоже знаю и понимаю,
я не понимаю значения (перевода на русский язык) этих строк,
и их синтаксической правильности или неправильности.

а вопрос состоял именно об удалении строк с синтаксическими и другими ошибками, которые не будут работать ни при каких обстоятельствах, как например приведённая ниже закомментированная строка из HTML:
//<tr bgkolor="#EEF2F4">
<tr bgcolor="#EEF2F4">

Поставлю вопрос иначе: есть ли в С++Билдере закрытый ограниченный список слов (команд, операторов и т.п.), которые распознаются компилятором
(подобно тому, как bgcolor распознаётся браузером, а bgkolor - нет),
которые надо просто выучить (как выучить правильное написание тегов в HTML) и применять.

Вот, например, глядя на приведённый в моём первом сообщении кусочек кода, я начинаю думать,
что оператор
ret= - правильный, а
return - неправильный,
Это я к примеру, т.к. таких строк и слов там тысячи...
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
04.06.2013, 11:13
Цитата Сообщение от СДФ Посмотреть сообщение
оператор
ret= - правильный, а
return - неправильный,
тут ret не оператор, а переменная, а может быть и оператором, но не стандартным(зарезервированным)
так что то что вы задумали довольно мутная штука, я про такие инструменты-анализаторы не знаю и они вряд ли есть. все что есть это средства компилятора.

например компилятор сообщает(предупреждает) какие переменные были объявлены, но ни разу не использовались, т.е. безболезненно могут быть удалены из кода.

либо указывает участки кода которые будут недоступны (недосягаемы), т.е. не будут исполняться о по тем или иным причинам
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.06.2013, 11:27
и HTML, и в С++ этот "закрытый ограниченный список слов" (надо ж такое придумать ) называется ключевыми словами, если вы этого не знаете, то вам, видимо, следует все же продолжить изучать HTML, для начала.

в закомментированных строках выделение/подсветка ключевых слов, "команд, операторов и и.п." не производится, что в С++, что в HTML, вся строка/строки комментария выделяются своим цветом

и в С++, и в HTML ключевое слово просто подсвечивается (выделяется), но уж никак не анализируется "правильность" его использования в данном конкретном случае.

куда производится вывод ошибок, как для С++, так и для HTML, в хороших, не визуальных типа "супер-пупер-портал за 15 минут", а в действительно хороших редакторах кода - уже было сказано выше

а разбираться в чужом кода, почему тысячи строк закомментированы, и что из этого работает, а что не работает, и в какой ситуации, и что имелось ввиду, и что из этого выбросить, а что оставить, - вам жизни не хватит, поскольку в подобных вещах годы спустя путается и сам разработчик, разве что ваш работодатель будем иметь возможность созерцать вашу постоянную занятость, а вы будете на многие годы обеспечены стабильной работой без перспектив увольнения, поскольку чем больше вы погрязнете в этом коде, тем более ценным сотрудником будете становиться. радует и то, что при выходе на пенсию вы сможете передать свои многотомные наработки по данному коду следующему поколению изучателей HTML.
удачи вам в вашем нелегком, но очень нужном и уважаемом труде.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
04.06.2013, 11:27
Цитата Сообщение от СДФ Посмотреть сообщение
которые не будут работать ни при каких обстоятельствах
Ну если раскомментировать такую строку, то билдер не сможет скомпилировать проект и будет на неё ругаться...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
04.06.2013, 11:38
Цитата Сообщение от СДФ Посмотреть сообщение
Полезные комментарии, естественно, нужно сохранить.
Насчет полезности... - только homo sapiens в состоянии это определить; никакой компилятор не поможет. Что касается сути проблемы, - можно в хэдэрах (file.h) удалять в начале файла все инклюды: при сохранении файла компилятор сам включит только необходимые. А вообще-то для разрешения проблем с комментариями лучше обзавестись каким-нибудь навороченным редактором (типа notepad++), а не рассчитывать на средства Билдера.
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
04.06.2013, 14:29  [ТС]
Спасибо всем кто откликнулся, есть некоторая пища для изучения

Цитата Сообщение от AntonChik Посмотреть сообщение
все что есть это средства компилятора.
Вот именно их я хотел бы и изучить. Буду благодарен за ссылку на такой документ на русском языке.
Повторю, для меня пока весь этот код - это шумерские письмена,
но иногда я замечаю повторяющиеся буквы и значки.

Цитата Сообщение от LK Посмотреть сообщение
и HTML, и в С++ этот "закрытый ограниченный список слов" называется ключевыми словами, если вы этого не знаете, то вам, видимо, следует все же продолжить изучать HTML, для начала.
насколько я знаю, в сайтостроении ключевыми словами называется совершенно другие вещи...


Цитата Сообщение от nick42 Посмотреть сообщение
Насчет полезности... - только homo sapiens в состоянии это определить; никакой компилятор не поможет. Что касается сути проблемы, - можно в хэдэрах (file.h) удалять в начале файла все инклюды: при сохранении файла компилятор сам включит только необходимые. А вообще-то для разрешения проблем с комментариями лучше обзавестись каким-нибудь навороченным редактором (типа notepad++), а не рассчитывать на средства Билдера.
Вот это уже крупица полезной информации, спасибо, попробую...

Вопрос об используемости в программе каждого из многочисленных файлов срр пока остался неясным
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.06.2013, 16:32
Цитата Сообщение от СДФ Посмотреть сообщение
И даст ли это что-либо?
Компилироваться будет быстрей. Комментарии не попадают в код и вообще компилятором игнорируются, соответственно на этапе исполнения ни на что влиять не могут.

Добавлено через 1 минуту
Цитата Сообщение от СДФ Посмотреть сообщение
Полезные комментарии, естественно, нужно сохранить.
И как автомат должен различать полезные и бесполезные комментарии?

Добавлено через 1 минуту
Цитата Сообщение от СДФ Посмотреть сообщение
в языке HTML (которым я владею) существуют редакторы, которые выделяют цветом неправильно написанные операторы, теги и другие элементы.
А также синтаксически правильные, но устаревшие с точки зрения замысла фрагменты? Синтаксических ошибок там нет.
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
04.06.2013, 16:37  [ТС]
Целью этой затеи была очистка именно от мусора, синтаксически ошибочных строчек, а не вариантов решения задачи.
Скорость компиляции, в принципе терпима (несколько минут), ради этого заморачиваться не стоит.
Только ради того, чтобы, проведя один раз очистку от того, что никогда не пригодится, легче было разбираться в остальном.
Термин "полезность" касательно комментариев, проскользнул выше ошибочно, имелась ввиду именно не полезность как таковая (что является субъективной оценкой, для каждого человека своей), а именно синтаксическая корректность
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.06.2013, 16:50
Цитата Сообщение от СДФ Посмотреть сообщение
Поставлю вопрос иначе: есть ли в С++Билдере закрытый ограниченный список слов (команд, операторов и т.п.), которые распознаются компилятором
(подобно тому, как bgcolor распознаётся браузером, а bgkolor - нет),
которые надо просто выучить (как выучить правильное написание тегов в HTML) и применять.
Это называется список зарезервированных слов.

Добавлено через 2 минуты
Цитата Сообщение от СДФ Посмотреть сообщение
ret= - правильный, а
return - неправильный,
правильно то и другое, но для разных целей. ret= - присваивание значения переменной ret (она не зарезервирована, зато должна быть объявлена выше), а return - самой функции с выходом из неё в вызывающую.

Добавлено через 7 минут
Цитата Сообщение от nick42 Посмотреть сообщение
при сохранении файла компилятор сам включит только необходимые.
Вообще то он этого не умеет, а умел бы - так сохранение выливалось бы в часы поиска по всем винтам, в каком файле объявлено то, к чему ты обращаешься. Причём, часы - это для одной единственной функции и в предположении, что имена формальных параметров в прототипе опущены, а приводить типы фактических параметров не нужно. А если функций 3-4, то уже сутки. А если 30-40, то месяц. А если тысяча, то уже больше года. Единственный, кто может быстро понять, какие головы нужны, это человек. И только зная замысел. Зато ругаться на отсутствующий прототип он умеет и будет. Комментишь инклад, компилишь, при удаче удаляешь.

Добавлено через 3 минуты
Цитата Сообщение от СДФ Посмотреть сообщение
насколько я знаю, в сайтостроении ключевыми словами называется совершенно другие вещи...
В программировании тоже, но большинство зарезервированных слов являются ключевыми.
1
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
04.06.2013, 17:15  [ТС]
Иными словами, поставленная в начале темы задача автоматически не решается,

т.к. bgcolor является тегом и распознаётся браузером как тег,
а bgkolor может быть заданной программистом переменной (которая вообще может называться как угодно), следовательно, ограничительного перечня слов быть не может...

Добавлено через 3 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Зато ругаться на отсутствующий прототип он умеет и будет. Комментишь инклад, компилишь, при удаче удаляешь.
так, наверное, и файлы можно по очереди выключать (например, изменением имени), если компилится - файл не нужен...
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
04.06.2013, 17:30
Цитата Сообщение от СДФ Посмотреть сообщение
т.к. bgcolor является тегом и распознаётся браузером как тег,
а bgkolor может быть заданной программистом переменной (которая вообще может называться как угодно), следовательно, ограничительного перечня слов быть не может...
Заданная программистом переменная объявлена в самой программе, а слова: union, class, doble, float, int, long, short, small, uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, hyper, char, signed, unsigend, std::string из ниоткуда не появляются и их количество в каждой конкретной версии языка строго фиксировано.
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
05.06.2013, 03:33  [ТС]
Вообще, печально, что на форуме программистов из десятка ответивших только один-два ответили по существу, как программисты,
а остальные, как базарные бабы, роются в чужом белье и пытаются считать чужие деньги.
При этом совершенно дремучим образом путают убытки работодателя,
например, отказ заказчика от оборудования, производимого работодателем, на 3-4 миллиона руб.,
т.е. неполученную выручку,
неполученную прибыль всей фирмы (20-30 % от этой суммы) вследствие того, что программист вовремя не сделал программу, его оживляющую,
и зарплату этого программиста.
При этом считают, что работодатель должен всю выручку от работы фирмы отдавать в качестве зарплаты этому самому сверхгениальному программисту,
а все расходы по работе фирмы (помещение, материалы, комплектующие, оборудование, производство, зарплату всех остальных сотрудников, налоги) - оплачивать из неисчерпаемого личного мешка с деньгами,
который, конечно же, стоит под кроватью у каждого работодателя.
И плюс к этому убытку еще столько же отдать программисту, не выполняющему свою работу в срок.
Ибо весь мир вокруг такого гения предназначен и функционирует исключительно для его ублажения.
И всякий сбой такого функционирования воспринимают как плевок на себя, любимого.
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.06.2013, 05:49
Лучший ответ Сообщение было отмечено как решение

Решение

печально, что на форуме программистов "высокие темы" пытаются поднимать люди для которых
написанные строки - китайская грамота
...
Повторю, для меня пока весь этот код - это шумерские письмена,
но иногда я замечаю повторяющиеся буквы и значки.
при этом реально ожидая какого-то волшебного простого решения.
извините, но все шестеро вам ответивших, не десяток, побуду занудой, ответили вам по существу.

Буду благодарен за ссылку на такой документ на русском языке.
таким документом является англо-русский словарь, ибо настроив компилятор на максимальный уровень выдачи предупреждений, он вам сам все расскажет и укажет, вам останется лишь перевести, а понимание переведенного это уже другой вопрос, тут вам сюда:
Библиотека VCL и сопутствующие материалы
Путеводитель по книжкам про C++ Builder
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 10
05.06.2013, 06:00  [ТС]
да, это печально, т.к. ещё до появления этой темы
на моё объявление о поиске программиста (которое посмотрели 120 !!! человек) не образовалось НИ ОДНОГО отклика.
ПОэтому, наряду с архитектурным и строительным проектом, разработкой и организацией производства всего оборудования, снабжения материалами, и ещё многими задачами придется самому ещё и в программировании разбираться.
Это действительно печально, но... кто везёт, того и погоняют, а десяток других смотрят на работающего и зубоскалят.
Таково сейчас наше мироустройство.
Увы.

Спасибо за ссылки.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
05.06.2013, 06:18
Цитата Сообщение от СДФ Посмотреть сообщение
да, это печально, т.к. ещё до появления этой темы
на моё объявление о поиске программиста (которое посмотрели 120 !!! человек) не образовалось НИ ОДНОГО отклика.
ПОэтому, наряду с архитектурным и строительным проектом, разработкой и организацией производства всего оборудования, снабжения материалами, и ещё многими задачами придется самому ещё и в программировании разбираться.
Это действительно печально, но... кто везёт, того и погоняют, а десяток других смотрят на работающего и зубоскалят.
Таково сейчас наше мироустройство.
Увы.
Учи язык и продолжай искать специалиста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.06.2013, 06:18
Помогаю со студенческими работами здесь

Удаление мусора предыдущей версии Офиса 2016
На ноутбуке был установлен нелегал Офис 2016, сейчас купили лицензию. Перед установкой удалила старый пакет, вычистила все кряки. Начинаю...

Считывание файла бинарно и удаление из него мусора
Здравствуйте есть у меня код,дешифровщика, которрый считывает побитно и сдвигает биты циклически на 2. но есть проблема, при дешифрировании...

Запуск исходника
Мне нужно очень срочно использовать скомпилировать этот исходник https://www.sendspace.com/file/a2uri9 он выдает ошибку компонентов...

Поиск исходника в 1С
Мне надо вытащить один модуль из встроенного языка 1С. Я не пользовался никогда этой программой. Не подскажете ли последовательность...

Русификация исходника
Помогите- Подскажите. Как внедрить глифы (кириллические) в FLA файл. Пытаюсь русифицироавть flash шаблон с сайта ТМ. Кто знает как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru