当前位置:  开发笔记 > 编程语言 > 正文

Delphi是否有"getopt"的实现?

如何解决《Delphi是否有"getopt"的实现?》经验,为你挑选了3个好方法。

它比使用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存储库中找到.



1> 小智..:

FPC RTL 的getopts.pp文件是自包含的Delphi(包含Delphi2009)兼容单元,它实现了getopt:

Free Pascal的Getopt实现,以GNU getopt为模型

该单元 可在FPC SVN存储库中找到.



2> mghie..:

有一个实现TGetOpt,声称

为Delphi实现getopt变体.它几乎与POSIX兼容,支持长选项,必需,可选和无参数

你可以在这里找到它.



3> John Kaster..:

请参阅本EDN文章http://edn.embarcadero.com/print/40404中描述的TCommandParser,可从CodeCentral http://cc.embarcadero.com/item/27574下载.TCommandParser现在也应该包含在Delphi演示中.在我离开之前,我已经将代码免费提供给Embarcadero,所以希望它们会在框架中包含它或者在某些时候将它包含在内.


对不起,我忘记了 - CommandParser实际上是*包含在IDE中提供的Delphi演示中.
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有