|
20.06.2008, 00:22
|
#16
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
Небольшой вопрос - к проектам можно как-нибудь подключать библиотеки на java?
|
(Offline)
|
|
20.06.2008, 00:34
|
#17
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
какие библиотеки? доступна вся ява, все классы напрямую
свойство MIDP_LIB в build.xml подключает любые библиотеки для компиляции, а потом просто
uses
javax_microedition_media_Player;
var
pl : Player;
и используем в программе плеер.
ЗЫ: при компиляции все еще возможны проблемы, если в библиотеке используются нативные методы, тогда пишем сюда и я их просто исправлю на заглушки.
|
(Offline)
|
|
20.06.2008, 00:39
|
#18
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
Я немного другое имел ввиду.
Можно ли просто написать класс на java и прилинковать его к проекту(как в MP)?
А вообще, есть где-нибудь дока по этому паскалю?
Вот наткнулся на проблему.
Нужно перевести числовое значение в строковое.
В Java вроде так:
а как сделать здесь - не понимаю.
Последний раз редактировалось ViNT, 20.06.2008 в 01:39.
|
(Offline)
|
|
20.06.2008, 02:09
|
#19
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
нет, в яве
s := String.parseInt(12345);
класс можно прилинковать, чтобы к нему обатиться его надо положить по любому пути указанному в CLASSPATH
или имеется в виду добавление его как библиотеки и в jar?
дока лежит в папке mhc\compiler\doc
|
(Offline)
|
|
20.06.2008, 02:16
|
#20
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
Сообщение от pilgrim
нет, в яве
s := String.parseInt(12345);
|
Я этот кусок кода взял из откомпиленного класса MP, так работает функция IntegerToString.
Если писать s := String.parseInt(12345); ,все равно пишет Syntax Error.
--------------------------------------------
Оказывается, есть процедура Str .
Последний раз редактировалось ViNT, 20.06.2008 в 02:47.
|
(Offline)
|
|
20.06.2008, 11:06
|
#21
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
s := java_lang_String.String.valueOf(mode);
она то есть, один ньюанс: это встроенная функция паскаля, а не явы, тогда нам нужно линковать к готовому проекту модуль SYSTEM в котором живут все стандартные процедуры и функции.
Стандартный тип паскаля STRING - это StringBuffer в яве.
на мой взгляд лучше делать вот так:
type
JString = java_lang_String.String;
var
s : JString;
begin
s := JString.valueOf(iMode);
end.
так мы не породим никакого лишнего кода и это красиво и быстро пойдет на телефоне
PS: похоже еще есть вопросы с русским языком, вернее с его кодировкой
Последний раз редактировалось Piligrim, 20.06.2008 в 11:20.
|
(Offline)
|
|
20.06.2008, 13:03
|
#22
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
Все равно не работает.
Про ValueOf пишет, что такого метода нет, пробовал делать то же самое, но с методом ParseInt - тоже ошибка.
Кстати, разве модуль SYSTEM так не линкуется?
Да, с кодировкой проблемы.
Пробовал сохранять файл в разных кодировках - про Unicode и UTF-8 пишет, что есть недопустимые символы, а с Win просто квадраты вместо символов. Похоже, нужно где-то ключи компилятора менять.
|
(Offline)
|
|
20.06.2008, 15:28
|
#23
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
с кодировкой я попытаюсь разобраться, хотя в теории можно строки в ресурсных файлах хранить.
SYSTEM действительно не линкуется, а нужно? Его нужно подредактировать под реалии мобильной явы.
ниже приведенный код компилируется и работает на моем ROKR E2, хотя proguard4.0.1 на него ругается
|
(Offline)
|
|
20.06.2008, 15:34
|
#24
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
У меня похоже что-то не так настроено, всеравно идет та же ошибка:
Да, это всетаки proguard ругается, так мидлет запускается и работает.
Кстати, как правильно создавать плеер для файла из архива?
Последний раз редактировалось ViNT, 20.06.2008 в 15:42.
|
(Offline)
|
|
20.06.2008, 21:54
|
#25
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
не знаю почему, но вызов valueOf(int) progurad воспринимает как double, в моем примере я отключил обфускацию, т.е. proguard. видимо несовершенен.
но на мой взгляд, у этой платформы хорошие перспективы, несмотря на то, что я получил приглашение участвовать в развитии МР.
|
(Offline)
|
|
23.06.2008, 10:18
|
#26
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
В процессе тестирования выявились следующие сложности:
1. Не корректная кодовая таблица русского в готовой программе
-копаю коды компилятора на этот счет
2. Системный модуль SYSTEM содержит много мусора, не нужного в мобильной версии. И его нужно линковать к готовой программе для использования стандартных функций паскаля.
-адаптирую и чищу его.
--Нужно ли оставлять работу с ФС? Сделать JSR75?
|
(Offline)
|
|
23.06.2008, 15:40
|
#27
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
По идее ФС нужна, я например до сих пор не понял, как создать подключение к ФС.
Допустим, в java я плеер делел так:
FileConnection conn = (FileConnection)Connector.open("file://"+
FileName);
InputStream is = conn.openInputStream();
А здесь что-то не могу реализовать выделенную конструкцию - ни прямое приведение типов ни оператор AS использовать не получается.
|
(Offline)
|
|
24.06.2008, 02:15
|
#28
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Canterbury Pascal for J2ME
да, я тоже не могу понять их диаграмму, для приведения типа.
INLINE(
fc = (javax.microedition.io.file.FileConnection)javax.microedition.io.Connector.open("file:///root1/readme.txt");
)
работает, хотя это уже не чистый паскаль.
|
(Offline)
|
|
24.06.2008, 02:53
|
#29
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
Сообщение от pilgrim
INLINE(
fc = (javax.microedition.io.file.FileConnection)javax.microedition.io.Connector.open("file:///root1/readme.txt");
)
|
Вот это уже поинтереснее.
Хорошо, что можно встявлять блоки на java.
|
(Offline)
|
|
02.07.2008, 00:50
|
#30
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Canterbury Pascal for J2ME
А можно здесь как-нибудь импортировать не отдельные классы, а целые пакеты, например как в java improt javax.microedition.io.file.* вместо import javax.microedition.io.file.FileConnection?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:49.
|