Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как проще расшифровать опции командной строки / 11 сообщений из 11, страница 1 из 1
16.10.2007, 13:30:42
    #34871467
A+
A+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
Устал искать...
Задача: корректно расшифровать опции командной строки, т.е. программа из
java myApp -mode reader -date 21:00:00 12.10.2007 > report.txt
должна понять, что:
режим - reader

дата-время - 21:00:00 12.10.2007

отчет выводить в файл report.txt

Пока не нашел ничего, кроме regex'а...
Неужели нет более мощного средства обработки таких строк?
Например, какой-нибудь класс TheClassINeed , чтобы задачу можно
было решить примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
	
	 public   static   void  main (String[] args){
		StringBuffer sb =  new  StringBuffer();
		String arguments =  null ;
		String mode;
		String date;
		String outputFileName;
		TheClassINeed myClass; //!!!
		
		 for  (String argument: args){
			sb.append(argument+" ");
			System.out.println(sb.toString());
		}
		
		 if  (sb.length() !=  0 ){
			arguments = sb.toString();
			System.out.println(arguments);
		}
		
		 if  (arguments !=  null ){
			myClass.setSource(arguments);
			mode = myClass.getToken("-mode");
			date = myClass.getToken("-date");
			outputFileName = myClass.getToken(">");
		}
		
		//havy crunch goes here ....
	}//public static void main (String[] args)

Вопрос: каково настоящее название TheClassINeed ?
...
Рейтинг: 0 / 0
16.10.2007, 13:37:33
    #34871498
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
A+
Вопрос: каково настоящее название TheClassINeed ?

http://commons.apache.org/cli/
...
Рейтинг: 0 / 0
16.10.2007, 13:54:03
    #34871564
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
поищи args4j, удобная штука с аннотациями
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.10.2007, 13:55:06
    #34871574
A+
A+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
Оперативно!
Сижу - изучаю.
А в JDK ничего подобного нет?

off-top: я тоже в школе немецкий изучал. :(
...
Рейтинг: 0 / 0
16.10.2007, 18:31:05
    #34872800
super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
ты не пробовал обращаться к элементам строки с помощью args[0],args[1], ..... и т.д.
...
Рейтинг: 0 / 0
16.10.2007, 18:39:39
    #34872825
super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
public static void main (String[] args){
if {args[0]=="-mode"} String mode = args[1];
if {args[2]=="-date"} String date =args[3]+args[4] ;
}
можно вот так.Если я тебя правильно понял
...
Рейтинг: 0 / 0
17.10.2007, 13:27:21
    #34874814
A+
A+
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
to super:
Некоторые аргументы могут отсутствовать, могут быть поменяны местами и проч.

Пока проблему решил с помощью java.util.regex'а... Если приложение
разрастется, то можно будет использовать то, что посоветовали
предыдущие товарищи.

P.S.: Спасибо всем ответившим.
...
Рейтинг: 0 / 0
17.10.2007, 13:39:40
    #34874878
pamir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
A+to super:
Некоторые аргументы могут отсутствовать, могут быть поменяны местами и проч.
Он тебе дал кальку. Ты же можешь расширить. Бежишь по аргументам. Если это "-mode", значит СЛЕДУЮЩИЙ это значение аргумента (тут уж они перепутаны не могут быть). И т.д. Потом проверяешь все это на валидность.
...
Рейтинг: 0 / 0
17.10.2007, 14:40:16
    #34875161
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
superpublic static void main (String[] args){
if {args[0]=="-mode"} String mode = args[1];
if {args[2]=="-date"} String date =args[3]+args[4] ;
}
можно вот так.Если я тебя правильно понял
тока что проверил работать нибудит
...
Рейтинг: 0 / 0
17.10.2007, 19:19:02
    #34876275
super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
прошу прощения, конечно,некоректно выполняется сравнение,перепутал немного
public static void main (String[] args){
if (args[0].equals("-mode")) String mode = args[1];
if (args[2].equals("-date")) String date =args[3]+" "+args[4] ;
}
так точно работает,сам проверил только что
...
Рейтинг: 0 / 0
17.10.2007, 19:20:11
    #34876278
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проще расшифровать опции командной строки
superпрошу прощения, конечно,некоректно выполняется сравнение,перепутал немного
public static void main (String[] args){
if (args[0].equals("-mode")) String mode = args[1];
if (args[2].equals("-date")) String date =args[3]+" "+args[4] ;
}
так точно работает,сам проверил только чтовау, ты супер, детка
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как проще расшифровать опции командной строки / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]