它比使用getopt()解析C/C++中的命令行参数要容易得多.
Delphi有类似的东西吗?或者理想情况下,使用相同的语法?我知道Delphi支持FindCmdLineSwitch和ParamStr(),但那些仍然需要一些额外的解析.
我想要一些像C语言中的getopt()一样的东西.它可以轻松地允许基本的切换开关,以及在切换后捕获值.请参阅下面的一些示例C代码,看看我在说什么:
void print_help() { printf("usage:\n") ; printf("\t\t-i set input file\n") ; printf("\t\t-o set output file\n") ; printf("\t\t-c set config file\n") ; printf("\t\t-h print this help information\n") ; printf("\t\t-v print version\n") ; } char* input_file = NULL ; char *query=NULL; char opt_char=0; while ((opt_char = getopt(argc, argv, "i:q:vh")) != -1) { switch(opt_char) { case 'h': print_help(); exit(-1); break; case 'v': print_version() ; exit(-1) ; break ; case 'i': input_file= optarg ; break ; case 'q': query= optarg ; break ; default: print_help(); exit(-1); break; } }
小智.. 11
FPC RTL 的getopts.pp文件是自包含的Delphi(包含Delphi2009)兼容单元,它实现了getopt:
Free Pascal的Getopt实现,以GNU getopt为模型
该单元 可在FPC SVN存储库中找到.
FPC RTL 的getopts.pp文件是自包含的Delphi(包含Delphi2009)兼容单元,它实现了getopt:
Free Pascal的Getopt实现,以GNU getopt为模型
该单元 可在FPC SVN存储库中找到.
有一个实现TGetOpt,声称
为Delphi实现getopt变体.它几乎与POSIX兼容,支持长选项,必需,可选和无参数
你可以在这里找到它.
请参阅本EDN文章http://edn.embarcadero.com/print/40404中描述的TCommandParser,可从CodeCentral http://cc.embarcadero.com/item/27574下载.TCommandParser现在也应该包含在Delphi演示中.在我离开之前,我已经将代码免费提供给Embarcadero,所以希望它们会在框架中包含它或者在某些时候将它包含在内.