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

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

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

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

Ответ
 
Опции темы
Старый 25.10.2007, 10:46   #1
VM
Оператор ЭВМ
 
Регистрация: 24.09.2007
Сообщений: 36
Написано 2 полезных сообщений
(для 3 пользователей)
Принудительный выход

Как принудительно выйти из процедуры. Нужна реализация типа паскалевского exit.
(Offline)
 
Ответить с цитированием
Старый 25.10.2007, 14:14   #2
Eddy
Нуждающийся
 
Регистрация: 24.05.2006
Сообщений: 64
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Принудительный выход

из процедуры вроде break
а из мидлета вообще - halt
(Offline)
 
Ответить с цитированием
Старый 25.10.2007, 14:32   #3
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Принудительный выход

break не совсем из процедуры, из текущего оператора.
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 01:28   #4
EVIL_USER
ПроЭктировщик
 
Регистрация: 13.11.2006
Сообщений: 101
Написано 6 полезных сообщений
(для 6 пользователей)
Re: Принудительный выход

Кстати, сделал в одной проге выход по хальту, а она сцуко каждый раз по новой ресурсы распаковывает.
Нашел папку с её сейвами, а там куча одинаковых файлов со случайными именами.
При том, что у меня там из ресурсов одна вавка на 70 с лишним килов, память съедается весьма успешно.
Так что имхо лучше по человечески выходить.
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 02:24   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Принудительный выход

Сообщение от EVIL_USER
Кстати, сделал в одной проге выход по хальту, а она сцуко каждый раз по новой ресурсы распаковывает.
Нашел папку с её сейвами, а там куча одинаковых файлов со случайными именами.
При том, что у меня там из ресурсов одна вавка на 70 с лишним килов, память съедается весьма успешно.
Так что имхо лучше по человечески выходить.
Не прогаю MidletPascal - чисто алгоритмические умозаключения:
HALT, насколько помню команда экстренного выхода. так что или не юзайте, или допишите процедуру очистки от мусора, которая выполняется при следующем после внештаного завершения запуске.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 08:53   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Re: Принудительный выход

break - это оператор выхода из цикла. Если в процедуре только один цикл (что врядли), то этого хватит. В противном же случае придется вводить дополнительную флаговую переменную, в кот. будет хранится скажем true - надо выходить, false - не надо пока, и перед началом каждого цикла или блока операторов проверять эту переменную.

Кстати, RecordStore - очень любопытная вещь. Мало того, что она на разных телах реализуется немножко по-разному, так ещё и хитрозадые программеры каким-то макаром сохраняют туда не только строки текста, но и мелодии и картинки.
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 12:22   #7
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Принудительный выход

Про RecordStore: туда можно сохранить практически все. Ведь мелодия и картинка это тоже байтовый массив если разобраться.
(Offline)
 
Ответить с цитированием
Старый 26.10.2007, 14:56   #8
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Принудительный выход

Сообщение от impersonalis
Не прогаю MidletPascal - чисто алгоритмические умозаключения:
HALT, насколько помню команда экстренного выхода. так что или не юзайте, или допишите процедуру очистки от мусора, которая выполняется при следующем после внештаного завершения запуске.
Выход по halt абсолютно ничем не отличается от простого завершения программы(после последнего оперетора):

На основе кода на MP
program x;
begin
drawimage(loadimage(''),0,0);
halt;
end.
Генерится код на java:
        G.drawImage(Image.createImage(""), 0, 0, 20);//drawimage
        FW.fw.destroyApp(true);//halt
        Thread.currentThread().join();
        Thread.sleep(1000);
        FW.fw.destroyApp(true);//Завершение после 
                                                              //последнего оперетора
    }
Как видно, между выделенными строками разницы нет, так что halt аналогичен простому завершению.
(Offline)
 
Ответить с цитированием
Старый 27.10.2007, 01:03   #9
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Принудительный выход

If true when this method is called, the MIDlet must cleanup and release all resources
Тоесть программа обязана убрать за собой перед завершением.
(Offline)
 
Ответить с цитированием
Старый 27.10.2007, 09:13   #10
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Re: Принудительный выход

Сообщение от pilgrim
Про RecordStore: туда можно сохранить практически все. Ведь мелодия и картинка это тоже байтовый массив если разобраться.
Так если бы в самом RS всё хранилось - нет ничего удивительного, а то прям рядом с файлом ресурсов лежит файл скажем .wav или .mid. Например, как в Семёнах:
1. На основании тела программы/игры генерится числовое название папки, например 12345.
2. Папка размещается в системной папке Data:/System/java (папка скрытая)
3. В этой папке генерится файл RMS_RC.db, в котором хранятся названия разделов RecordStore и ссылки на файлы типа [email protected], [email protected] и т.п. в кот. и хрянятся ресурсы.

Надо будет декомпильнуть пару тройку программ и посмотреть как они это делают. В идеале это даёт неплохой выигрыш по скорости при загрузке графики/мелодий, ведь в RecordStore они хранятся в незапакованном виде. Но для пользователей гимор - если удалить прогу, её RecordStore может остаться и засорять память телефона.
(Offline)
 
Ответить с цитированием
Старый 27.10.2007, 13:47   #11
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Re: Принудительный выход

Помоему все это делается на уровне виртуальной машины или сразу при установке приложения.
(Offline)
 
Ответить с цитированием
Старый 27.10.2007, 15:00   #12
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Принудительный выход


odd не пугай меня - любителя всевозможных утилит на трубке
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.10.2007, 15:28   #13
ARV
ПроЭктировщик
 
Регистрация: 25.12.2006
Сообщений: 163
Написано 7 полезных сообщений
(для 12 пользователей)
Re: Принудительный выход

если прога удаляется средствами системы телефона (а не всякими утилитами доступа к "диску" мобилки), то вместе с нею удаляются и файлы RS. А создаются они самой программой, файлы в системной папке - когда мы пишем в RecordStore - фактически пишем в те самые файлы... Система организует записи в виде базы данных - файл-индекс и файлы-таблицы записей, потому их всегда минимум 2...
Очень рекомендую при работе с RS при считывании контролировать целостность данных и сразу исправлять (т.е. перезаписывать значениями по дефолту), если они там некорректны... А то вот у программы ClimateControl это было не сделано, в результате однажды, когда связь с инетом была плохая, я ее вырубил принудительно, и в RS остались какие-то левые записи, после чего прога грузиться не захотела... Пришлось переустанавливать...
(Offline)
 
Ответить с цитированием
Старый 29.10.2007, 00:04   #14
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: Принудительный выход

odd, это специфика хранения данных на семенах, не стоит их переносить на всех производителей.
ЗЫ: по-моему мы слегка ушли от темы
(Offline)
 
Ответить с цитированием
Старый 30.08.2008, 21:50   #15
Kn793
Оператор ЭВМ
 
Аватар для Kn793
 
Регистрация: 30.08.2008
Сообщений: 22
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Принудительный выход

Ой наоффтопили.
Ну хотя бы goto кто-нибудь знает?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выход в интернет через другой комп - как сделать? ViNT Болтовня 3 15.09.2008 10:28


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


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