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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает RMS ну хоть убей, Что делать? 
:(
    Опции темы
izotope
Дата 22.7.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 5.10.2007

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



Есть код:
Код

public void setSettings(){
        RecordStore recordStore = null;
        String str = null;
        try {
           
            try {
                recordStore = RecordStore.openRecordStore("KIBStorage", true);
            }
            catch (Exception ex) {
                ex.printStackTrace();
            }
           
            if (choiceGroup1.getSelectedIndex()==0){
                str = "0";
                currentOP="Beeline";
            }
            if (choiceGroup1.getSelectedIndex()==1){
                str = "1";
                currentOP="Megafon";
            }
            if (choiceGroup1.getSelectedIndex()==2){
                str = "2";
                currentOP="MTS";
            }
           
            if (choiceGroup2.isSelected(0)){
                workMode=true;
                //frmMain.set(0, "Служебный режим", work);
                if (frmOperFiz==null) {
                    get_frmOperFiz();
                }
                frmOperFiz.set(0, "Служ. остаток", work);
            } else {
                workMode=false;
                if (frmOperFiz==null) {
                    get_frmOperFiz();
                }
                frmOperFiz.set(0, "Остаток", work);
            }
           
            if (recordStore.getNumRecords() == 0) {
                recordStore.addRecord(str.getBytes(), 0, str.length());
                if (choiceGroup2.isSelected(0)){
                    recordStore.addRecord("1".getBytes(), 0, "1".length());
                } else {
                    recordStore.addRecord("0".getBytes(), 0, "0".length());
                }
                *recordStore.addRecord(txtPass.getString().getBytes(), 0, txtPass.getString().length());
            } else {
                recordStore.setRecord(1, str.getBytes(), 0, str.length());
                if (choiceGroup2.isSelected(0)){
                    recordStore.setRecord(2, "1".getBytes(), 0, "1".length());
                } else {
                    recordStore.setRecord(2,"0".getBytes(), 0, "0".length());
                }
                if (txtPass.getString()=="") {
                    txtPass.setString("0000");
                }
                *recordStore.setRecord(3, txtPass.getString().getBytes(), 0, txtPass.getString().length());
            }
            recordStore.closeRecordStore();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
    }



И вот хоть убей, но не добавляется в этот RMS запись и соответственно не записывается, не отрабатываемая строчка отмечена звездочкой.
PM MAIL   Вверх
eugine_s
Дата 22.7.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(izotope @  22.7.2008,  12:23 Найти цитируемый пост)
И вот хоть убей, но не добавляется в этот RMS запись и соответственно не записывается, не отрабатываемая строчка отмечена звездочкой. 


Какая ошибка? 
Текст, который в консоль пишется приведи.
PM MAIL   Вверх
izotope
Дата 22.7.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 5.10.2007

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



Ошибок нет, в консоли штатная информация
PM MAIL   Вверх
Dummy
Дата 22.7.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 21.5.2007

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



Что сразу бросается в глаза:
  •  txtPass.getString().length() - в общем случае не равно количеству байт в строке - это количество символов. Чтобы брать байтовый массив целиком, нужно изменить строчку 48 на что-то типа следующего:
    Код

    byte strBytes[] = txtPass.getString().getBytes();

    recordStore.addRecord(strBytes, 0, strBytes.length);

  •  Строки в Java нельзя сравнивать с помощью операции ==, как это сделано в линии 56, если это только не строки из константного пула. Нужно использовать String.equals().
  •  setRecord() не стоит делать с фиксированными значениями id записей, как это сделано в линиях 52, 54, 59.


Это сообщение отредактировал(а) Dummy - 22.7.2008, 14:15
PM MAIL   Вверх
izotope
Дата 22.7.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 5.10.2007

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



Цитата(Dummy @ 22.7.2008,  14:13)
[*] Строки в Java нельзя сравнивать с помощью операции ==, как это сделано в линии 56, если это только не строки из константного пула. Нужно использовать String.equals().

[*] setRecord() не стоит делать с фиксированными значениями id записей, как это сделано в линиях 52, 54, 59.
[/LIST]

Как сравнить пустое значение? с null ?

А с какими значениями нужно делать setRecord() ?
PM MAIL   Вверх
Dummy
Дата 22.7.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 21.5.2007

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



Цитата(izotope @  22.7.2008,  15:11 Найти цитируемый пост)
Как сравнить пустое значение? с null ?

"" можно найти так:
Код

if ("".equals(txtPass.getString())) {
    ...
}


Цитата(izotope @  22.7.2008,  15:11 Найти цитируемый пост)
А с какими значениями нужно делать setRecord() ? 

Например, использовать RecordStore.enumerateRecords() с соответствующим образом определенным RecordFilter. Но это, вероятно, не самый оптимальный подход.
Можно хранить id нужных записей в отдельном RecordStore, а потом напрямую к этим записям обращаться по id.

PM MAIL   Вверх
W0LF
Дата 23.7.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


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

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



Здесь я когда-то приводил готовый класс для работы с RMS


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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