Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Работа с буквами(Мини парсинг)


Автор: ruslandlion 3.5.2008, 12:30
Уважаемые программисты.Помогите пожалуйста с кодом.
Код

AnsiString stroke=RichEdit1->Lines->Strings[0];

Я обявил переменную типа AnsiString.
1.Какая функция может обработать строку stroke чтобы посчитать длину строки (наподобии stroke.length)но без пробелов.Тоесть нужна функция которая считает буквы в строке при этом игнорируя пробелы и возвращает полученное значение?
2.Как получить доступ ко всем строкам ?RichEdit1->Lines->(Что сюда добавить для этого?)
Огромное спасибо за помощь всем кто откликнеться.Я начинающий программист котрый пытаеться небольшое подобие парсера. 
p/sЕсли кто знает подкиньте пожалуйста ссылки про парсинг.

Автор: Mysterio 3.5.2008, 17:21
Цитата(ruslandlion @  3.5.2008,  12:30 Найти цитируемый пост)
Тоесть нужна функция которая считает буквы в строке при этом игнорируя пробелы и возвращает полученное значение?

Тебе нужна именно функция от String? Можно просто вырезать все пробелы из строки и посчитать её длину.

Код

 String s=RichEdit1->Lines->Strings[0];

 while(s.Pos(" ")!=0)
 s=s.SubString(1,s.Pos(" ")-1)+s.SubString(s.Pos(" ")+1,s.Length());

 Label1->Caption=s;
 Label2->Caption=IntToStr(s.Length());



Цитата(ruslandlion @  3.5.2008,  12:30 Найти цитируемый пост)
2.Как получить доступ ко всем строкам ?RichEdit1->Lines->(Что сюда добавить для этого?)


Может RichEdit1->Text ?

Автор: mrbrooks 4.5.2008, 09:20
Цитата(ruslandlion @ 3.5.2008,  12:30)

1.Какая функция может обработать строку stroke чтобы посчитать длину строки (наподобии stroke.length)но без пробелов.Тоесть нужна функция которая считает буквы в строке при этом игнорируя пробелы и возвращает полученное значение?
2.Как получить доступ ко всем строкам ?RichEdit1->Lines->(Что сюда добавить для этого?)
 

1. Решений много. Вот мое решение.
Код

String str = "bla bla bla bla bla";
int j = 0;
for(int i = 1; i < str.Length();i++) 
                            if (str[i] == ' ') j++;
ShowMessage(String(str.Length() - j));


2. В зависимости что ты хочешь сделать. Вообще-то если тебе нужен просто весть тект как строка то тогда делай как грит комрад Mysterio иначе уточни.

Автор: xvr 4.5.2008, 15:20
Цитата(ruslandlion @ 3.5.2008,  12:30)
Уважаемые программисты.Помогите пожалуйста с кодом.
Код

AnsiString stroke=RichEdit1->Lines->Strings[0];

Я обявил переменную типа AnsiString.
1.Какая функция может обработать строку stroke чтобы посчитать длину строки (наподобии stroke.length)но без пробелов.Тоесть нужна функция которая считает буквы в строке при этом игнорируя пробелы и возвращает полученное значение?

Код

StringReplace(RichEdit1->Lines->Strings[0]," ","",TReplaceFlags()<<rfReplaceAll).Length()

Автор: mrbrooks 4.5.2008, 15:33
>xvr просто класс.
ЗЫ. блин мне пора наконец то более внимательно читать мат часть  smile  smile 

Автор: ksili 5.5.2008, 07:42
xvr, а после этого
Код

StringReplace(RichEdit1->Lines->Strings[0]," ","",TReplaceFlags()<<rfReplaceAll).Length()

само содержимое RichEdit1'а останется таким же, или пробелы из него исчезнут?

Автор: xvr 5.5.2008, 07:50
Цитата(ksili @ 5.5.2008,  07:42)
xvr, а после этого
Код

StringReplace(RichEdit1->Lines->Strings[0]," ","",TReplaceFlags()<<rfReplaceAll).Length()

само содержимое RichEdit1'а останется таким же, или пробелы из него исчезнут?

Отстанется без изменений

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)