|
Основной форум Сюда все проблемы связанные с программированием. |
20.04.2007, 10:26
|
#1
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
А МР кирилицу выводит?
Помогите плиз!!!
Я на МР пытался вывести из ресурс файла текст на кирилице, в итоге выскакивают белые квадратики...
P.S. текст забивал в самом МР...
Заранее спасибо!!!
|
(Offline)
|
|
20.04.2007, 11:54
|
#2
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Re: А МР кирилицу выводит?
j2me понимает только UTF-8 можно набрать в Блокноте а при сохранении поставить кодировку UTF-8
|
(Offline)
|
|
20.04.2007, 14:18
|
#3
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Спасибо конечно, но я это и так знаю... Тем более я в МР набирал текст, но проблема в том, что, не MidpX, не Motorola SDK, не телефон его в нормальном виде не выводят...
|
(Offline)
|
|
20.04.2007, 15:36
|
#4
|
AnyKey`щик
Регистрация: 10.01.2007
Сообщений: 14
Написано 2 полезных сообщений (для 2 пользователей)
|
Re: А МР кирилицу выводит?
IMHO юзай сначала поиск а потом спрашивай
перед выводом конвертируй строку из win в utf таким вот макаром
function Str2UTF8(s: string):string;
var i: integer; a : string;
begin
a:='';
for i:= 0 to Length(s) do
if GetChar(s, i) > '~' then a:= a + Chr(Ord(GetChar(s, i)) - 64432)
else a:= a + GetChar(s, i);
Str2UTF8:= Copy(a, 0, Length(a)-1);
end;
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.04.2007, 18:03
|
#5
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Эффект другой, но не намного лучше, кирилицу не выводит...
|
(Offline)
|
|
25.04.2007, 11:22
|
#6
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Re: А МР кирилицу выводит?
это что за телефон такой? локаль хоть русская стоит?
|
(Offline)
|
|
26.04.2007, 14:18
|
#7
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Русская... Я и от эмуляторов добиться ничего не могу
Задаю просто строку, всё нормально...
Но из файла читает как попало...
Вот код...
program NewProject3;
var
res:resource;
st:string;
function Str2UTF8(s: string):string;
var
i:integer;
a:string;
begin
a:='';
for i:= 0 to Length(s) do
if GetChar(s, i) > '~' then a:= a + Chr(Ord(GetChar(s, i)) - 64432)
else a:= a + GetChar(s, i);
Str2UTF8:= Copy(a, 0, Length(a)-1);
end;
begin
res:=OpenResource('/data.txt');
st:=ReadLine(res);
st:=Str2UTF8(st);
drawText(st,0,0);
repaint;
delay(5000);
end.
P.S. data.txt набран в MP и содержит: Привет ВСЕМ!!!
|
(Offline)
|
|
26.04.2007, 18:51
|
#8
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Re: А МР кирилицу выводит?
в МР файлы как раз и набираются в UTF8
|
(Offline)
|
|
28.04.2007, 06:37
|
#9
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Сообщение от pilgrim
в МР файлы как раз и набираются в UTF8
|
Я знаю, но в эмуляторе квадратики отображаются... Если просто вывожу текст с помощью drawText или на форму то кирилица выводится нормально...
|
(Offline)
|
|
28.04.2007, 10:10
|
#10
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Это гон какой то...
Записываю в data.txt символ "а"
пишу код...
for i:=0 to 66000 do
if Chr(Ord(GetChar(st, i))-i)='а' then
begin
st:=integerToString(i);
drawText(st,0,j);
j:=j+10;
end;
Выдает 64464...
Ставлю вместо i 64464 Выводит далеко не а???
|
(Offline)
|
|
28.04.2007, 19:55
|
#11
|
Бывалый
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений (для 205 пользователей)
|
Re: А МР кирилицу выводит?
kolyacher
Ты вроде тут счетчик цикла запихиваешь в st и потом st выводишь.
Тебе надо выводить, насколько я понимаю, GetChar(st,i), а не само i.
Вот только присваивать это строке st я бы не рекомендовал...
Хотя я могу ошибаться.
|
(Offline)
|
|
30.04.2007, 12:44
|
#12
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Сообщение от kolyacher
Это гон какой то...
Записываю в data.txt символ "а"
пишу код...
for i:=0 to 66000 do
if Chr(Ord(GetChar(st, i))-i)='а' then
begin
st:=integerToString(i);
drawText(st,0,j);
j:=j+10;
end;
Выдает 64464...
Ставлю вместо i 64464 Выводит далеко не а???
|
Извините!!! Здесь я прогнал...
Надо if Chr(Ord(GetChar(st, 1))-i)='а' then вместо if Chr(Ord(GetChar(st, i))-i)='а' then, тогда рулит выдаёт 64384, выводит 'а'...
Только со строкой проблемы... Не все символы нормальные???
Пхоже i для разных символов разное...
|
(Offline)
|
|
02.05.2007, 08:48
|
#13
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Не все так плохо как я думал... 64384 годиться для первых а..п, ё выпадает; для остальных и ё 64320. Заглавные не юзал, выводил по символьно, в строку лезет как неправильно...
|
(Offline)
|
|
03.05.2007, 18:43
|
#14
|
Оператор ЭВМ
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: А МР кирилицу выводит?
Накатал процедурку может немного странной покажется, но у меня работает...
function StrToUtf8(s:string):string;
var
i,j:integer;
a:string;
begin
a:='';
for i:=1 to length(s)-1 do
begin
j:=ord(GetChar(s,i));
if ((j>65438 )and(j<65456))or((j>65455)and(j<65472))or((j>65423 )and(j<65439)) then a:=a+chr(j-64384)
else if (j=65425)or((j>65407)and(j<65424)) then a:=a+chr(j-64320)
else if j=65488 then
begin
a:=a+chr(j-65456);
i:=i-1;
end
else
begin
a:=a+chr(j);
i:=i-1;
end;
i:=i+1;
end;
StrToUtf8:=a;
end;
Одно "НО" После русских букв перед знаками препинания надо ставить пробел...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:09.
|