![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Всем привет! Делаю на J2ME что-то типа авторизации. Читаю из файла следующие данные - кол-во пользователей(один раз), пользователь, его пароль. Если всего 1 пользователь, то у меня все работает, а если больше одного тогда не хочет.
Вот код:
Помогите плиз советом. Заранее спасибо. |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Если цикл заканчивается после 30-й строчки, то проблема в том, что после строчки 24 ты не обновляешь значение переменной i0. Поэтому на 1-й итерации считается пара "логин#0-пароль#0" (правильно), на 2-й считается пара "пароль#0-логин#1"(неправильно), на 3-й - пара "логин#1-пароль#1" (по форме правильно, но по смыслу здесь уже должно было быть "логин#2-пароль#2"и т. д.
|
|||
|
||||
| Zita |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Поставил после PassTemp = str.substring(i0+1,i); i0 = i; Но все равно не работает при вводе правильного логина и пароля. Вот полный код обработки ввода:
|
||||
|
|||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Шикарно |
|||
|
||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Dummy, этот код сгенерировал NetBeans. Т.е. получается throw new UnsupportedOperationException("Not supported yet."); надо удалить??? Спасибо за советы.
UPD: Закоментировал эту строку и все равно не пашет. После ввода попадаю сюда - Alert myAlertj = new Alert("j",Integer.toString(j),null,null); mydisplay.setCurrent(myAlertj); Это сообщение отредактировал(а) Zita - 4.6.2008, 00:02 |
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Да, конечно, нужно удалить. NetBeans генерирует заглушки методов, и по умолчанию метод просто выкидывает UnsupportedOperationException(), просто чтобы просигнализировать разработчику, что этот метод не реализован. Как правило, следует это удалить и написать свою реализацию, возможно, пустую. И, конечно, в твоем случае этот эксепшн абсолютно ни к чему.
|
|||
|
||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Dummy, все равно не работает - неправильно считывает из файла(у меня данные разделены |, захватывает разделитель). Посоветуй плиз нормальную среду для разработки приложения под J2ME, чтобы был хороший Debug, так как в NetBeans он вообще никакой и ничего нельзя проследить. Заранее спасибо.
|
|||
|
||||
| Dummy |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Да все нормально должно быть в NetBeans Mobility, просто настроить надо. Правда, я по застарелой привычке пользуюсь IntelliJ Idea
Еще есть любители, которые Eclipse гоняют, но тут я не советчик - Eclipse никогда не использовал и пока не собираюсь. А по поводу того, что считывает неправильно... Посмотри, что у тебя там с индексами творится - это уже, видимо, алгоритмическая ошибка, а не проблема собственно считывания из файла. Мне что-то уже лениво чужой код дебажить, не сердись уж Ты, кстати, опиши, хотя бы, что за ошибка-то. Как выглядит, что происходит, что не так. Добавлено @ 01:26 Ну, собссно, еще один баг находится быстро.
нужно брать substring(i0, i - 1). Я уж не говорю о том, что надо бы обрабатывать ситуацию, когда мы не находим очередного "|". И даже не говорю о том, что будет, если в файле по какой-то причине будет идти, например, 2 слэша подряд. И совсем молчу о том, что такой код выполнять в commandAction() крайне не рекомендуется, ибо долгий он и блокирующий, да еще и IOException запросто схлопотать можно, что совсем уж чревато. Лучше запустить отдельный поток как-нибудь так:
Это сообщение отредактировал(а) Dummy - 4.6.2008, 01:29 |
||||
|
|||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Dummy, получается что при вводе правильного логина и пароля не проходит аутентификация. И в этом коде
я получаю последний логин. Т.е. первые логины в файле он пропускает??? |
|||
|
||||
| Dummy |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
Во-первых, я лажанул вот с этим советом:
Правильно сейчас у тебя написано, надо брать substring(i0, i). Вообще, покажи, как твой ini-файл выглядит (желательно приаттачить). Затем, измени код так, чтобы каждый раз он выводил LoginNameTemp, PassTemp через System.out.println. Или проще поставить breakpoint на 19-й строчке. Вот это в качестве отладочного лога никак не подходит:
Т. к. действительно в итоге отобразится только алерт с последним логином, что ты и видишь))) |
||||
|
|||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Dummy, спасибо помогло - убрал алерты. Теперь все пашет. Подскажи плиз как вывести сообщение если пользователя нет в файле?? Если бы мог поставил бы +.
|
|||
|
||||
| Dummy |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 21.5.2007 Репутация: 7 Всего: 19 |
А вот здесь уже как раз пригодится Alert
Только смотри, чтобы на момент исполнения этого кода текущим на экране был не Alert, иначе получишь IllegalArgumentException . |
|||
|
||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
С одной проблемой помогли разобраться, но появилась другая. Я пишу программу для тестирования и сами вопросы читаю из файла. Первый вопрос читается хорошо, а дальше после обработки выбора ответа не получается вывести 2-й вопрос(остается на первом вопросе). Помогите плиз разобраться в чем трабла. Заранее спасибо.
Вот код:
|
|||
|
||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Как надо обрабатывать ввод ответа и чтобы потом сразу выодились следующие вопросы?
Это сообщение отредактировал(а) Zita - 5.6.2008, 08:53 |
|||
|
||||
| Zita |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.8.2006 Репутация: нет Всего: нет |
Все сам нашел ошибку!
|
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |