![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
FoxWMulder |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Ну никак не могу разобраться. Надо: 1. открыть файл 2. загрузить его в массив 3. из массива нарисовать
Не знаю как загрузить в массив, у меня сейчас грузит просто в лист
причем в этом коде, я мало чего понимаю, вроде он грузит по символьно ( зачем? ) - можно ли сделать загрузку по строчно? Файл имеет к примеру 20 строчек, надо их вставить в массив, по принципу - пять строчек в первый столбец, следующие пять строчек во второй столбец и так далее. У меня сейчас чикл рисует из листа ( у меня не получилось сделать массив )
вроде все правильно, но работает он совершенно не правильно: две строчки в одном столбце, две в следующим и тд, а надо по 5 строчек. В итоге толи загрузка не правильная, толи в отрисовке. После решения этой проблемы, мне надо сделать еще и выбор файла. Если кто может - подскажите, только популярно ибо я только начал в java2me разбираться, на Pascal'е программирую еще, но java и паскаль как то мало схожи |
||||
|
|||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Нужно использовать FileConnection API (JSR-75) Ты бы в коде сначала разобрался в своем: а то у меня что-то есть, я не понимаю почему оно вообще как-то работает, но вы мне подскажите. А вообще еще лучше сначала взять толковую книжку для начинающих по "обычной" джаве и разобраться там с азами.
Например тут: он грузит побайтно, а потом "переделывает". Этот вопрос описан в байтовых и символьных потоках (один из первых разделов в любой книге по j2se) Если же совет по твоему коду давать, то попробуй сначала нормально загрузить твой файл и его содержимое загнать в строку, а уже распарсить строчку - это проблем не составит. То есть, сначала считай файл в строку и сделай вывод в командную строку (на эмуляторе) этой строки и посмотри правильно ли считался твой файл. |
||||
|
|||||
FoxWMulder |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
как? InputConnection connection; ? смысл не поменялься, а через эмулятор - у меня файл вообще не открываеться ( появляеться запрос на открытие и все ), только с мобильника
если бы еще знать КАК? ![]() |
||||
|
|||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Что значит смысл не меняется? Если уже направление не ясно, то прямая ссылка поможет? http://www.mobilab.ru/articles/79/ В статье есть как читать из файла (хотя это у тебя у самого есть в коде, но ты наверное еще не знаешь об этом? ![]() |
|||
|
||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Дык вроде читает, только...
все таки у меня не правильно читает из файда, вот пример Файл: " 1 2 3 4 5 6 7 " Она все читает, но пропускает пустые строки Это сообщение отредактировал(а) FoxWMulder - 23.11.2007, 20:05 |
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
1. Скажи, а что программа должно делать с пустой строкой? 2. Что в этом куске кода делается?
3. Что значит пустая строка? В файле нет пустой строки, там есть символы. Так какой код "пустой строки"? 4. Опять же по коду приведенному выше. Что это за магическое число 798 ? |
||||
|
|||||
FoxWMulder |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
мда неправ. 798 - размер файла в строках, по идеи это условие не нужно, надо просто идти до конца файла, сейчас попробую убрать. - ну точно ничего и не поменялось.
а пустая строка, это я имею ввиду - пустая с точки зрения человека - без символов ( пробел ? ) вот так файл выглядит для меня: " 1 2 3 4 5 6 7 " а она читает: " 1 2 3 4 5 6 7 "
черти его знает... ну вообщем я так понимаю, читаем строку если она не пустая ( >0 ) то заносим в список бред... ![]() но если убрать условие >0 то она вообще както хитро разбивает строки теперь код выглядит так
опять же пусты строки для нее не существуют я не понимаю ( счастье так близко ) просто надо узнать что строка без символов ( вообще, там даже пробела нету ) - почему она его пропускает - ну фиг с ней, но узнать это же как то можно вот файл из HEX-вида 310D 0A0D 0A32 0D0A 330D 0A34 он же только по-человечески " 1 2 3 4 " следовательно "0A0D" = пустая строка у меня в коде есть "if(ch==0xD || ch==0xA){" - что определяет конец строки как из этого определить пустую строку?! Это сообщение отредактировал(а) FoxWMulder - 23.11.2007, 20:44 |
||||
|
|||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
я убьюсь с это джавой, разные файлы читает по разному - ну не понимаю
кроме по байтного чтения не ужели нет другого способа а там пробелы вот такую строчку она и читает нормально, а вообще без символов... пропускает Это сообщение отредактировал(а) FoxWMulder - 23.11.2007, 20:59 |
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Для кого тут я давал ответы??? Смотрим первый пост: потоки бывают байтовые и символьные. Слушай, как ты хочешь написать программу на j2me если совсем не имеешь представления о j2se? Как бы это твое личное дело, я тебе могу дать ответ, но прежде чем задать следующий вопрос прочитай ХОТЯ БЫ ВОТ ЭТУ СТАТЬЮ: http://skipy.ru/philosophy/learning.html там как раз про тебя написано. Заодно и остальные статьи прочитай: много полезного найдешь. Пустая строка - это для тебя и меня текстовый редактор показывает пустую строку, а для файла это только символ. Вопрос звучал так: Так какой код "пустой строки"? Правильный ответ: 13 10 (заметь это два символа, символ окончания строки(Enter) и символ перевода каретки) Теперь скажи какое значение имеют эти коды (13 и 10) в 16-тиричном формате (кстати, как 16-тиричный формат в java записывается?) Ответ: A и D 13 = 0xD 10 = 0xA Смотрим теперь в код:
Что должна делать программа если встретила "пустую строчку" (на самом деле символ окончания строки)? Твой пример: 1 2 3 4 В файле это выглядит вот так: 1\n\r2\n\r3\n\r\n\r4\n\r ( \n - код 13, \r - код 10) твой цикл обработки считал файл и начинает обрабатывать байты: 1 - записал в tmpStr \n - выполняется условие if(ch==0xD || ch==0xA) : записываем из tmpStr в list \r - выполняется условие if(ch==0xD || ch==0xA) : но tmpStr - пустой, никаких действий не происходит 2 - записал в tmpStr \n - выполняется условие if(ch==0xD || ch==0xA) : записываем из tmpStr в list \r - выполняется условие if(ch==0xD || ch==0xA) : но tmpStr - пустой 3 - записал в tmpStr \n - выполняется условие if(ch==0xD || ch==0xA) : записываем из tmpStr в list \r - выполняется условие if(ch==0xD || ch==0xA) : но tmpStr - пустой //собственно дальше идет твоя "пустая строка" \n - выполняется условие if(ch==0xD || ch==0xA) : НО tmpStr - пустой, никаких действий не происходит!!! \r - выполняется условие if(ch==0xD || ch==0xA) : опять же tmpStr - пустой, никаких действий не происходит 4 - записал в tmpStr \n - выполняется условие if(ch==0xD || ch==0xA) : записываем из tmpStr в list \r - выполняется условие if(ch==0xD || ch==0xA) : но tmpStr - пустой ...... Если не понял, то лучше сядь и разберись, иначе ..... программирование - не для тебя. Вот теперь скажи, кто по разному читает файлы? Java? или ты не понимая сути, берешь чужой код и не разобравшись (да даже не познакомившись с языком программирования) просишь совета... |
||||
|
|||||
shomer |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 7.11.2007 Репутация: нет Всего: нет |
eugine_s спасибо за ссылку на skipy.ru
Это сообщение отредактировал(а) shomer - 24.11.2007, 02:12 |
|||
|
||||
shomer |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 7.11.2007 Репутация: нет Всего: нет |
Все таки свербит
Хотя тут явно надо бы - читаешь в буфер, обрабатываешь его |
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
То есть?
или я вопрос не понял
Посмотри коды в Кирилице (Cp1251) русских буков и посмотри на этиже коды в Unicode. Зачем? Можно и без этого. |
||||
|
|||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
Точно вспомнил конец строки-перевод строки. eugine_s вот теперь ты мне расписал все подробно и я понял в чем моя ошибка и чего надобно собственно сделать. shomer твой код работает правильно только "byte prev_ch;" заменил на "int prev_ch = 0;" у меня же "ch" - integer; иначе она не хочет присваивать.
Как юзать символьные? А почему надо начинать именно с java2se а не me? Интересно "String mas[];" - компилит, а "String[] mas = new string[10];" - не компилит, почему? собственно мне двухмерный массив нужен, но тут и одномерный не хочет. Это сообщение отредактировал(а) FoxWMulder - 26.11.2007, 16:13 |
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Про явное приведение типов не слышал наверное. http://www.ssga.ru/metodich/web_diz/8/6.html
книги, книги и еще раз книги (книги можна заменить на доки). |
||||
|
|||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
слышал... на паскале
![]() только тогда она тормозиться на "else if ( prev_ch==0xA)", правильно это в integer а теперь надо в byte, ладно работает и хорошо |
|||
|
||||
eugine_s |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Сам ответил на свой вопрос: чтобы не было вопросов типа: приведения типов? как юзать символьные потоки? Java чувствительна к регистру буквы.
|
||||
|
|||||
FoxWMulder |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
а черт... тьфу ты постоянно забываю про это, теперь работает Статья "Знакомство с ограничениями FileConnection API" не очнь то помогает, случаем библиотеку в проект никакую нинадо импортировать, а то эмулятор стоит K750 но вот это к примеру компилить не хочет
только так
соотвественно дальше не проходит
Это сообщение отредактировал(а) FoxWMulder - 26.11.2007, 16:39 |
||||||||
|
|||||||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Что это? В java классы не называются с маленьких букв. Это скорее всего то что нужно в джад добавить что бы не было запросов от JVM на чтение и запись. А библиотеку конечно нужно добавить: %wtk_home%\lib\jsr75.jar Чем проект собираешь? WTK? Если да, то в Settings - первая вкладка: Target Platform: Custom поставить галочку возле PDA Profile for J2ME (JSR 75) В следующий раз приводи текст ошибки. Это сообщение отредактировал(а) eugine_s - 26.11.2007, 16:59 |
|||
|
||||
FoxWMulder |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
как не называються а вот это у меня работает:
не компилиться я имел ввиду в Sun ONE Studio 4 в WTK библиотеку добавил запихнул в массив, правда не правильно немного ну да ладно, тем неменее массив получилься нормальный но вот так она работает
подставляю любое число вместо тройки она выдает нужный столбец все правильно но вот так уже не работает, просто ничего не выводит
в чем может быть проблема
текст ошибки p03.java [24:40] cannot resolve symbol symbol : class file location: class javax.microedition.io.Connector import javax.microedition.io.Connector.file.read; 1 error Errors compiling p03. Это сообщение отредактировал(а) FoxWMulder - 26.11.2007, 17:18 |
||||||||||
|
|||||||||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
назвать ты можешь как хочешь класс и с маленькой и с большой буквы, но есть стандарт джава : - В названиях классов первая буква большая ( class Test) - Если в название состоит из двух и более слов, то каждое слово начинается с большой буквы (FoxTest) И как ты думаешь, если Sun вводит эти правила джава, и разрабатывает WTK то в их классах будут такие ошибки с названиями классов. Правило не обязательно, но все если хочешь быть хорошим программером, то лучше писать по правилам джава. Про это можно вот тут прочитать: http://skipy.ru/philosophy/cqComponents.html А скажика мне javax.microedtion. - это классы ???? ![]() это код какой ошибки??? которая сейчас или которая была перед этим? Добавлено через 5 минут и 18 секунд напиши правильно, и если потом не получится будем разбираться в чем проблема. Тут лучше весь код привести + текст ошибки. |
|||
|
||||
FoxWMulder |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
тэк,
сначало прочитал файл
потом из полученного списка забил массив
вот до этого момента все похоже работает нормально а вот дальше вообще ничего не рисует
Это сообщение отредактировал(а) FoxWMulder - 26.11.2007, 19:24 |
||||||||
|
|||||||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
848 а может 798 (или сколько там было)?
что вообще это за магические числа: 848, 34, 80, 150, 12, 50, 200 ? что значит вообще не рисует? просто ничего не выводит на экран или бросает Exception? Если не выводит на экран проверь чтобы выводилось в консоль: System.out.println(); Если Exception - телепаты в отпуске. Где текст ошибки. Кстати а что такое: list - это экземпляр класса List???? ![]() Приведи полное задание того что ты хочешь сделать: считать файл и т.д. и приаттач так же файл с исходниками.
|
|||
|
||||
W0LF |
|
||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
Ну, теперь дебажить нужно.
Проходим по массивам, смотрим че у нас в mas[x2][y2], если то, что нужно, то смотрим на координаты, че с ними делается, может просто рисуется где-то за экраном. попробуй заменить
на
-------------------- iOS developer |
||||
|
|||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
![]() |
|||
|
||||
FoxWMulder |
|
||||||||||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
но белее менее работает, дорабатывать будь потом, надо вообще сесть и на бумаге прикинуть как все должно работать а сейчас если честно сказать меня уже больше волнует как сделать выбор файла, вы уже во многом мне помогли если расскажите по пунктам как реализовать выбор буду вААбще очень признателен
да это все к разговору о размере файла
да ет ошибка какаято в коде она мне не выдает ошибки просто не рисует и все ![]()
ну да
вообще лучше наверно прямо в массив загонять, только файл над по частям в разные массив
Это сообщение отредактировал(а) FoxWMulder - 27.11.2007, 04:17 |
||||||||||||
|
|||||||||||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Я так понял, что тут: один вопрос - одна тема. Но перед этим пройтись поиском по похожим темам. Нет. Это к разговору о "взятии чужого кода". У тебя в коде, когда идет чтение из файла, то не нужно знать его размер - это скорее всего ты сам уже дописал.
Объясняю подробнее. List - класс который можно сделать Display.getDisplay().setCurrent(List) - т.е. его можно отобразить на экране. Он содержит много методов и только несколько из этих методов работы со строками. И ты очень нерационально (не правильно!) используешь для своей цели List. ![]() |
|||
|
||||
FoxWMulder |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
везде пишут как открыть файл но нигде как выбрать файл
http://forum.vingrad.ru/faq/topic-158027.html http://forum.vingrad.ru/forum/topic-63746/...tion/index.html ты мне объясни почему если я добавляю вот такую строку
то она мне выдает ошибку p03.java [24:40] cannot resolve symbol symbol : class file location: class javax.microedition.io.Connector import javax.microedition.io.Connector.file.read; 1 error Errors compiling p03.
Это сообщение отредактировал(а) FoxWMulder - 27.11.2007, 16:37 |
||||
|
|||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
как перевести из String в Integer
|
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
javax.microedition.io.file.FileSystemRegistry - можно получить список root каталогов. каталог - тот же файл javax.microedition.io.file.FileConnection.isDirectory() - проверка на каталог. Получил список root-каталогов, добавил в list c:/ e:/ пользователь нажал выбрать (например c:/) удалил все записи из list добавил содеждимое ФАЙЛа c:/ (FileConnection.list() в list + добавил ".." - для возврата на уровень выше. вообщем так дальше..... Думай сам.
Ответ уже был дан: в Java классы не начинаются с маленькой буквы (кроме классов начинающих программеров). Отсюда выход какой? Такого класса просто нет. Обычно теория + практика. Берешь книгу. Прочитал главу - написал программку. и так далее. Почему тебе тут должны объяснять то что есть в ЛЮБОЙ книге по java? "Зачем мне теория", да? Java это в первую очередь - ООП, а потом уже язык программирования. Из тебя не будет программера Java, если ты не знаешь и не используешь в Java ООП. А ты не то, что ООП не знаешь, так ты даже основы Java не прочитал. |
|||
|
||||
shomer |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 7.11.2007 Репутация: нет Всего: нет |
Извиняюсь за грубость но - Пора эту бодягу заканчивать - сильно смахивает на ясли..
|
|||
|
||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
довольно подробно и доходчиво... попробую конечно разобраться... но может конкретный код приведешь
![]() и если я уже всем надоел, обещаю что после того как разберусь с выбором фаила - закрою эту тему Это сообщение отредактировал(а) FoxWMulder - 28.11.2007, 02:53 |
|||
|
||||
FoxWMulder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.11.2007 Репутация: нет Всего: нет |
ну плиз.... последние наставления
![]() Это сообщение отредактировал(а) FoxWMulder - 30.11.2007, 02:55 |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Какие наставления. Все уже было сказано в какую сторону копать, идеи по реализации были даны. Дальше можно только исходники выложить, но я например не вижу в этом смысла - зачем мне за кого-то писать приложение? Это уже ближе к коммерческому решению вопроса - с этим в личку обращайся. Или что-то конкретное интересует? (под конретным имеется ввиду: у меня в таком-то месте не получается вот такое-то, почему подскажите). На такое можно ответить, иначе я уже написал - коммерческое предложение, можем обсудить по почте. |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |