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

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

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

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

Ответ
 
Опции темы
Старый 20.09.2008, 16:55   #1
Skythrone
ПроЭктировщик
 
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений
(для 14 пользователей)
Сообщение Текстовые сообщения интерфейса - в виде массива строк?

Добрый день, коллеги!

Хочу поднять тему для обсуждения вопроса наиболее грамотной реализации текстового интерфейса, т.е. набора текстовых сообщений, выдываемых пользователю.

Если тупо загружать всё в переменные внутри проги, то сообщения интерфейса неудобно переводить на другие языки - нужно перекомпилировать весь проект.

Я сейчас сделал так - всё вынес в текстовый ресурсный файл, кодировка win1251. Данный файл я считываю построчно, конвертирую в UTF8, а затем записываю в массив.

Но, к сожалению, данный подход работает весьма медленно. На среднестатистическом телефоне SE K-700 загрузка 200 строк занимает около 8-10 секунд.
Но я видел реальные мидлеты, которые делают это мгновенно на этом же телефоне при таком же подходе к хранению интерфейсных сообщений.

Вопрос - как быть?
Что посоветуют знатоки, чтобы соблюсти следующие условия:
- быстрая загрузка
- минимизация занимаемой памяти (heap)
- возможность перевода на другой язык без пересборки (но это не столь критично, если что, то уж могу и пересобрать.)
(Offline)
 
Ответить с цитированием
Старый 21.09.2008, 08:09   #2
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Текстовые сообщения интерфейса - в виде массива строк?

Подход правильный. По-моему легче создать пару файлов с разными языками. Тут просто нужна либа для ускорения чтения/перекодировки строки WIN/UTF.
(Offline)
 
Ответить с цитированием
Старый 25.09.2008, 21:43   #3
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Текстовые сообщения интерфейса - в виде массива строк?

Объясните мне, как в char могут храниться символы в utf-8? Ведь в utf-8 каждый символ занимает от 1 до 4 байт, а тип char имеет размер 1 байт. Я чего-то непонимаю и мне это покоя не даёт. В MySQL также, если ставить кодировку utf-8, то все поля всё равно имеют прежний размер, как и при однобайтовых кодировках текста. Не понимаю...
(Offline)
 
Ответить с цитированием
Старый 25.09.2008, 21:47   #4
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Текстовые сообщения интерфейса - в виде массива строк?

чтото не так делаешь, у меня все в мгновение грузится
(Offline)
 
Ответить с цитированием
Старый 25.09.2008, 22:24   #5
Skythrone
ПроЭктировщик
 
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений
(для 14 пользователей)
Ответ: Текстовые сообщения интерфейса - в виде массива строк?

Сообщение от Phantom_wc Посмотреть сообщение
Объясните мне, как в char могут храниться символы в utf-8? Ведь в utf-8 каждый символ занимает от 1 до 4 байт, а тип char имеет размер 1 байт. Я чего-то непонимаю и мне это покоя не даёт. В MySQL также, если ставить кодировку utf-8, то все поля всё равно имеют прежний размер, как и при однобайтовых кодировках текста. Не понимаю...
ИМХО, в utf8 максимальный размер символа - 2 байта, но я могу и ошибаться.

Вопрос о том, сколько реально байт занимает символ, принимает сама система. Если это символ с номером до 255 (латиница и пр.), то один байт.
Если от 256 до 65535 - то 2 байта.

Но вообще это дело мутное.
(Offline)
 
Ответить с цитированием
Старый 25.09.2008, 22:25   #6
Skythrone
ПроЭктировщик
 
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений
(для 14 пользователей)
Ответ: Re: Текстовые сообщения интерфейса - в виде массива строк?

Сообщение от Kurdt Посмотреть сообщение
чтото не так делаешь, у меня все в мгновение грузится
А можешь дать пример кода и ресурсного файла?
(Offline)
 
Ответить с цитированием
Старый 26.09.2008, 00:18   #7
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Текстовые сообщения интерфейса - в виде массива строк?

Один символ в UTF-8 может занимать от одного до 6 байт. В настоящее время используются символы от 1 до 4 байт. 6-и байтовые не используют. [источник]
- - -
Я просто не понимаю, если char - это тип данных, размером в один байт (0-255), то как он вообще принципиально может хранить в себе больше дозволенного? О_о
- - -
Вот что нашёл:
Большинство программ могут работать с UTF-8 как с традиционными однобайтными кодировками, не обращая внимания на то, что символ представляется как несколько последовательных байт. Для работы с отдельными символами строки обычно перекодируются в UCS-4, так что каждому символу соответствует машинное слово.

Одной из первых успешных коммерческих реализаций Юникода стала среда программирования Java. В ней принципиально отказались от 8-битного представления символов в пользу 16-битного. Сейчас большинство языков программирования поддерживают строки Юникода, хотя их представление может различаться в зависимости от реализации.
[источник]
- - -
Любопытно... Значит char = 1 байт - это только условность...
P.S: А Java рулит

Последний раз редактировалось Phantom, 26.09.2008 в 01:30.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список строк artemff Программирование 1 02.01.2010 14:43
алгоритмы j2me для рисованного интерфейса abcdef Проекты на MidletPascal 7 24.11.2009 16:17
Квесты - текстовые, сборник Serg153 Проекты на MidletPascal 7 04.05.2009 13:54
Несколько вопросов о реализации интерфейса Delta_Q 3D-программирование 8 14.01.2008 23:37
столкновение со стенкой на уровне в виде клетки aureli0 Основной форум 1 19.04.2007 16:09


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


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