Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 20.04.2007, 10:26   #1
kolyacher
Оператор ЭВМ
 
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
А МР кирилицу выводит?

Помогите плиз!!!
Я на МР пытался вывести из ресурс файла текст на кирилице, в итоге выскакивают белые квадратики...
P.S. текст забивал в самом МР...
Заранее спасибо!!!
(Offline)
 
Ответить с цитированием
Старый 20.04.2007, 11:54   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: А МР кирилицу выводит?

j2me понимает только UTF-8 можно набрать в Блокноте а при сохранении поставить кодировку UTF-8
(Offline)
 
Ответить с цитированием
Старый 20.04.2007, 14:18   #3
kolyacher
Оператор ЭВМ
 
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Re: А МР кирилицу выводит?

Спасибо конечно, но я это и так знаю... Тем более я в МР набирал текст, но проблема в том, что, не MidpX, не Motorola SDK, не телефон его в нормальном виде не выводят...
(Offline)
 
Ответить с цитированием
Старый 20.04.2007, 15:36   #4
mrsandy
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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DIMMON4IK (26.05.2010)
Старый 24.04.2007, 18:03   #5
kolyacher
Оператор ЭВМ
 
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Re: А МР кирилицу выводит?

Эффект другой, но не намного лучше, кирилицу не выводит...
(Offline)
 
Ответить с цитированием
Старый 25.04.2007, 11:22   #6
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: А МР кирилицу выводит?

это что за телефон такой? локаль хоть русская стоит?
(Offline)
 
Ответить с цитированием
Старый 26.04.2007, 14:18   #7
kolyacher
Оператор ЭВМ
 
Регистрация: 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
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: А МР кирилицу выводит?

в МР файлы как раз и набираются в UTF8
(Offline)
 
Ответить с цитированием
Старый 28.04.2007, 06:37   #9
kolyacher
Оператор ЭВМ
 
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Re: А МР кирилицу выводит?

Сообщение от pilgrim
в МР файлы как раз и набираются в UTF8
Я знаю, но в эмуляторе квадратики отображаются... Если просто вывожу текст с помощью drawText или на форму то кирилица выводится нормально...
(Offline)
 
Ответить с цитированием
Старый 28.04.2007, 10:10   #10
kolyacher
Оператор ЭВМ
 
Регистрация: 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
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Re: А МР кирилицу выводит?

kolyacher
Ты вроде тут счетчик цикла запихиваешь в st и потом st выводишь.
Тебе надо выводить, насколько я понимаю, GetChar(st,i), а не само i.
Вот только присваивать это строке st я бы не рекомендовал...

Хотя я могу ошибаться.
(Offline)
 
Ответить с цитированием
Старый 30.04.2007, 12:44   #12
kolyacher
Оператор ЭВМ
 
Регистрация: 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
kolyacher
Оператор ЭВМ
 
Регистрация: 05.04.2007
Сообщений: 19
Написано 0 полезных сообщений
(для 0 пользователей)
Re: А МР кирилицу выводит?

Не все так плохо как я думал... 64384 годиться для первых а..п, ё выпадает; для остальных и ё 64320. Заглавные не юзал, выводил по символьно, в строку лезет как неправильно...
(Offline)
 
Ответить с цитированием
Старый 03.05.2007, 18:43   #14
kolyacher
Оператор ЭВМ
 
Регистрация: 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)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 04:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com