Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

разбор строка


Страницы:   1 2 3

Максим ©   (2008-02-20 09:31:00) 

я передаю параметры для работы свой программы через строку(например так: -a -b -c) все работает,но хотелось чтобы -abc  было равносильно -a -b -c.
Как такое сделать?


Максим   (2008-02-21 18:12:00) [1]

Благодарен вам за ответы, по 41 поразмышлял...наверно я откажусь от мысли делать командноу строку в программе, но реализовать задумку все же попробую, дабы интересно:) еще раз спасибо!


Сергей М.   (2008-02-21 13:47:00) [2]


> Максим


Тут, видишь ли вот, в чем дело - ком.строка и иже с ней текстовые опции-параметры как интерыфейс интерпроцессного (или, если угодно, межмодульного) взаимодействия были придуманы несколько для других целей:

1. Обеспечение инф.обмена между программными модулями в гетерогенной среде, т.е. в ситуациях когда взвимодействующине модули разработаны разными программистами, в разных средах разработки и/или с применением несовместимых технологий. Ком.строка в этих ситуациях есть, своего рода, соглашение, которого при необходимости с легкостью могут придерживаться модули, разработанные в подавляющем большинстве сред разработки.

2. Стандартизация и упрощение формирования пакетныхзаданий.

Ни п.1 ни п.2, судя по твоим пояснениям, не являются твоим случаем, потому и небходимость в задействовании в твоей задаче интерфейса ком.строки была подвержена критике (ну или, мягке сказать, сомнению).


Сергей М.   (2008-02-21 13:34:00) [3]


> {RASkov} ©   (21.02.08 10:39) [39]


> неужели автор сам до этого не додумался


Похоже, автор желает по возможности осложнить жизнь юзеру, заставив его ручками формировать ком.строку, держа в голове всю эту командно-параметрическую шнягу. Типа раз уж мне, программеру, геморрой с этой ком.строкой, то пусть уж, мол, и юзер помучается - мол, стадать от придуманного геморроя вдвоем как-то веселей.


{RASkov}   (2008-02-21 10:39:00) [4]

> [37] Сергей М. ©   (21.02.08 10:32)

Ну этож вообще очевидно и все просто.... неужели автор сам до этого не додумался.... :))


{RASkov}   (2008-02-21 10:37:00) [5]

> [36] Максим   (21.02.08 10:28)
> то получиться -dstroka  что некрасиво,и думаю чтьо не правильно.

А это обязательность такая, любоваться параметрами коммандной строкой?

> но мне все же хотелось узнать как делать правильно и грамотно!

Я думаю, что вот так будет правильнее
-d:stroka

НО! Зачем вообще здесь параметры коммандной строки? Уже об этом говорят.... Просто твоя задача мне, например, не совсем ясна, поэтому что-то посоветовать взамен я не могу :(


Сергей М.   (2008-02-21 10:32:00) [6]


> предложите другой вариант передачи параметров


Вариант прост до безобразия - плагин экспортирует некую ф-цию вида

DoSomethingWithParams(Params: TMyParams)

где, например,

TMyParams = array of OleVariant;


Максим   (2008-02-21 10:28:00) [7]

Германн ©   (21.02.08 00:43) [30]

2. Параметры не принято передавать в виде "-d 10". Их принято передавать в виде "-d10". Поскольку пробел разделяет параметры.

>2. А если в качестве значение передается строка, то получиться -dstroka  что некрасиво,и думаю чтьо не правильно.

Сергей М. ©   (21.02.08 08:40) [35]
если есть возможность то предложите другой вариант передачи параметров.

Если честно,то я не пойму чем плох сам варинт передачи параметров моим плагинам.
Само присутстиве плагинов считаю уместным в моем случае,т.к. довольно узко-направленные рассчеты производятся в них. Рассчитано на узкий круг людей, которым я продаю их по мере надобности(но не об этом в теме,просто хочу чтобы вы поняли мои действия и могли направить в нужное русло). В каждом плагине реализуется обработка тех или иных данных,причем в некотрых полностью отсутствуют каки-либо параметры,кроме как включение его в работу. В некоторые нужно передавать строкуи параметры для обработки(самый частый вариант в моем случае).
Спасибо всем за ответы! Если есть какие то конкретные мысли, говорите, я все готов выслушать дабы сделать правильно!
По-поводу copy,pos,я умею ими пользоваться и представляю как сделать вариант будь то просто -a 10 -t -b -g 15 -h stroka,
но мне все же хотелось узнать как делать правильно и грамотно!


Сергей М.   (2008-02-21 08:40:00) [8]


> допустим выкиеу и что взамен этого?


Да что угодно)

Мало ли возможностей передать/принять нетекстовые параметры в натуральном виде, без преобразований в строку и обратно ..


Германн   (2008-02-21 01:05:00) [9]


> Бегущий человек ©   (21.02.08 01:03) [33]
>
>
> > Германн ©   (21.02.08 00:54) [32]
>
> А, ну  если параметры сложной структуры, со значениями ,
> тогда аффтару советую прочесть про синтаксический разбор
> (самый простой метод - рекурсивный спуск).
>

До изучения букваря?


Бегущий человек   (2008-02-21 01:03:00) [10]


> Германн ©   (21.02.08 00:54) [32]

А, ну  если параметры сложной структуры, со значениями ,тогда аффтару советую прочесть про синтаксический разбор (самый простой метод - рекурсивный спуск).


Германн   (2008-02-21 00:54:00) [11]


> Бегущий человек ©   (21.02.08 00:44) [31]
>
>


> А то, что теперь
> 1) Парсим строку параметров в main
> 2)Записываем параметры в mmap
> 3)Шлём плагину сообщение, и он все из mmap вычитывает, без
> геморроя c Paramstr
>

Дык у автора проблемы именно с парсингом строки.


Бегущий человек   (2008-02-21 00:44:00) [12]


> Сергей М. ©   (20.02.08 23:49) [26]
>
> Совет, за неимением вразумительных объяснений по поводу
> оправданности именно такого интерфейса межмодульного взаимодействия,
>  как раз и выглядит как "выкинуть нафих интерфейс ком.строки
> вместе с ее парсинг-велосипедом".
>


> Максим   (21.02.08 00:17) [27]
>
> допустим выкиеу и что взамен этого?


А то, что теперь
1) Парсим строку параметров в main
2)Записываем параметры в mmap
3)Шлём плагину сообщение, и он все из mmap вычитывает, без геморроя c Paramstr


Германн   (2008-02-21 00:43:00) [13]


> Максим   (20.02.08 21:11) [20]
>
> хм...что-то криво я изъясняюсь... попробую по-нормальному!
> :)
>
> Есть основная программа(main) и куча плагинов.
> В main есть edit, в котором я пишу: 1)первое слово это название
> плагина,которому будут передаваться параметры и сами данные
> на обработку. 2) параметры 3) данные на обработку.
> Получается что первое слово удаляем(название плагина) все
> остальное передаем плагину на обработку,тот в свою очередь
> должен понять что за параметры,и какие у них значения если
> они вообще предусматриваются. т.е. на пример параметр -a
> и -b идут как "просто" параметры, а параметр -c и -d должны
> быть со значениями,т.е. -a -b -c 5 -d 10, и если после параметра
> с или d  нету значение то result = 'error parametrs' and
> exit ;)
>

1. Поработай над "разбором строк". Т.е. на функциях/процедурах из букваря.
В частности Pos и Copy. Изучи их хорошенько.
2. Параметры не принято передаватьв виде "-d 10". Их принято передавать в виде "-d10". Поскольку пробел разделяет параметры.
3. После изучения букваря вернись к ещё одному прочтению  [23]. Осознай его суть и если что тогда будет непонятно, задай другой вопрос.


Максим   (2008-02-21 00:34:00) [14]

причем тут mmap?


Бегущий человек   (2008-02-21 00:27:00) [15]

Memory mapped file спасут отца русской демократии


Максим   (2008-02-21 00:17:00) [16]

допустим выкиеу и что взамен этого?


Сергей М.   (2008-02-20 23:49:00) [17]


> милости просим


Ну я уже зашел. С советом. Без стука)

Совет, за неимением вразумительных объяснений по поводу оправданности именно такого интерфейса межмодульного взаимодействия, как раз и выглядит как "выкинуть нафих интерфейс ком.строки вместе с ее парсинг-велосипедом".


Максим   (2008-02-20 23:31:00) [18]

Так надо, здесь я лишь прошу помощи(смотрите выше о чем речь).
Если же у вас есть какие то предложения или советы,то милости просим. А писать то, что нахрен мне это надо....
нчиего личного, просто хочется советов и т.п. услышать =)


Сергей М.   (2008-02-20 23:28:00) [19]


> сам тоже сейчас помучаюсь


Пора тебе полаться в *никсоиды - там как никто и нигде более уважают/ценят/холят/лелеют command-line-параноиков)


Сергей М.   (2008-02-20 23:26:00) [20]


> Максим   (20.02.08 21:11) [20]


Ты что, мазохист ?)

За каким лешим тебе понадобилось своемуплагину (т.е. некоему программному модулю, о котором никто не знает кроме твоего приложения, и который нафих не нужен другим приложениям) передавать параметры в виде текста, да еще и в извращенной форме ?)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо