LINUX.ORG.RU

[Pascal] Как нормально реализовать аргументы в паскале?

 


0

1

Приходится потихоньку изучать паскаль. Недавно начал осваивать аргументы для программ. Нагуглил, нашел что-то по функциям paramcount и paramstr. Но как я не бьюсь не могу организовать аргументы. case видимо такое нечто как '--help': не понимает, ему цифры подавай. Это значит программе, надо цифрами аргументы давать?
Подскажите, как прикрутить к ней аргументы, вроде "--help", "-h" и подобных

★★★★
Ответ на: комментарий от nexfwall

>Постараюсь конечно разобраться с классами, но если не получиться, труп страуса меня ждет.

Еще раз для прояснения: GetOptionValue - метод из класса TCustomApplication.

модуль getopts стандартный необъектный модуль, предоставляющий аналогичную функциональность (собсно он и был раньше всех).

эти две штуки не имеют между собой ничего общего по большому счету.

dikiy ★★☆☆☆
()
Ответ на: комментарий от chinarulezzz

что значит «лишняя абстракция», если ты в любом случае используешь эту абстракцию, используя ли стороннюю реализацию или свой велосипед?

korvin_ ★★★★★
()
Ответ на: комментарий от nexfwall

>Логические множители?

Не, это дорожные указатели в сторону «Апстенку» :)

Attila ★★
()
Ответ на: комментарий от chinarulezzz

>> да конечно свой мотороллер лучше

да.

ну я понимаю, у вас в Челябинске каждый программист пишет свою ОСь, под «самоспаянное» железо, но мы тут не настолько еб^wсуровы

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

>что значит «лишняя абстракция»,

это значит что если моя утилита выводит хелловорд - то она будет состоять из «хелловорд + paramstr» в случае велосипедизма, а в случае «без велосипедов» - это будет «хелловорд + модуль custapp & 100500 лишних процедур и функций, среди которых и «велосипедизм» с paramstr».

chinarulezzz ★★
()
Ответ на: комментарий от korvin_

>но мы тут не настолько еб^wсуровы

еб^Wсуровы, суровы, и намного больше.

chinarulezzz ★★
()
Ответ на: комментарий от dikiy

> Аффтар. Прислушайся в вышестоящему оратору и откопай паскаль обратно :) Он дело говорит.

FIX: и закапай Паскаль нафик. вместе с Си. юзай Limbo

korvin_ ★★★★★
()
Ответ на: комментарий от nexfwall

>Постараюсь конечно разобраться с классами, но если не получиться, труп страуса меня ждет.

Мне одному кажется, что враза содержит /0 и параграфы?

slackwarrior ★★★★★
()
Ответ на: комментарий от chinarulezzz

> это значит что если моя утилита выводит хелловорд - то она будет состоять из «хелловорд + paramstr» в случае велосипедизма, а в случае «без велосипедов» - это будет «хелловорд + модуль custapp & 100500 лишних процедур и функций, среди которых и «велосипедизм» с paramstr».

это у Вас идиотизм головного мозга, зачем 100500 лишних процедур? вас, что, при подключении модуля заставляют непременно использовать все его процедуры? воистину неисповедимы пути челябинцев

korvin_ ★★★★★
()
Ответ на: комментарий от dikiy

мне бы лучше сказали, как этим пользоваться, для начала. Этим getopts. Из справки ничего не пойму, видно мозг устал

nexfwall ★★★★
() автор топика
Ответ на: комментарий от korvin_

Если неправильно пользоваться - можно и в шнурках запутаться. Некоторые не осиливают штормовой узел - так и ходят в туфлях с липучками... Или вообще без застежек :)

slackwarrior ★★★★★
()
Ответ на: комментарий от nexfwall

>«если не получиться, труп страуса меня ждет. » (с)

Я вот эту часть не понял. Если с классами не получится - то в каком смысле ждет?

slackwarrior ★★★★★
()
Ответ на: комментарий от korvin_

>это у Вас идиотизм головного мозга

какое мастерство коммуникации... напоминает чей-то диалект с Лора)

вас, что, при подключении модуля заставляют непременно использовать все его процедуры?


При использовании класса - да. Читай внимательней)

chinarulezzz ★★
()
Ответ на: комментарий от nexfwall

>мне бы лучше сказали, как этим пользоваться, для начала. Этим getopts. Из справки ничего не пойму, видно мозг устал

omg. Я ж ссылку давал уже. Иногда бывает полезно не быть Ъ.

http://www.freepascal.org/docs-html/rtl/getopts/getopt.html

dikiy ★★☆☆☆
()
Ответ на: комментарий от slackwarrior

Если с классами не получится(а я щас изрядно устал), то меня ждет книга страуструпа и бурное изучение C++ на 2-ом курсе

nexfwall ★★★★
() автор топика
Ответ на: комментарий от nexfwall

>ту справку я и имел ввиду. Я ТАМ НИ&@# НЕ ПОНЯЛ

это не справка. Это ПРИМЕР. Там где блоки with..end - это описывание собсно опций (инициализацию эту можно более элегантно сделать прямо во время объявления, емнип).

А все что потом собсно пример использования.

dikiy ★★☆☆☆
()
Ответ на: комментарий от nexfwall

Уже шестой час пошел. Было предложено штук 5 или 6 решений. Разных решений. Были даны ссылки на описание готовых подпрограмм. Чего тебе еще надо?

И пожалуйста, скажи, зачем тебе опции командной строки?

Axel
()
Ответ на: комментарий от chinarulezzz

> При использовании класса - да. Читай внимательней)

ок, при использовании класса/объекта Вас кто-то зачтавляет пользоваться всеми методами класса/объекта?

korvin_ ★★★★★
()
Ответ на: комментарий от slackwarrior

Чтож вы за народ такой. Сначала сломали мне мозг, потом паскаль сломал мне мозг, я обиделся на паскаль, а вы начали меня на него возвращать, и теперь говорите что C++ это RTFM... o_O

nexfwall ★★★★
() автор топика
Ответ на: комментарий от korvin_

«>> Ну не понимаю я ваши классы!

правильно, они нах не нужны, только запутывают все» (с)

Ой-вэй... Вброс таки был. Включая 4.2, 5.1 и даже где-то сарказм ;)

slackwarrior ★★★★★
()
Ответ на: комментарий от Axel

Нет, нужен вечный интерактив, и долой параметры командной строки! Путь к файлу будем так спрашивать и т.д.
Некоторые решения используют то, до чего я еще даже не дошел. А для некоторого нет справки нормальной

nexfwall ★★★★
() автор топика
Ответ на: комментарий от korvin_

Я забью на все, и пойду в свой уютненький баш... мозг пропарен паскалем уже по самых отдаленных участков

nexfwall ★★★★
() автор топика
Ответ на: комментарий от nexfwall

My ass. Я спросил не зачем _вообще_ нужны параметры, а зачем они нужны в _твоей_ программе. Если ты не дошел до них.

Еще раз. Читаешь опцию в string, обрезаешь дефисы, преобразуешь в переменную перечислимого типа valом, потом используешь case. Это свой велосипед, используется только модуль system.

Как сделать красиво, dikiy сказал. Выбери уже вариант, а?

И еще раз: зачем тебе параметры командной строки?

Axel
()
Ответ на: комментарий от nexfwall

Читайте внимательнее. Я не говорил, что «С++ это RTFM». Я говорил, что, как я понял, вы уже что-то пытаетесь с классами... Без книжки Страуструпа (надеюсь, с какой-то другой книжкой про классы):) А потом, если не получится(sic!), собираетесь к Страуструпу за просветлением. Такой вот настораживающий алгоритм. Что-то мне подсказывает, что лучше бы получилось, а то мудрость ООП в изложении Страуструпа может показаться внезапно китайской грамотой.

slackwarrior ★★★★★
()
Ответ на: комментарий от chinarulezzz

> включи freepascal

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

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

А вы таки парсер сарказма отключаете, когда выгодно, или у вас детектор не работает?

slackwarrior ★★★★★
()
Ответ на: комментарий от Axel

Именно в этой программе они не нужны, но я хотел научиться в паскале работать с аргументами командной строки, чтоб все можно было задавать из командной строки.

nexfwall ★★★★
() автор топика
Ответ на: комментарий от korvin_

>зачем?

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

ты уже сам не можешь ответить на элементарный вопрос?


ой да иди ты в баню) Я думал ты серьёзно спрашивал, а сейчас вижу что лишь бы по3.14zдеть)

учитывая, что ни один язык с ООП не заставляет юзера пользоваться всеми методами какого-то класса, вопрос не глуп.


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

chinarulezzz ★★
()
Ответ на: комментарий от nexfwall

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

Axel
()
Ответ на: комментарий от Axel

У меня особые свойства разума. Вот почему в ABSG мне все было понятно?
Вообще-то, мне надо было как-то сравнивать опции командной строки. Потом мне предложили сравнивать их с помощью условий. Я спросил можно ли как-то использовать «чемодан», оказалось, для этого надо будет сделать кучу костылей. А потом мне уже предложили эти функции, я попробовал их использовать - и не получилось. Так ничего и не понял, обиделся на паскаль, и меня начали снова на него возвращать, предлагая все более изощренные велосипеды... И т.д. «А ларчик просто открывался»

nexfwall ★★★★
() автор топика
Ответ на: комментарий от nexfwall

> обиделся на паскаль

*Разводит руками* Ну, что ж я могу сделать? Кстати, самому паскалю, полагаю, плевать.

Axel
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.