В моем приложении Delphi я хотел бы добавить параметры командной строки, чтобы автоматически устанавливать некоторые параметры на экране входа в систему.Предложения по определению параметров командной строки
В настоящее время у меня есть экран входа в систему, где пользователь устанавливает некоторую информацию (например, сервер, базу данных, пользователя, пароль, AuthenticationType, AUtoLogin, ...).
Я использую MRU для заполнения полей. В любом случае, в крупных организациях есть необходимость не позволять пользователю выбирать какую-либо информацию. Для этого самое простое, что я могу сделать в своем сценарии, - использовать параметры командной строки.
Мой вопрос: как вы предлагаете выбрать параметры командной строки? Я имею в виду, я должен идти на «позиции» подхода или для некоторых «тегов» подход, например:
MyProject.exe -s:MYSERVER -d:DATABASE
или
MyProject.exe MYSERVER DATABASE
В первом случае мне нужно в цикле по всем параметрам, используя ParamStr
и «декодировать» то, что они есть. Если они начинаются с «-s:», я знаю, что следующим является имя сервера. Второй - более быстрый и грязный, но может быть более эффективным.
Как управлять параметрами, содержащими «пространство»? Можно ли автоматически перехватить их с помощью ParamStr или я должен обрабатывать все вручную? (Я имею в виду, есть ли способ автоматически сказать ParamStr, что параметр, содержащий пробел (например, используя фигурные скобки, или что-то).
Что является лучшей практикой?
Вы используете двойные кавычки, чтобы заключить параметр, содержащий пробелы. –
Я не знаю, почему я пробовал все комбинации, но не с двойными кавычками !. Благодарю. Я заметил интересную вещь. Если я пишу: «-s: имя сервера» и -s: «Имя сервера», они считаются одинаковыми из ParamStr. Это очень хорошо, потому что запись «-s: Server Name» не так удобна, как -s: «Имя сервера». – LaBracca
1-й подход более удобен и прост для вас и конечных пользователей.для «декодирования» параметров вы можете использовать 'TStringList' (разделите символы' '' в начале каждой строки) и используйте его 'Values'property с' NameValueSeparator', установленным в ':' – teran