Количество символов в Memo

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Количество символов в Memo

Сообщение Dark Ichigo » 15.04.2009 10:42:37

Есть форма. При выборе combobox или заполнения edit в Memo-поле отражается текст. Мне необходимо посчитать количество символов в это тексте вместе с пробелами.

Делаю так:

Код: Выделить всё
kolznakov.Caption := FloatToStr(Length(resultat.Text));     


В итоге, например, в memo-поле отражается:

Код: Выделить всё
Петрушка, чеснок


А количество символов при этом равно не 16 (как требуется), а 30 (!). Как я понял, количество букв множится на два, а знаки и пробелы считаются правильно. То есть Петрушка=8 знаков, чеснок=6 знаков.

8+6=14.

14*2=28.

28 + 2(пробел и запятая)=30 в итоге

Что делать? Как с этим бороться?

ps.
Замечено, что текст из списка combobox'а, который загружается с помощью LoadFromFile, считается нормально. Но я не могу использовать все поля формы с этой функцией.

Заранее спасибо!
Аватара пользователя
Dark Ichigo
новенький
 
Сообщения: 44
Зарегистрирован: 12.03.2009 19:06:51

Re: Количество символов в Memo

Сообщение v-t-l » 15.04.2009 11:17:29

Dark Ichigo писал(а):
Код: Выделить всё
olznakov.Caption := FloatToStr(Length(resultat.Text));

Код: Выделить всё
olznakov.Caption := FloatToStr(UTF8Length(resultat.Text));
v-t-l
энтузиаст
 
Сообщения: 735
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Количество символов в Memo

Сообщение Dark Ichigo » 15.04.2009 18:06:23

ругается
Identifier not found "UTF8Length"

:(
Аватара пользователя
Dark Ichigo
новенький
 
Сообщения: 44
Зарегистрирован: 12.03.2009 19:06:51

Re: Количество символов в Memo

Сообщение Павел Ишенин » 15.04.2009 18:24:15

uses LCLProc
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Re: Количество символов в Memo

Сообщение Dark Ichigo » 14.05.2009 12:54:41

добавил. теперь:

Код: Выделить всё
kolznakov.Caption := FloatToStr(UTF8Length(resultat.Text));

Fatal: Syntax error, ")" expected but "(" found

:(
Аватара пользователя
Dark Ichigo
новенький
 
Сообщения: 44
Зарегистрирован: 12.03.2009 19:06:51

Re: Количество символов в Memo

Сообщение VirtUX » 14.05.2009 13:06:22

Dark Ichigo писал(а):добавил. теперь:

Код: Выделить всё
kolznakov.Caption := FloatToStr(UTF8Length(resultat.Text));

Fatal: Syntax error, ")" expected but "(" found

:(

Это Вы где-то забыли поставить закрывающую скобку :) но не в этом примере!
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Количество символов в Memo

Сообщение Dark Ichigo » 15.05.2009 11:01:43

НАШЁЛ!!! Всем спасибо!!! :lol:
У меня, нуба, была в var строчка
Код: Выделить всё
UTF8Lenght: Ansistring

Ума не приложу, когда я успел туда это тыкнуть.

У меня в Memo три строки. Как я понимаю, каждый перевод строки - это тоже символ? Всё считается точно, только на 3 символа больше.
Аватара пользователя
Dark Ichigo
новенький
 
Сообщения: 44
Зарегистрирован: 12.03.2009 19:06:51

Re: Количество символов в Memo

Сообщение Mr.Smart » 15.05.2009 11:32:02

Dark Ichigo писал(а):У меня в Memo три строки. Как я понимаю, каждый перевод строки - это тоже символ? Всё считается точно, только на 3 символа больше.

Конечно. Более того любой код отличный от #0 является символом.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Количество символов в Memo

Сообщение MaxK » 24.08.2009 14:02:18

Хочу добавить.
Если надо взять только часть от Combobox1.text то необходимо пользоваться функцией UTF8Copy,а не просто Copy.
Хотя это не подходит для просто Label.caption. Тут всё как обычно, без UTF8
MaxK
незнакомец
 
Сообщения: 2
Зарегистрирован: 06.08.2009 09:58:33


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

Рейтинг@Mail.ru