|
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 51
|
|
Scanner построчное считывание с дальнейшим делением строки на объекты22.01.2014, 16:43. Показов 6344. Ответов 11
Метки нет (Все метки)
Доброго времени суток форумчане)))
Помогите пожалуйста решить вопрос. Есть текстовый файл, в нем записаны строки вида D05 T1235 U54115 D09 T5845 U5478 H548 Нужно считать строку, проверить первый объект после чего получить следующие несколько параметров причём количество параметров зависит от первого объекта строки. Далее перейти на следующую строку. Насколько я понял нужно использовать в сканере оператор while(in.hasNextLine()) после чего создать цикл который считает следующие несколько объектов после проверки первого. В общем то проблема с концепцией как это выглядит, как заставить цикл перехода к следующему объекту сработать определённое количество раз. Заранее благодарен за помощь)))))
0
|
|
| 22.01.2014, 16:43 | |
|
Ответы с готовыми решениями:
11
Построчное считывание с файла до конца строки Считывание MD5 с файлов и преход на Form2 с дальнейшим указанием действий Scanner, считывание double |
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
||||||
| 22.01.2014, 18:22 | ||||||
|
вот вам на пример будет читалка файла по строке, а со строкой уже делайте что хотите
0
|
||||||
|
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 51
|
|||||||||||
| 22.01.2014, 20:01 [ТС] | |||||||||||
|
Что то как то не выходит(((
(* Asper 3.5.1 SVN=6625 Build date: Mar 14 2013, time: 13:27:46 *) Exception in thread "main" java.lang.NumberFormatException: For input string: "*" at java.lang.NumberFormatException.forInput String(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at Test.getStringsFromFile(Test.java:22) at Test.main(Test.java:7) Добавлено через 6 минут переменную переместил в if(code=='G') теперь в консоль выкидывает только: (* Asper 3.5.1 SVN=6625 Build date: Mar 14 2013, time: 13:27:46 *) я так думаю не переходит на следующую строку(((( Добавлено через 18 минут В общем получилось так:
0
|
|||||||||||
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|
| 22.01.2014, 20:07 | |
|
String[] array = string.split(" ");
поделит ваш string на части по знаку "пробел", а вы куда-то не туда пошли ![]() Добавлено через 2 минуты укажите вообщем что за "объект" вы имеете ввиду, первая буква может? по ней идет дальнейшая обработка? напишите что хотите получить в конечном итоге, если хотите - делайте сами, я свою версию выбрасывать сюда не буду, но хоть буду понимать правильно ли помогаю
0
|
|
|
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 51
|
|
| 22.01.2014, 20:08 [ТС] | |
|
Уточните пожалуйста начинающему куда массив запихнуть))))
0
|
|
|
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 51
|
|
| 22.01.2014, 20:30 [ТС] | |
|
Кусок исходного кода:
(* Asper 3.5.1 SVN=6625 Build date: Mar 14 2013, time: 13:27:46 *) (* Используемые инструменты: *) (* верхняя фаска - T211 *) (* Прямой рез - T111 *) (* ------------ *) (*Thickness = 12.00*) "SHEET_DIM 6000 1500 9000000 12.00 7850 MST G90 (* ABSOLUTE *) "PART 44076.25.421ф 94 3717 2517.00 557.00 "SIZE = 60 x 68 M6 T211 (* SET TOOL *) G0 X0 Y0 M94 D1(* BEGIN SURFACE DETECTION *) G94 X2517.001 Y534.999 (* DETECT ONE POINT *) G94 X2547.001 Y534.999 (* DETECT ONE POINT *) M94 (*END OF SURFACE DETECTION*) G0 X2559.001 Y534.999(* TRAVERSE *) G0 B180.00 (* SET AZIMUTH *) G41 (* COMPENSATION LEFT *) M38 L0.00 L0.00 (* AZIMUT LIMITS *) M29 A-45.00 (* SET CHAMFER *) M37 (* AZIMUT NOW *) M20 D2 (*HEAD DOWN *) M3 (* TOOL ON *) G1 X2553.001(* LEAD IN *) G1 X2547.001(* LEAD IN *) M28 (* TANG CTRL ON *) G1 X2537.001(* BEVEL CONTOUR *) M90 K11 L0 (*LEARN MODE *) M22 D11 (*LEARN MODE - START LEARNING*) G1 X2517.001(* BEVEL CONTOUR *) M23 D11 (*LEARN MODE - STOP LEARNING*) M22 D10 (*3D OFF*) M22 (* ADAPT. ON *) G1 X2487.001(* BEVEL CONTOUR *) M27 (* TANG CTRL OFF *) G1 X2481.001(* LEAD OUT *) M5 (* TOOL OFF *) M90 K111 L100 (*RECALL VOLTAGE *) M21 (* PARK *) G40 (* COMPENSATION OFF *) M32 (* PARK ROTATOR *) M6 T111 (* SET TOOL *) G0 X2481.001 Y534.999 G0 X2487.001 Y510.999(* TRAVERSE *) G41 (* COMPENSATION LEFT *) M20 (*HEAD DOWN *) M3 (* TOOL ON *) G1 Y522.999(* LEAD IN *) G1 Y560.999(* LINE - CONTOUR *) G2 X2547.001 Y560.999 I2517.0008 J560.9995(* ARC CW - CONTOUR *) G1 Y522.999(* LINE - CONTOUR *) G1 Y516.999(* LEAD OUT *) M5 (* TOOL OFF *) M21 (* PARK *) G40 (* COMPENSATION OFF *) В строке первое значение это основная команда за ней следуют несколько значений таких как X,Y,A,B. Из этих строк нужно получить числовое значение (все что идет после букв). Конечная цель получить строку G94 X2517.001 Y534.999(выделена цветом) и отправить её в бд sqlite вида: команда X Y G94 2517.001 534.999 проблема в том что в команде G94 может отсутствовать X или Y и в отсутствующему значению присвоить 0, поэтому я и пытаюсь проверять циклом. Конечно если бы данные были строго структуризированы то можно обойтись массивом либо я чего не знаю))) Добавлено через 1 минуту при этом еще и куча мусора в исходном файле(все что указанно в (* *) ну и самые первые строки тоже не нужны)
0
|
|
|
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 51
|
||||||
| 22.01.2014, 20:48 [ТС] | ||||||
|
Из этого должно попасть
в поле команда - G1 в поле X-0 в поле Y-522.999 в поле команда - G1 в поле X-2487.001 в поле Y-0 Добавлено через 4 минуты И еще вся эта каша будет на андроиде))) Добавлено через 4 минуты Начинал пробовать так:
0
|
||||||
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
||||||
| 23.01.2014, 14:06 | ||||||
|
вообщем смотрите что получилось
![]() вынес всю кашу в отдельный метод, чтобы вы не заморачивались с интеграцией в программу, все команды (как вы хотели) находятся в ArrayList<String> listWithCommands, тойсь по очереди можете вызывать ячейки - и добавлять в БД
0
|
||||||
|
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 51
|
|
| 23.01.2014, 18:07 [ТС] | |
|
Вам огромное спасибо))) Но так как я только начал учиться благородному делу программированию у меня возник вопрос есть ли какая нибудь у Вас ссылка на информацию или литературу чтобы разобраться с данным кодом. Именно интересует matcher.group и pattern.
Добавлено через 3 минуты Просто нужны не только G1 и G2 но и остальные, а Вас нагружать не попытавшись самому разобраться как то неудобно
0
|
|
|
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
|
|
| 23.01.2014, 19:28 | |
|
Это Вам читать про Regexp нужно в первую очередь, а дальше класс Pattern, Matcher из документации
1
|
|
| 23.01.2014, 19:28 | |
|
Помогаю со студенческими работами здесь
12
Поправить считывание Scanner построчное считывание Построчное считывание Построчное считывание
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|