Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с RMS 
:(
    Опции темы
Spegulo
Дата 2.4.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2009
Где: Новосибирск

Репутация: нет
Всего: нет



Всем привет.
Есть у меня такая задачка.
Пишу игру и возникла необходимость сохранять имя игрока. 
Для ввода имени есть форма с полем для ввода имени.
Логика работа, соответственно, такова.
1. При открытии формы читаем запись из хранилища и заносим ее значение в текстовое поле. Если записи на этот момент не существует - создаем ее с пустой строкой в качестве значения.
2. При нажатии кнопки "Сохранить" перезаписываем значение в хранилище.

А теперь, уважаемые знатоки, вопросsmile

Как реализовать проверку записи на существование и ее создание в случае необходимости?
Уже весь мозг сломал - выдает ошибку:

Цитата

java.lang.IllegalArgumentException
        at com.sun.midp.lcdui.DynamicCharacterArray.insert(DynamicCharacterArray.java:123)
        at javax.microedition.lcdui.TextField.insert(+19)
        at javax.microedition.lcdui.TextField.insert(+14)
        at a.<init>(+104)
        at BoatFight.startApp(+10)
        at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44)
        at com.sun.midp.midlet.Scheduler.schedule(+270)
        at com.sun.midp.main.Main.runLocalClass(+28)
        at com.sun.midp.main.Main.main(+80)


Я сам пока во всем этом не сильно шарю, посему сильно прошу ногами не пинать smile
Код метода ниже.

    
Код

private String getSave(){
        String userSave = "";
        try {
            save = RecordStore.openRecordStore(storeName, true);
            try {
                userSave = save.getRecord(1).toString();   
            } catch (InvalidRecordIDException ire) {
                byte cleanRec[] = new byte[1];
                save.setRecord(1, cleanRec, 0, cleanRec.length);
                userSave = save.getRecord(1).toString();   
            }

        } catch (RecordStoreException rse) { rse.printStackTrace(); }
        try {
            save.closeRecordStore();
        } catch (RecordStoreException rse) {rse.printStackTrace(); }
        return userSave;
    }

 

Это сообщение отредактировал(а) W0LF - 2.4.2009, 21:40
PM MAIL ICQ   Вверх
W0LF
Дата 2.4.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



1. Код обрамляем тегом code либо же тыцаем кнопку "Код"
2. Против строк кода для удобсвта лучше ставить нумерацию их в Вашем коде ибо эксепшн указывает на номер строки
3. Если спуститься вниз страницы - можно увидеть список похожих тем, я когда-то выкладывал класс для работы с RMS - 
ссылка

по Вашему коду, первое что бросается в глаза - 
Код

 save = RecordStore.openRecordStore(storeName, true);

эта строка легко бросает IllegalArgumentException, если storeName недействительно, а в catch у Вас это не отлавливается.


Это сообщение отредактировал(а) W0LF - 2.4.2009, 21:38


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Spegulo
Дата 2.4.2009, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2009
Где: Новосибирск

Репутация: нет
Всего: нет



Цитата

1. Код обрамляем тегом code либо же тыцаем кнопку "Код"
2. Против строк кода для удобсвта лучше ставить нумерацию их в Вашем коде ибо эксепшн указывает на номер строки
Сори, я не частый посетитель форумов, впредь буду внимательней smile
Цитата

3. Если спуститься вниз страницы - можно увидеть список похожих тем, я когда-то выкладывал класс для работы с RMS - 
ссылка
Вот спасибо, пока сильно не вчитывался, но судя по всему ОНО smile
Цитата

по Вашему коду, первое что бросается в глаза - 
Код

 save = RecordStore.openRecordStore(storeName, true);

эта строка легко бросает IllegalArgumentException, если storeName недействительно, а в catch у Вас это не отлавливается.
Это да, но фрагмент кода скорей "вникательный", я на такого рода эксепшены просто не отвлекался, в данной ситуации проблема вроде не в ней.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.