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

Счетчик символы в memo

04.03.2014, 11:40. Показов 3316. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как подсчитать количество определенных символов в memo ( сколько раз повторяется символ ";")
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2014, 11:40
Ответы с готовыми решениями:

Русские символы и memo
Добрый вечер. Пытаюсь сохранить содержимое Memo в текстовый файл: TextBBCode->Lines->SaveToFile("text.txt"); ...

Как автоматически выделять символы в Memo?
Здравствуйте. не подскажите как автоматически выделялись символы в Memo по очереди например строке_1 с 1-символа до последнего, потом...

Счетчик символов, введенных в Memo
Здравствуйте у меня такой вопрос как можно реализовать счётчик символов у меня на форме Memo и label в Memo я задал максимальное...

10
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2014, 12:16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 TStringList * list = new TStringList();
 list->DelimitedText = Trim(Memo1->Text);
 list->Delimiter = ' ';
 int d = 0;
 
 for(int i = 0; i < list->Count; i++)
{
 for(int a = 1; a < list->Strings[i].Length()+1; a++)
   {
       if(list->Strings[i][a] ==';')
        {
         d++;
        }
   }
 }
 ShowMessage("Êîëè÷åñòâî: " +IntToStr(d));
 delete list;
 list = NULL;
}
//---------------------------------------------------------------------------
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,913
Записей в блоге: 12
04.03.2014, 13:20
Зачем делать лишнюю работу?
C++
1
2
3
4
5
6
7
8
// ...
    TStringList *L = new TStringList;
    L->Delimiter = ';';
    L->StrictDelimiter = true;
    L->DelimitedText = Memo1->Text;
 
    ShowMessage(IntToStr(L->Count - 1));
    delete L;
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
04.03.2014, 14:03
Зачем делать тройную работу))) (Выделение памяти, прохождение по тексту, форматирование текста, освобождение памяти)

C++
1
2
3
4
5
6
    int count = 0;
    for(int i = 1; i <= Memo1->Text.Length(); i++)
        if(Memo1->Text[i] == ';')
            count++;
 
Form1->Caption = count;
Заранее: да, TStringList работает быстрее TMemo но только если нужно изменение текста, т.е. графическая перерисовка, при подсчете символов скорость одинакова
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
04.03.2014, 14:13
Цитата Сообщение от UI Посмотреть сообщение
StrictDelimiter
В старых версиях нет такенного свойства.
А так было бы супер.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *sl = new TStringList();
sl->Delimiter = ';';
 
sl->DelimitedText = StringReplace(
                                  StringReplace(
                                                Memo1->Text, " ", "", TReplaceFlags() << rfReplaceAll
                                                ),
                                  "\r\n", "", TReplaceFlags() << rfReplaceAll
                                  );
 
ShowMessage( String().sprintf( L"В тексте %d символов %c", sl->Count - 1, sl->Delimiter ) );
 
delete sl;
}
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,913
Записей в блоге: 12
04.03.2014, 14:16
Лучший ответ Сообщение было отмечено Sasha как решение

Решение

C++
1
2
3
#include <StrUtils.hpp>
// ...
ShowMessage(IntToStr(SplitString(Memo2->Text, ";").Length - 1));
, кстати, тоже работает... Циклы не нужны. А под капот лезть - так ничего кроме Ассемблера вообще лучше не использовать, угу. Потому что "везде всё не так"...

Добавлено через 2 минуты
Цитата Сообщение от SatanaXIII Посмотреть сообщение
В старых версиях нет такенного свойства.
Старые версии должны лежать на свалке, потому что не надо использовать старые версии Билдера для новых версий Windows. Когда был Builder 6, версия Win3.11 была новшеством, однако, почему-то ты сменил 3.11 на WinXP/Win7, возможно даже на 64-битную, а вот инструмент разработки менять не хочешь.

P.S. SplitString-а тоже в старых версиях нет.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
04.03.2014, 14:27
Цитата Сообщение от UI Посмотреть сообщение
Старые версии должны лежать на свалке, потому что не надо использовать старые версии Билдера для новых версий Windows. Когда был Builder 6, версия Win3.11 была новшеством, однако, почему-то ты сменил 3.11 на WinXP/Win7, возможно даже на 64-битную, а вот инструмент разработки менять не хочешь.
Я разве заставляю кого-то пользоваться старыми версиями? Может быть угрожаю, шантажом занялся? Детей доедаю?
Это была констатация факта. С вариантом решения. Для новых версий бесспорно твой вариант лучше.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2014, 14:28
UI, в какой версии билдера появилась функция SplitString?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,913
Записей в блоге: 12
04.03.2014, 15:23
Насколько я помню - в 2006-ой, тогда много изменений было. Тогда же, кстати, когда в TStringList-е появился StrictDelimiter. Но все версии, которые ниже 2009/2010 (а лучше - XE2/XE4, пятая еще глючная) сейчас уже напрочь неактуальны.
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2014, 17:03
UI, чё-то я нигде не могу найти и почитать о функции SplitString
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33402 / 21512 / 8236
Регистрация: 22.10.2011
Сообщений: 36,913
Записей в блоге: 12
04.03.2014, 17:21
Читай: StrUtils.SplitString
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2014, 17:21
Помогаю со студенческими работами здесь

Невидимые символы в Memo?
Добрый день. По заданию нужно сделать программу, которая шифрует текст\файлы различными методами. использую библиотеку dcpcrypt ...

Изменить все символы в Memo
Подскажите как пройтись по всем символам в Memo и изменить их на соответствующие с другой раскладки клавиатуры й-&gt;q ц-&gt;w и т.д....

Программа, которая получает символы, введенные с клавиатуры и счетчик пробелов
Помогите с поставленной задачей Программа, которая получает символы, введенные с клавиатуры, до тех пор, пока не встретится точка....

Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой
Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой: -поле состояния счетчика; -методы для установки и...

Как сделать так, чтобы Memo появлялось поверх остальных Memo?
как сделать так чтобы memo появлялось поверх остальных memo


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru