![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Никак не могу разобраться. Программа может закодировать символы только английского алфавита, но при вводе русских символов в программе выскакивает ошибка (как будто принимает за пробелы) и кодирует по алгоритму Хаффмана только анлийские символы. Везде смотрел, немогу найти причину.
Помогите разобраться пожалуйста. Последний раз редактировалось delphihelp, 08.03.2012 в 13:25. |
#2
|
|||
|
|||
![]() попробовал в модуле unit1.pas поменять тип данных со стринг в ansistring в
Код:
procedure TForm1.Button2Click(Sender: TObject); var myStr : ansiString; |
#3
|
|||
|
|||
![]() почитав в интернете я понял, что оказывается в программе все делается по кодировке ansi, а мне получается нужен unicode, чтобы не выдавало ошибок при нажатии при русской раскладке клавиатуры.
![]() ![]() Последний раз редактировалось delphihelp, 07.03.2012 в 19:02. |
#4
|
||||
|
||||
![]() Да, тут дело в кодировке, но также и в твоей программе. Если ord('я') (последняя буква русского алфавита) =1103, а у тебя размер массива = 256, то понятно, что никакого символа под индексом [1103] не будет. Попробуй увеличить размер массивов до 1280 (константа ALPHABETSIZE), и строку
Код:
sg1.RowCount:=dltxt+1; Код:
sg1.RowCount:=dltxt; У меня так работает ![]() |
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
delphihelp (08.03.2012)
|
#5
|
|||
|
|||
![]() Cпасибо. А ведь правда в кодировке ANSI 255 символов, а в Unicode гораздо больше 65 536 символов кажется
![]() Ура, теперь все символы отображаются. Даже не знаю как тебя благодарить. Последний раз редактировалось delphihelp, 08.03.2012 в 13:27. |