Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
3 / 3 / 2
Регистрация: 07.12.2012
Сообщений: 30

Поиск текста в Label

04.11.2014, 12:46. Показов 1788. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть надобность произвести поиск определенного слова по всем контролям Label->Caption в довольно большом проекте.
Имена контролей разные.
Если у кого нибудь есть идеи, буду рад их выслушать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2014, 12:46
Ответы с готовыми решениями:

Осуществить поиск текста в тестовом файле и вернуть номер строки в label
Доброго дня! Как можно осуществить поиск текста в тестовом файле и вернуть номер строки в label в которой присутствует найденный текст? ...

Изменение шрифта текста в label в зависимости от объёма (размера) текста
Как сделать так, чтобы шрифт текста в label изменялся, в зависимости от label? : Пример того, что хочу сделать, но без контроллов :

[WPF] Размер формы от шрифта и текста label и перемещение формы мышкой по label
Здравствуйте. Возможно глупый вопрос но я новичек в wpf. Как там сделать размер формы в зависимости от шрифта и текста label. И как сделать...

19
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
04.11.2014, 18:37
Большой насколько? Несколько форм или одна?
Насколько разные имена "контролей"? Отличаются числами (нумерацией) или не только ими?
static_cast, FindComponent и UI тебе помогут.
0
3 / 3 / 2
Регистрация: 07.12.2012
Сообщений: 30
04.11.2014, 18:43  [ТС]
В проекте более 300 форм. Работало много программистов, поэтому имена могут быть очень разными.
Предложенные Вами варианты займут кучу времени. Все что мне пришло в голову, это написать сторонее приложение для поиска текста в файлах *.dfm.
Но все равно спасибо!
0
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,377
Записей в блоге: 3
04.11.2014, 18:58
Если я правильно понял вопрос...
На форме куча Лэйблов. Необходимо найти Лэйблы, в свойстве Caption которых есть искомое слово? И что с ними потом делать?
Поиск компонентов можно сделать так:
C++
1
2
3
4
5
6
for(int i = 0; i < this->ControlCount; i++)
   {
     if(this->Controls[i]->ClassNameIs("TLabel"))
      if(((TLabel*)this->Controls[i])->Caption.Pos("слово") != 0)
       Memo1->Lines->Add(((TLabel*)this->Controls[i])->Name);
   }
В данном примере я просто вывел в Memo имена Лэйблов, содержащий текст "слово"
Миниатюры
Поиск текста в Label  
2
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,377
Записей в блоге: 3
04.11.2014, 19:01
Упс, уточнение появилось... Тогда ответ считать недействительным, сразу надо уточнять, что куча форм, а не просто куча лэйблов...
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
04.11.2014, 19:06
RayBor, у твоего варианта есть существенный минус - он подходит для компонентов, созданных в design-time.
Неужели в таком большом проекты компоненты не создаются динамически?
0
3 / 3 / 2
Регистрация: 07.12.2012
Сообщений: 30
04.11.2014, 19:09  [ТС]
Те что создаются динамчески можно найти встроенным поиском Билдера. К сожалению этот поиск не ищет в dfm'ах
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
04.11.2014, 19:21
Цитата Сообщение от RayBor Посмотреть сообщение
В проекте более 300 форм.
На помойку проект. Лично я не представляю что такое нужно писать что была жесткая необходимость плодить столько форм.
1
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
04.11.2014, 19:24
К тому же нужный тебе текст в dfm хранится не в явном виде.
Миниатюры
Поиск текста в Label  
0
3 / 3 / 2
Регистрация: 07.12.2012
Сообщений: 30
05.11.2014, 10:58  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Сообщение от RayBor
В проекте более 300 форм.
На помойку проект. Лично я не представляю что такое нужно писать что была жесткая необходимость плодить столько форм.
Не стоит так категорично. Необходимость есть.

Добавлено через 1 минуту
Цитата Сообщение от gunslinger Посмотреть сообщение
К тому же нужный тебе текст в dfm хранится не в явном виде.
Да, ты прав. Значит моя идея не подходит.
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
05.11.2014, 11:43
D1973, ну почему. Хорошее решение то.
Просто сделать этот цикл функцией, в которую передаётся форма.
И вызвать для всех форм проекта.
Все формы кому-то тоже же принадлежат... Кажется Application?
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.11.2014, 14:38
Цитата Сообщение от RayBor Посмотреть сообщение
Необходимость есть.
И эта необходимость конечно секрет.

Добавлено через 1 минуту
Цитата Сообщение от krv Посмотреть сообщение
Все формы кому-то тоже же принадлежат... Кажется Application?
Не факт, могут вообще не "принадлежать", а могут принадлежать другому компоненту.
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.11.2014, 20:04
Цитата Сообщение от Samrisbe Посмотреть сообщение
А сейчас ни одного не осталось?
Кстати логичный вопрос, если писало несколько программистов то вероятно должны были какие-то договоренности и соглашения между ними в именовании переменных модулей итп. ну и если вдруг даже что-то всплыло уже после разработки, то не составило бы труда каждому программисту подправить свою часть проекта.
1
3 / 3 / 2
Регистрация: 07.12.2012
Сообщений: 30
06.11.2014, 10:27  [ТС]
Цитата Сообщение от Samrisbe Посмотреть сообщение
А сейчас ни одного не осталось?
Проекту более 10 лет. За это время поменялся почти весь состав. Я уже опросил всех кто имел отношение к части проекта на С++. Но думаю что есть еще места, которые упустили.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
06.11.2014, 11:58
Цитата Сообщение от RayBor Посмотреть сообщение
Цитата Сообщение от gunslinger Посмотреть сообщение
К тому же нужный тебе текст в dfm хранится не в явном виде.
Да, ты прав. Значит моя идея не подходит.
Почему же? Просто это твое стороннее приложение должно обрабатывать dfm в 2 этапа. На первом заменить '#1088#1099..' в Caption-ах русским текстом, а уж потом делать с ним все, что заблагорассудится
2
06.11.2014, 17:47

Не по теме:

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

0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
06.11.2014, 20:16
Цитата Сообщение от BRcr Посмотреть сообщение
Это может быть вполне оправдано при работе с различного рода отчетностями и не только...
Да, испытал на собственной шкуре... Диалоги, блин, а они все разные... Только потом дошло, что можно их объединять с помощью QTabWidget.., тьфу, простите, TPageControl. Но шерстить на эту тему уже готовый, рабочий и, как видно из реплик ТС, не маленький проект, надо большой смелости набраться...
0
06.11.2014, 22:33

Не по теме:

я для отчетности использовал FastReport, а для диалогов у них есть инструмент, там где надо было "в программу залезть" или через стандартные не получалось FastScript помогал.

Это так для размышления, понимаю, что никто не будет переписывать программу 10-летней давности ...

0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
07.11.2014, 02:16
У меня XE6 в dfm хранит Caption нормальным текстом.Так что можно в ваших 300 dfm-ах поискать любым поисковиком строки в файлах. Но если у вас хранит как '#1088#1099..' и поиск это разовая акция, то я бы сделал так. Новый проект на форму лэйбл с нужным Caption. Сохраняем. Лезем в этот dfm и смотрим как сохраняется этот Caption, т.е. это '#1088#1099..' .
Далее также с помощью любого поиска строки ищем в ваших 300 dfm-ах строку Caption = '#1088#1099..' .
Ну и если Caption присваивается в коде можно поискать по cpp-файлам проекта строоку "->Caption="
0
Модератор
 Аватар для D1973
9912 / 6449 / 2455
Регистрация: 21.01.2014
Сообщений: 27,377
Записей в блоге: 3
07.11.2014, 10:54
Цитата Сообщение от RayBor Посмотреть сообщение
произвести поиск определенного слова по всем контролям Label->Caption
Ну ладно, поиск поиском, а что потом? Надо это неполиткорректное слово заменить на что-то или как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2014, 10:54
Помогаю со студенческими работами здесь

Запись текста в Label и удаление текста из него по Backspace
Доброго времени суток, вопрос такой. Значит сделал я Лейбл, дальше я хочу в него записывать текст. И удалять текст соответственно на...

Обводка текста в Label?
Здравствуйте. Как в FMX у Label задать обводку текста или подскажите аналог где это возможно сделать. А именно задать толщину и цвет...

Скролл текста в Label
Здравствуйте! Вопрос наверное много кого интересует и многим хотелось бы знать на него ответ, да всё как-то лень, а особой надобности то...

Перенос текста в Label
В общем проблема, произвожу чтение из файла построчно, и записываю в соответствующие лейблы, но загвоздка в том, что иногда тексты длиннее,...

Изменение текста в Label
Добрый день! Что то я запутался, как вывести текст: Dim astr As String Private Sub TextBox1_TextChanged(sender As Object, TextBox1...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru