当前位置:文档之家› ACE命令行参数解析及配置文件读取

ACE命令行参数解析及配置文件读取

ACE命令行参数解析及配置文件读取
ACE命令行参数解析及配置文件读取

ACE命令行参数解析及配置文件读取

文章分类:C++编程

通常我们开发后台服务程序时经常要提供命令行解析和搜集配置信息的功能。重复这样的

劳动不仅耗时而且对操作系统平台也有依赖性,ACE框架提供了对命令行参数的解析及配置

文件的解析的API接口使我们可以方面的对我们的程序进行方面的配置。

解析命令行参数-ACE_Get_Opt类的用法

ARGV_Example.cpp

此示例演示了ACE_Get_Optint类的基本用法,用来解析类似 program -c -g -a param 这样的程序参数源码解释

Cpp代码

1./**

2. * ARGV_Example.cpp,v 1.3 2004/01/03 13:04:35 jwillemsen Exp

3. *

4. * ACE_ARGV examples not in a larger program. Sample code from

The ACE

5. * Programmer's Guide, Copyright 2003 Addison-Wesley. All Right

s Reserved.

6. */

7.

8.#include "ace/os_include/os_netdb.h"

9.#include "ace/OS_NS_string.h"

10.#include "ace/Log_Msg.h"

11.

12.// Listing 1 code/ch04

13.#include "ace/ARGV.h"

14.#include "ace/Get_Opt.h"

15.

16.//此示例演示了ACE_Get_Optint类的基本用法,用来解析类

似 program -c -g -a param //这样的程序参数

17. ACE_TMAIN (int argc, ACE_TCHAR *argv[])

18.{

19. //'(":f:h:")'类似一个参数解析的模版字母紧跟着一个冒号':'那

就意味着该“参数开关” //后期望一个参数

20. //"f:" 和"h:"说明参数列表必须是 -f parm1 -h parm2的形式

21. //options[] = "ab:" 则说明参数列表应该是 -a -b parm1类似的

形式

22. static const ACE_TCHAR options[] = ACE_TEXT (":f:h:");

23. //ACE_Get_Opt会根据指定的参数和模版生产我们需要的参数列

24. ACE_Get_Opt cmd_opts (argc, argv, options);

25.

26.

27.// Listing 1

28.

29. int option;

30. ACE_TCHAR config_file[MAXPATHLEN];

31. ACE_TCHAR hostname[MAXHOSTNAMELEN];

32. ACE_OS_String::strcpy (config_file, ACE_TEXT ("HAStatus.conf"

));

33. ACE_OS_String::strcpy (hostname, ACE_TEXT ("not set"));

34. //遍历参数列表并进行读取、解析

35. while ((option = cmd_opts ()) != EOF)

36. switch (option) {

37. case 'f':

38. ACE_OS_String::strncpy (config_file,

39. cmd_opts.opt_arg (),

40. MAXPATHLEN);

41. break;

42.

43. case 'h':

44. ACE_OS_String::strncpy (hostname,

45. cmd_opts.opt_arg (),

46. MAXHOSTNAMELEN);

47. break;

48. //':'放在"参数模版"的最前面,如果根据模版指示如没有找到期待

的参数

49. //重载的'='操作符会返回':'否则会返回'?'

50. case ':':

51. ACE_ERROR_RETURN

52. ((LM_ERROR, ACE_TEXT ("-%c requires an argument\n"),

53. cmd_opts.opt_opt ()), -1);

54.

55.

56. default:

57. ACE_ERROR_RETURN

58. ((LM_ERROR, ACE_TEXT ("Parse error.\n")), -1);

59. }

60.

61. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Config file: %s\n"), config_

file));

62. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Hostname: %s\n"), hostname))

;

63. return 0;

64.}

执行结果演示

//正常的参数解析

D:\project\ACE_wrappers\examples\APG\Config>ARGV_Example -f my.conf -h chengkai

Config file: my.conf

Hostname: chengkai

//确实一个必要的参数

D:\project\ACE_wrappers\examples\APG\Config>ARGV_Example -f my.conf -h -h requires an argument

//指定了一个无效的参数

D:\project\ACE_wrappers\examples\APG\Config>ARGV_Example -f my.conf -a Parse error.

Get_Opt_Long.cpp

此示例演示长参数开关的使用,你可以用'program -config my.conf' 或用

'program --config my.conf'

这样形式的用法和 'program -f my.conf'是等价的。源码解释

Cpp代码

1./**

2. * Get_Opt_Long.cpp,v 1.2 2004/01/03 13:04:35 jwillemsen Exp

3. *

4. * ACE_Get_Opt long_only examples. Sample code from The ACE

5. * Programmer's Guide, Copyright 2003 Addison-Wesley. All Right

s Reserved.

6. */

7.

8.#include "ace/OS_NS_string.h"

9.#include "ace/Get_Opt.h"

10.#include "ace/Log_Msg.h"

11.

12.//此示例演示长参数开关的使用,你可以用

'program -config my.conf'//或用'program --config my.conf'

13.//这样形式的用法和 'program -f my.conf'是等价的

14.int

15.ACE_TMAIN (int argc, ACE_TCHAR *argv[])

16.{

17.

18. static const ACE_TCHAR options[] = ACE_TEXT (":f:");

19. ACE_Get_Opt cmd_opts

20. (argc, argv, options, 1, 0, ACE_Get_Opt::PERMUTE_ARGS, 1);

21. //指定短选项开关对应的长选项开关

22. if (cmd_opts.long_option

23. (ACE_TEXT ("config"), 'f', ACE_Get_Opt::ARG_REQUIRED) ==

-1)

24. return -1;

25.

26. int option;

27. ACE_TCHAR config_file[MAXPATHLEN];

28. ACE_OS_String::strcpy (config_file, ACE_TEXT ("HAStatus.conf"

));

29. while ((option = cmd_opts ()) != EOF)

30. switch (option) {

31. case 'f':

32. ACE_OS_String::strncpy (config_file,

33. cmd_opts.opt_arg (),

34. MAXPATHLEN);

35. break;

36.

37. case ':':

38. ACE_ERROR_RETURN

39. ((LM_ERROR, ACE_TEXT ("-%c requires an argument\n"),

40. cmd_opts.opt_opt ()), -1);

41.

42.

43. default:

44. ACE_ERROR_RETURN

45. ((LM_ERROR, ACE_TEXT ("Parse error.\n")), -1);

46. }

47.

48. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Config file is %s\n"), confi

g_file));

49.

50. return 0;

执行结果演示

D:\project\ACE_wrappers\examples\APG\Config>Get_Opt_Long -f my.conf Config file is my.conf

D:\project\ACE_wrappers\examples\APG\Config>Get_Opt_Long -config my.conf

Config file is my.conf

D:\project\ACE_wrappers\examples\APG\Config>Get_Opt_Long --config my.conf

Config file is my.conf

Get_Opt.cpp

此示例展示了在使用长选项并且没有指定与之对应的短选项的时候,

ACE_Get_Opt可以通过指定一个整数返回值与长选项匹配

Cpp代码

1./**

2. * Get_Opt.cpp,v 1.2 2004/01/03 13:04:35 jwillemsen Exp

3. *

4. * ACE_Get_Opt examples not in a larger program. Sample code fr

om The ACE

5. * Programmer's Guide, Copyright 2003 Addison-Wesley. All Right

s Reserved.

6. */

7.

8.#include "ace/OS_NS_string.h"

9.#include "ace/Get_Opt.h"

10.#include "ace/Log_Msg.h"

11.

12.//此示例展示了在使用长选项并且没有指定与之对应的短选项的时候,可

以通过指定一个// 整数返回值与长选项匹配

13.int

14.ACE_TMAIN (int argc, ACE_TCHAR *argv[])

16.

17. // Example for a long option without a corresponding short op

tion.

18. // Just put some context here so the following compiles and r

uns.

19. static const ACE_TCHAR options[] = ACE_TEXT (":f:");

20. ACE_Get_Opt cmd_opts (argc, argv, options);

21.

22. // 指定长选项--cool_option 并且其缺省返回值0

23. cmd_opts.long_option (ACE_TEXT ("cool_option"));

24. cmd_opts.long_option (ACE_TEXT ("the_answer"), 42);

25. // Listing 1

26.

27. int option;

28. ACE_TCHAR config_file[MAXPATHLEN];

29. ACE_OS_String::strcpy (config_file, ACE_TEXT ("HAStatus.conf"

));

30. while ((option = cmd_opts ()) != EOF)

31. switch (option) {

32. case 'f':

33. ACE_OS_String::strncpy (config_file,

34. cmd_opts.opt_arg (),

35. MAXPATHLEN);

36. break;

37.

38. // Listing 2 code/ch04

39. case 0:

40. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Yes, very cool.\n")));

41. break;

42.

43. case 42:

44. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("the_answer is 42\n")));

45. break;

46. // Listing 2

47.

48. case ':':

49. ACE_ERROR_RETURN

50. ((LM_ERROR, ACE_TEXT ("-%c requires an argument\n"),

51. cmd_opts.opt_opt ()), -1);

52.

53.

54. default:

55. ACE_ERROR_RETURN

56. ((LM_ERROR, ACE_TEXT ("Parse error.\n")), -1);

57. }

58.

59. return 0;

60.}

执行结果演示

Get_Opt --cool_option --the_answer

Yes, very cool.

the_answer is 42

读写配置文件-ACE_Configuration_Heap类的用法

HA_Status.cpp

此示例演示了ACE对配置文件的读取的功能,ACE可以方便的从配置文件读取字符串类型、整数类型、二进制信息/**

Cpp代码

1. * HA_Status.cpp,v 1.4 2005/06/29 16:35:46 shuston Exp

2. *

3. * Home Automation Status server. Sample code from The ACE Prog

rammer's Guide,

4. * Copyright 2003 Addison-Wesley. All Rights Reserved.

5. */

6.

7.#include "ace/OS_NS_string.h"

8.#include "ace/Configuration.h"

9.#include "ace/Configuration_Import_Export.h"

10.#include "ace/Get_Opt.h"

11.#include "ace/Log_Msg.h"

12.#include "ace/INET_Addr.h"

13.#include "ace/Service_Object.h"

14.

15.class HA_Status : public ACE_Service_Object

16.{

17.public:

18. virtual int init (int argc, ACE_TCHAR *argv[]);

19.

20.private:

21. ACE_INET_Addr listen_addr_;

22.};

23.

24.

25.int

26.HA_Status::init (int argc, ACE_TCHAR *argv[])

27.{

28.

29. // Do ACE_Get_Opt and get conf file name, read out the sectio

ns

30. // and print the names.

31.

32. // Listing 1 code/ch04

33. static const ACE_TCHAR options[] = ACE_TEXT (":f:");

34. ACE_Get_Opt cmd_opts (argc, argv, options);

35. if (cmd_opts.long_option

36. (ACE_TEXT ("config"), 'f', ACE_Get_Opt::ARG_REQUIRED) ==

-1)

37. return -1;

38. int option;

39. ACE_TCHAR config_file[MAXPATHLEN];

40. ACE_OS::strcpy (config_file, ACE_TEXT ("HAStatus.conf"));

41. while ((option = cmd_opts ()) != EOF)

42. switch (option) {

43. case 'f':

44. ACE_OS::strncpy (config_file,

45. cmd_opts.opt_arg (),

46. MAXPATHLEN);

47. break;

48. case ':':

49. ACE_ERROR_RETURN

50. ((LM_ERROR, ACE_TEXT ("-%c requires an argument\n"),

51. cmd_opts.opt_opt ()), -1);

52. default:

53. ACE_ERROR_RETURN

54. ((LM_ERROR, ACE_TEXT ("Parse error.\n")), -1);

55. }

56. // Listing 1

57.

58. // Listing 2 code/ch04

59. ACE_Configuration_Heap config;

60. if (config.open () == -1)

61. ACE_ERROR_RETURN

62. ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("config")), -1);

63. ACE_Registry_ImpExp config_importer (config);

64. if (config_importer.import_config (config_file) == -1)

65. ACE_ERROR_RETURN

66. ((LM_ERROR, ACE_TEXT ("%p\n"), config_file), -1);

67.

68. ACE_Configuration_Section_Key status_section;

69. //指定打开HAStatus 节进行读取

70. if (config.open_section (config.root_section (),

71. ACE_TEXT ("HAStatus"),

72. 0,

73. status_section) == -1)

74. ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"),

75. ACE_TEXT ("Can't open HAStatus section")

),

76. -1);

77.

78. //分别用来保存读取的字符串类型的地址和整形的端口号

79. u_int status_port;

80. ACE_TString server_ip ;

81. //读取取字符串类型的地址属性

82. if(config.get_string_value(status_section,ACE_TEXT ("ServerIP

"), server_ip ) ==-1)

83. ACE_ERROR_RETURN

84. ((LM_ERROR,

85. ACE_TEXT ("HAStatus ServerIP does not exist\n")),

86. -1);

87. //读取整形的端口属性

88. if (config.get_integer_value (status_section,

89. ACE_TEXT ("ListenPort"),

90. status_port) == -1)

91. ACE_ERROR_RETURN

92. ((LM_ERROR,

93. ACE_TEXT ("HAStatus ListenPort does not exist\n")),

94. -1);

95. //this->listen_addr_.set (static_cast (status_port))

;

96. // Listing 2

97. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ServerIP = %s\n"),

server_ip.c_str()));

98. ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ListenPort = %d"),status_por

t));

99.

100.

101. return 0;

102.}

103.

104.int

105.ACE_TMAIN (int argc, ACE_TCHAR *argv[])

106.{

107. HA_Status status;

108. status.init (argc, argv);

109. return 0;

110.}

配置文件内容格式

[名称]用来定义一个节。

可以用'#' 或';'来作为注释

“attribute”=“value”表示一个字符串类型的属性。

attribute=#value 或表示一个整数类型的属性值。

“attribute”=dword:value 表示一个64位的双字(十六进制)

“attribute”=he x:value 以十六进制串表示二进制序列

ACE对配置文件的解析和我们通常用的对配置文件读写的类库不太一样1),感觉ACE对配置文件的

读取对格式要求比较严格和我们普通使用的配置文件格式兼容性稍差一些。

有以下几点点需要我们注意。

如果你用来表示一个字符串类型的属性值,你应该用'”'包括你的属性值和属性名称,

否则ACE将不能正常解析

如果你使用类似”dword:“、”hex:“等前缀表示数字类型的属性值,

你需要把属性名称用'”'包括起来 ,属性值能用'”'包括起来

表示整数类型的属性时,属性名称和属性值都不要'”'包括起来

测试程序

配置文件内容

#这用来表示一个"节"

[HAStatus]

;字符串类型的属性值

"ServerIP"="127.0.0.1"

;整数类型的属性值

ListenPort=#8080

执行结果

D:\project\ACE_wrappers\examples\APG\Config>HA_Status.exe

ServerIP = 127.0.0.1

ListenPort = 8080

1) 象 attribute=value 这样的定义ACE将不能正常解析,这也是我在读了ACE 的实现代码后才得知的,

一开始还以为这是一个BUG

关于Pro_nc配置文件选项

关于配置文件选项 为配置文件输入所需的设置,可以预设环境选项和其它全局设置。要设置配置文件选项,请使用“选项”(Options)对话框(“工具”(Tools)>“选项”(Options))。 本帮助模块含有一个Pro/NC 专用的配置选项列表,对于每一选项或相关选项组均按字母顺序排列显示该列表: ?配置选项名称。 ?相关变量或值。选项的缺省值以斜体显示。 ?简单说明。 设置Pro/NC 配置选项 1.单击“工具”(Tools)>“选项”(Options)。“选项”(Options)对话框打开。 2.单击“仅显示从文件载入的选项”(Show only options loaded from file) 复选 框,查看当前已载入的配置选项,或清除此复选框以查看所有的配置选项。 3.从列表中选取配置选项,或在“选项”(Option) 框中键入配置选项名称。 4.在“值”(Value) 框中键入或选取一个值。 注意:缺省值后面标有星号(*)。 5.单击“添加/改变”(Add/Change)。在列表中会出现配置选项及该选项的值。绿色的状态图标用于对所做的改变进行确认。 6.配置完Pro/NC 后,单击“应用”(Apply)或“确定”(OK)。 注意:建议在开始新的Pro/NC 工程前设置Pro/NC 配置选项。 allow_multiple_tool_tips no, yes 如果设置为yes,则允许用户通过指定每个刀尖的偏距记录和距离设置具有多个刀尖的铣削和孔加工刀具。 注意:此选项仅在特定模型中打开用于设置多刀尖刀具的功能,在这些模型中不存在未使用该选项所定义的任何现有刀具。 allow_workpiece_silhouette no,yes,auto 指定在创建“侧面影像铣削”(Silhouette Mill) 窗口时所用的模型: ?no - 系统使用参照零件的侧面影像创建该窗口。如果制造组件中有多个参照零件,则必须选取要用于创建侧面影像窗口的零件。不能选取工件。

Locust命令行参数详解

Locust命令行参数详解 -h, --help 查看帮助 -H HOST, --host=HOST 被测试的主机地址,格式:http://10.21.32.33 --web-host=WEB_HOST Locust Web 页面的主机地址,默认为本机 -P PORT, --port=PORT, --web-port=PORT 被测试主机端口,默认8089 -f LOCUSTFILE, --locustfile=LOCUSTFILE 指定运行Locust 性能测试文件,默认为: locustfile.py --csv=CSVFILEBASE, --csv-base-name=CSVFILEBASE 以CSV格式存储当前请求测试数据 --master 分布式模式使用,指定当前节点为master 节点 --slave 分布式模式使用,指定当前节点为slave节点 --master-host=MASTER_HOST 分布式模式运行,设置master节点的主机或IP地址,只在与slave节点一起运行时使用,默认为:127.0.0.1 --master-port=MASTER_PORT 分布式模式运行,设置master节点的端口号,只在与slave节点一起运行时使用,默认为:5557。注意,slave节点也将连接到这个端口上的master节点 --master-bind-host=MASTER_BIND_HOST 绑定Locust的主机名,只有使用master参数时可用,默认为* --master-bind-port=MASTER_BIND_PORT 绑定Locust的端口,只有使用master参数时可用,默认为5557。注意Locust将使用这个端口,所以默认情况master节点将绑定到5557和5558

qaac 2.15命令行参数

qaac 2.15 Usage: qaac [options] infiles.... "-" as infile means stdin. On ADTS/WAV output mode, "-" as outfile means stdout. Main options: --formats Show available AAC formats and exit -a, --abr AAC ABR mode / bitrate -V, --tvbr AAC True VBR mode / quality [0-127] -v, --cvbr AAC Constrained VBR mode / bitrate -c, --cbr AAC CBR mode / bitrate For -a, -v, -c, "0" as bitrate means "highest". Highest bitrate available is automatically chosen. For LC, default is -V90 For HE, default is -v0 --he HE AAC mode (TVBR is not available) -q, --quality AAC encoding Quality [0-2] --adts ADTS output (AAC only) -A, --alac ALAC encoding mode -d Output directory. Default is current working dir. --check Show library versions and exit. -D, --decode Wave output mode. -r, --rate keep: output sampling rate will be same as input if possible. auto: output sampling rate will be automatically chosen by encoder. n: desired output sampling rate in Hz. --lowpass Specify lowpass filter cut-off frequency in Hz. Use this when you want lower cut-off than Apple default. -b, --bits-per-sample Bits per sample of output (for WAV/ALAC only) --no-dither Turn off dither when quantizing to lower bit depth. --gain Adjust gain by f dB. Use negative value to decrese gain, when you want to avoid clipping introduced by DSP. -N, --normalize Normalize (works in two pass. generates HUGE tempfile for large input) --delay <[[hh:]mm:]ss[.ss..]|ns> Specify delay either by time or number of samples. When positive value is given, prepend silence at the begining to achieve delay of specified amount.

Java读取txt文件中指定行内容

获取文本内容与读取文本指定行数内容浅析(java) 在此项目中直接套用以前工程中获取文本内容的方法发现一直提示“数组下标越界”,通过分析和查找得出以下心得: 获取文本内容: private static final String CHART_PATH ="D://data3"; public static void main(String[] args) throws RowsExceededException,WriteException, BiffException{ try { readFileByLines(CHART_PATH+".txt"); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } } public static void readFileByLines(String fileName) throws IOException,RowsExceededException,WriteException{ //打开文件 WritableWorkbook book = Workbook.createWorkbook( new File(CHART_PATH+".xls")); WritableSheet sheet = book.createSheet("看我", 0); //读取txt文件内容 File file = new File(fileName); FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis,"GBK"); BufferedReader reader = null; try { reader = new BufferedReader(isr); String temString = null; //一次读入一行,以null结束 int i = 0; while((temString = reader.readLine())!= null){ System.out.println("+++++++"+temString); String[] str = temString.split(","); for(int j= 0;j

proe如何设置配置文件

PROE的配置文件让不少初学者感到烦恼,尽管不少教材里都会提到关于PROE的配置文件。但大多数显得过于理论化,而不便于初学者理解,可操作性不强。本文力求以通俗的语言结合实际运用向大家介绍PROE的配置文件,希望能给各位带来帮助。 配置文件是PROE的一大特色,却也常常把初学者弄得一头雾水、云里雾里。掌握各种配置文件的使用是很有好处的,可以提高工作效率、减少不必要的麻烦,也有利于标准化、团队合作等等。同时也是从初学者到进阶提高的必经之路。所以,还是要静下心来,好好看一看。当然,我所说的掌握不是让你死记硬背,也不是让你记熟哪个选项起什么作用,哪个配置文件怎么做。我们所要做的只是对各种配置文件的作用和基本使用方法要有所了解,然后根据自己的需求来做配置。 下面以proe wildfire3.0m120中文版为蓝本,(其实对于大多数版本都适用) 依次为大家介绍以下内容: 一、配置文件是什么东西? 二、系统配置文件config.pro (一)config.pro文件在哪里? (二)config.pro文件怎样才起作用? (三)config.pro文件怎么编辑,怎么加选项? (四)关于config.pro中的快捷键 (五)为什么有些选项设了还是不起作用? (六)怎么查找config.pro的选项? (七)别人说的选项我的怎么没有? (八)配置文件的加载顺序 (九)为什么我的PROE 总是和别人不一样?总是莫名其妙的退出? (十)怎么用别人的config.pro文件?

(十一)config.pro常用的一些选项 一、配置文件是什么东西? 首先,要建立一个概念,PROE里的所有设置,都是通过配置文件来完成的。打个比方,在AU TO CAD里,新安装完软件后,我们就会把自己常用的一些工具条调出来,在窗口摆放好位置,设好十字光标大小,右键设置等等直到把整个AUTO CAD调成自己想要的样子,然后退出程序。再次运行AUTO CAD时,我们会发现之前设置都还有效。 用同样的方法,在PROE里就不灵了!听说在选项里可以设置中英文双语菜单……听说还可以设单位……听说还要设公差……听说还可以改颜色……。好的,费了大半天劲都一一改好了,这下放心了,关掉PROE。再一次打开PROE时,一看,傻眼了,之前明明设好的怎么又没了呢!你可能会觉得——这什么鬼烂软件,人家其他软件都是这样设,它就不行!告诉你,这就是PROE的配置文件在作怪!你没有保存这些配置文件,也没有放到适当的位置!这下你应该知道,这些配置文件是用来干嘛的了。 那么配置文件(有些书也叫映射文件)又包括哪些呢?下面介绍常用的几个 config.pro——系统配置文件,配置整个PROE系统 gb.dtl——工程图配置文件,你可以先简单的理解为设置箭头大小,文字等标注样式。 format.dtl——工程图格式文件(可以简单的理解为图框)的配置文件。 table.pnt——打印配置文件,主要设置工程图打印时的线条粗细、颜色等。 A4.pcf——打印机类型配置文件,主要设置工程图打印出图时的比例、纸张大小等。 config.win.1——(1为流水号,每改一次自动增加)操作界面、窗口配置文件,比如说我们可以在这个文件中设置模型树窗口的大小,各种图标、工具栏、快捷键在窗口的位置等等。 Tree.cfg——模型树配置文件,主要设置在模型树窗口显示的内容、项目。

fastcopy命令行参数解释

fastcopy命令行参数解释 2011-06-17 16:05 fastcopy是一款复制删除文件的工具,为什么要用它,因为他比系统的复制删除要快,特别是文件超多,超大的情况下. FASTCOPY可以在WINDOWS下使用,也可以在DOS下运行命令 下面是FASTCOPY命令行方式: fastcopy.exe [/参数] file1 file2 ... [/to=dest_dir] 基本参数: /cmd=(noexist_only|diff|update|sync|force_copy|move|delete) noexist_only 复制-如重名,则不复制 diff 复制-如重名,则公复制大小与时间不同的文件 update 复制-如重名,则复制较新的源文件 sync 同步-如重名,则复制大小与时间不同的文件 force_copy 复制-覆盖重名文件 move 移动-覆盖重名文件并强行删除源文件 delete 删除-强行删除指定的文件与目录 /auto_close 拷贝结束后,自动关闭 /force_close 如果拷贝结束后,发生错误,也强行关闭 /open_window 显示Fastcopy窗口界面 /estimate 预测拷贝完成时间 /no_exec 对Fastcopy窗口界面设置参数,但是不执行 /no_confirm_del 当用/delete参数时,不显示确认界面 /error_stop 发生错误时中止动作(在/error_stop=FALSE抑制)

/bufsize=N(MB) 用MB单位来指定缓冲器大小 /speed=(full|autoslow|9-1(90%-10%)|suspend) 速度限制 /log 输出记录文件(fastcopy.log) (在/log=FALSE抑制) /skip_empty_dir 启用过滤,不拷贝空文件夹(在/skip_empty_dir=FALSE抑制) /job=任务名称执行指定的任务 /force_start 在其他的FastCopy拷贝,并且正执行的时候,执行立即也(在/force_start=FALSE抑制) /disk_mode=(auto|same|diff) 指定自动/恒等性/其他HDD方式。(债务不履行声明:) auto) /include="..." 指定Include过滤器 /exclude="..." 指定Exclude过滤器 /overwrite_del 在删除文件之前,删掉方式时,重新取名给重复&,使复原无效(在/overwrite_del=FALSE抑制) /acl 拷贝存取支配清单(ACL)(只NTFS有效)(在/acl=FALSE抑制) /stream 拷贝副其次线流(只NTFS有效)(在/stream=FALSE抑制) /junction 复制junction·mount point(不是属下)junction·mount point自己(/junction=FALSE 拷贝属下) /symlink 用象征性连接(而不是本质)拷贝象征性连接其本身(在/symlink=FALSE 拷贝本质) [/to=dest_dir] 目标磁盘 fastcopy.exe [/options] file1 file2 ... [/to=dest_dir] Please use space character(' ') as separator(not semicolon). If filename contains space character, please enclose with dobule quotation marks. Ex) fastopy.exe C:\Windows "C:\Program Files" /to="D:\Backup Folder\" 使用"做为分隔符 c:\Progra~1\FastCopy\FastCopy.exe /cmd=sync /auto_close /open_window "\\ztsv-xs\e\网络游戏\永恒之塔" /to="e:\games\online\"

java读取上传excel文件和txt文件中的数据

Java 读取上传文件里的数据,记事本文件和excel文件 本文,文本文件里的数据,每列以 Tab 分隔。 其它分隔符情况下,只需修改对分隔符的判断即可 本文是将文本文件或excel文件里的数据读到List 里。 List , List, ........可以改为返回其它类型的数据集 UpLoadExcel 类里需要操作excel的 jar包 import org.apache.poi.* ; 网上可以搜索下载,简单快捷 ---------------------------------------------------------------------------- - - - public class upLoadAction extends DispatchAction { public ActionForward doAdd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { TestForm myForm = (TestForm) form; FormFile f = myForm.getUpfisle(); //get上传文件 String fileName = f.getFileName(); // 截取文件名的后三位字符 String fileType = fileName.substring(fileName.length()-3,fileName.length()); System.out.println("导入的文件名:"+fileName+"\t 文件后缀名:"+fileType); List list = new ArrayList(); if("xls".equals(fileType)){ // 上传文件是excel时文件文件后缀名为xls list = new UpLoadExcel().getExcelData(f.getInputStream()); }else if("txt".equals(fileType)){ list = new UploadText().UploadText(f.getInputStream()); } // 操作读取出来的数据,例如: if (list.size() > 0) { String[] str = null; for(int i = 0; i < list.size(); i++) { str = list.get(i); st = "insert into student (sName,sAge,sAddress,sTelephone) values(" ; st = "'" + st + str[0] + "'"; st = ",'" + st + str[1] + "'"; st = ",'" + st + str[4] + "'"; st = ",'" + st + str[6] + "'"; st = st + ")"; ...... System.out.println(st);

proe工程图配置文件

proe工程图配置文件 工程图配置文件*.dtl常用选项及使用详解 工程图配置文件是出工程图所必需了解掌握的知识。不可否认的是,论坛工程图版的求助帖超过一半与工程图配置文件设置有关。可见工程图配置文件的重要性。工程图配置文件*.dtl使用上比系统配置文件config.pro要简单一些。 所以先将一些常用选项列出,供大家参考。配置文件使用方面的内容放在后面讲解。 先讲述的内容目录如下: 一、工程图配置文件常用选项及说明 二、工程图配置文件使用详解 1、创建工程图配置文件*.dtl 2、工程图配置文件选项的查找 3、工程图配置文件的选项设置与修改 4、工程图配置文件的正确调用 一、工程图配置文件常用选项及说明 drawing_units mm(前面为选项,空格后为值,下同) 此项设置所有绘图参数的单位,比如后面的文字大小、箭头大小等选项,是以mm为单位的,先要设置这个选项。 drawing_text_height 3.5 设置缺省文本的缺省高度,如注释中的文字,标注中的数值大小。 text_width_factor 0.7 设置文本的高度和宽度的比例,按国标应使用长仿宋体,应为0.7。 但此项设置对于windows系统自带的仿宋体无效。 broken_view_offset 3 设置破断视图两破断线之间的距离 detail_circle_line_style phantomfont 设置详细视图(局部放大图)的边界线的线型,影响打印的粗细 projection_type first_angle 设置视图的投影方向为第一角法(国标要求用第一角法,日本等国用第三角法) view_scale_denominator 3600 view_scale_format ratio_colon 上面两项互相影响一起设置,设置比例的显示方式以小数、比值、或分数方式。

source insight解析命令行

安装完SI后,会在安装一个如下的文件 我的文档\Source Insight\c.tom c.tom的功能与C语言中的#define类似。打开这个文件,会看到有很多空格分割的字符串,SI在我们阅读代码时,自自动将空格前的字符串替换为空格后的字符串(仅仅是影响阅读,不影响编译喔)。 举两个例子。 #define AP_DECLARE(type) type AP_DECLARE(int) ap_calc_scoreboard_size(void) { .... } source insight 把AP_DECLARE当作了函数,当想查ap_calc_scoreboard_size的时候总是很麻烦,不能直接跳转. 我的文档\Source Insight\c.tom 加入 AP_DECLARE(type) type 如下的代码如何让SI 识别出f是一个函数? #define EXPORT_CALL(return,functionname) return functionname EXPORT_CALL (int, f1()) 我的文档\Source Insight\c.tom 加入 EXPORT_CALL(return,functionname) return functionname 同时,在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。(c.tom的功能与支持##,不支持#好像) 这个技巧我在阅读zebra的命令行代码时也用到了。 比如下吗一段代码:(DEFUN是一个宏定义,这个文件中有很多这样的DEFUN。不修改c.tom 之前看到的是这样的)

java文件读写代码

1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in = null; try { System.out.println("以字节为单位读取文件内容,一次读一个字节:"); // 一次读一个字节 in = new FileInputStream(file); int tempbyte; while ((tempbyte = in.read()) != -1) { System.out.write(tempbyte); } in.close(); } catch (IOException e) { e.printStackTrace(); return; } try { System.out.println("以字节为单位读取文件内容,一次读多个字节:"); // 一次读多个字节 byte[] tempbytes = new byte[100]; int byteread = 0; in = new FileInputStream(fileName); ReadFromFile.showAvailableBytes(in); // 读入多个字节到字节数组中,byteread为一次读入的字节数 while ((byteread = in.read(tempbytes)) != -1) { System.out.write(tempbytes, 0, byteread); }

工程图配置文件.dtl常用选项及使用详解.doc

工程图配置文件*.dtl常用选项及使用详解 工程图配置文件是出工程图所必需了解掌握的知识。我写过一篇关于系统配置文件config.pro的教程,里面提到过配置文件对于使用PROE非常重要。 config.pro的使用,请先看这个帖https://www.doczj.com/doc/cd6184850.html,/thread-9138-1-1.html 不可否认的是,论坛工程图版的求助帖超过一半与工程图配置文件设置有关。可见工程图配置文件的重要性。工程图配置文件*.dtl使用上比系统配置文件config.pro要简单一些。所以本帖先将一些常用选项列出,供大家参考。配置文件使用方面的内容放在后面讲解。 本帖为原创,严禁转载! 请勿综合成PDF或WORD等格式打包下载,谢谢合作! 本帖不设回复可见,方便大家都可以见到 本帖所讲述的内容目录如下: 一、工程图配置文件常用选项及说明 二、工程图配置文件使用详解 1、创建工程图配置文件*.dtl 2、工程图配置文件选项的查找 3、工程图配置文件的选项设置与修改 4、工程图配置文件的正确调用 一、工程图配置文件常用选项及说明 drawing_units mm(前面为选项,空格后为值,下同) 此项设置所有绘图参数的单位,比如后面的文字大小、箭头大小等选项,是以mm为单位的, 先要设置这个选项。 drawing_text_height 3.5 设置缺省文本的缺省高度,如注释中的文字,标注中的数值大小。 text_width_factor 0.7 设置文本的高度和宽度的比例,按国标应使用长仿宋体,应为0.7。 但此项设置对于windows系统自带的仿宋体无效。 broken_view_offset 3 设置破断视图两破断线之间的距离

防火墙配置中必备的六个主要命令解析

防火墙配置中必备的六个主要命令解析 防火墙的基本功能,是通过六个命令来完成的。一般情况下,除非有特殊的安全需求,这个六个命令基本上可以搞定防火墙的配置。下面笔者就结合CISCO的防火墙,来谈谈防火墙的基本配置,希望能够给大家一点参考。 第一个命令:interface Interface是防火墙配置中最基本的命令之一,他主要的功能就是开启关闭接口、配置接口的速度、对接口进行命名等等。在买来防火墙的时候,防火墙的各个端都都是关闭的,所以,防火墙买来后,若不进行任何的配置,防止在企业的网络上,则防火墙根本无法工作,而且,还会导致企业网络不同。 1、配置接口速度 在防火墙中,配置接口速度的方法有两种,一种是手工配置,另外一种是自动配置。手工配置就是需要用户手工的指定防火墙接口的通信速度;而自动配置的话,则是指防火墙接口会自动根据所连接的设备,来决定所需要的通信速度。 如:interface ethernet0 auto --为接口配置“自动设置连接速度” Interface ethernet2 100ful --为接口2手工指定连接速度,100MBIT/S。 这里,参数ethernet0或者etnernet2则表示防火墙的接口,而后面的参数表示具体的速度。 笔者建议 在配置接口速度的时候,要注意两个问题。 一是若采用手工指定接口速度的话,则指定的速度必须跟他所连接的设备的速度相同,否则的话,会出现一些意外的错误。如在防火墙上,若连接了一个交换机的话,则交换机的端口速度必须跟防火墙这里设置的速度相匹配。 二是虽然防火墙提供了自动设置接口速度的功能,不过,在实际工作中,作者还是不建议大家采用这个功能。因为这个自动配置接口速度,会影响防火墙的性能。而且,其有时候也会判断失误,给网络造成通信故障。所以,在一般情况下,无论是笔者,还是思科的官方资料,都建议大家采用手工配置接口速度。 2、关闭与开启接口 防火墙上有多个接口,为了安全起见,打开的接口不用的话,则需要及时的进行关闭。一般可用shutdown命令来关闭防火墙的接口。但是这里跟思科的IOS 软件有一个不同,就是如果要打开这个接口的话,则不用采用no shutdown命令。在防火墙的配置命令中,没有这一条。而应该采用不带参数的shutdown命令,来把一个接口设置为管理模式。

gcc命令行详解

gcc命令行详解 1、gcc包含的c/c++编译器 gcc、cc、c++、g++ gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译 2、gcc的基本用法 gcc test.c这样将编译出一个名为a.out的程序 gcc test.c -o test这样将编译出一个名为test的程序 -o参数用来指定生成程序的名字 3、为什么会出现undefined reference to 'xxxxx'错误? 首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本身没有问题,是你用编译器编译时参数用得不对,你没有指定链接程序要用到得库,比如你的程序里用到了一些数学函数,那么你就要在编译参数里指定程序要链接数学库,方法是在编译命令行里加入-lm 4、-l参数和-L参数 -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?-lname,在连接时,装载名字为“libname.a”的函数库:-lm表示连接名为“libm.a”的数学函数库。就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了 好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件) 放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了,但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,出错信息大概是:“/usr/bin/ld: cannot find -lxxx”,也就是链接程序ld在那3个目录里找不到libxxx.so,这时另外一个参数-L就派上用场了,比如常用的X11的库,它在/usr/X11R6/lib目录下,我们编译时就要用-L/usr/X11R6/lib -lX11参数,-L参数跟着的是库文件所在的目录名。再比如我们把libtest.so放在/aaa/bbb/ccc目录下,那链接参数就是 -L/aaa/bbb/ccc -ltest 另外,大部分libxxxx.so只是一个链接,以RH9为例,比如libm.so它链接到/lib/libm.s o.x,/lib/libm.so.6又链接到/lib/libm-2.3.2.so, 如果没有这样的链接,还是会出错,因为ld只会找libxxxx.so,所以如果你要用到xxxx 库,而只有libxxxx.so.x或者libxxxx-x.x.x.so,做一个链接就可以了 ln -s libxxxx-x.x.x.so libxxxx.so 手工来写链接参数总是很麻烦的,还好很多库开发包提供了生成链接参数的程序,名字一般叫xxxx-config,一般放在/usr/bin目录下,比如 gtk1.2的链接参数生成程序是gtk-config,执行gtk-config --libs就能得到以下输出"- L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic

c语言中命令行参数argc,argv

main( int argc, char ** argv ) argv:指针的指针 argc:整数 char **argv or char *argv[] or char argv[][] 为了能形象的说明这两个参数的含义,我们先用一个实例来进行讲解: 假设程序的名称为test,当只输入test,则由操作系统传来的参数为: argc = 1,表示只有一程序名称; argc只有一个元素,argv[0]指向输入的程序路径及名称:./ test 当输入test para_1,有一个参数,则由操作系统传来的参数为: argc = 2,表示除了程序名外还有一个参数; argv[0]指向输入的程序路径及名称; argv[1]指向参数para_1字符串 当输入test para_1 para_2 有2个参数,则由操作系统传来的参数为: argc = 3,表示除了程序名外还有两个参数; argv[0]指向输入的程序路径及名称; argv[1]指向参数para_1字符串; argv[2]指向参数para_2字符串; 以此类推……………… void main( int argc, char *argv[] ) char *argv[]: argv是一个指针数组,元素个数是argc,存放的是指向每一个参数

的指针,第一个元素即argv[0]为程序运行的全路径名,从二个元素(argv[1])开始,是每一个参数的名称,最后一个元素为NULL。总的来说,即: * argv: 字符串数组 argv[0] 为程序运行的全路径名 argv[1] 为执行程序名后的第一个字符串; argv[2] 为执行程序名后的第二个字符串; ... argv[argc]为NULL。 int argc:表示argv的大小,是实际参数个数+1,其中+1是因为argv[0]是编译后的可执行文件名 main() 参数: Turbo C2.0启动时总是把argc、argv、env(存放环境变量)这三个参数传递给main()函数, 可以在用户程序中说明(或不说明)它们, 如果说明了部分(或全部)参数, 它们就成为main()子程序的局部变量。 请注意: 一旦想说明这些参数, 则必须按argc, argv, env 的顺序, 如以下的例子: main() main(int argc) main(int argc, char *argv[]) main(int argc, char *argv[], char *env[]) 其中第二种情况是合法的, 但不常见, 因为在程序中很少有只用argc, 而不 用argv[]的情况。 以下提供一样例程序EXAMPLE.EXE, 演示如何在main()函数中使用三个参数: /*program name EXAMPLE.EXE*/ #i nclude

Java流(文件读写操作)

Java流 一、流的分类 ?按数据流动方向 –输入流:只能从中读取字节数据,而不能向其写出数据 –输出流:只能向其写入字节数据,而不能从中读取数据?按照流所处理的数据类型 –字节流:用于处理字节数据。 –字符流:用于处理Unicode字符数据。 ?按照流所处理的源 –节点流:从/向一个特定的IO设备读/写数据的流。(低级流)–处理流:对已存在的流进行连接和封装的流。(高级流)二、缓冲流 ?缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。 ?J2SDK提供了四种缓存流: –BufferedReader –BufferedWriter –BufferedInputStream s –BufferedOutputStream

?缓冲输入流支持其父类的mark()和reset()方法: –mark()用于“标记”当前位置,就像加入了一个书签,可以使用reset()方法返回这个标记重新读取数据。?BufferedReader提供了readLine()方法用于读取一行字符串(以\r 或\n分隔)。 ?BufferedWriter提供了newLine()用于写入一个行分隔符。 ?对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush()方法将会使内存中的数据立刻写出。 三、类层次 3.1、InputStream类层次

3.2、OutputStream类层次 3.3、Reader类层次

3.4、Writer类层次 四、常用的字符流与字节流的转化 说明: 1.字节流用于读写诸如图像数据之类的原始字节流。 2.字符流用于读写诸如文件数据之类的字符流。 3.低级流能和外设交流。 4.高级流能提高效率。 5.InputStreamReader 是字节流通向字符流的桥梁。 6.OutputStreamWriter 是字符流通向字节流的桥梁。

proe选项配置文件

pro/e选项配置文件 allow_anatomic_features yes 设置建立扭曲里所有的加载菜单. bell 设置每次是否提示键盘铃 def-layer layer-axisAXES 轴图层为不同的类型项目指定预设的图层 名称. layer-csysCSYS 坐标layer-curveCURVES曲线 layer-pointPOINTS点 menu-translation both为中英文指定非英文版Pro/e时,选择显示的 版本. dialog_translation yes 中文 no英文执行非英文版Pro/e时,指定对 话块的显示语言. help_translation yes本国语言 no 英文执行非英文版Pro/e时,显示简要说明信息所用的语言. Save_model_display设定储存的图形数据总数. wireframe线框. Shading-high大多数详图(被着色) Shade_with 控制着色对象上基准曲线的显示. system_colors_file 指定系统颜色档案 spin-with-part-entities yes指定模型动旋转时,将显示基准特特征 trail-dir 指令pro/e在指定的目录中建立轨迹档案,而不是在启动目录 中建立. rename_drawings_with_object both 控制系统是否自动复制与零件和组 件相关的绘图 template_solidpart 指定用作预设的模板零件模型 default_dec_places 3 设定在所有模型式中显非角度尺寸的小数字 数. Feature_create-auto_ok yes在特征建立期间,确定当定义完所需的最后一个元素是否自动启动对话方框的确定. Flip_arrow_scale 2 为扩大反向箭头尺寸设定比例因子.

C语言编程实战-4-命令行参数(main函数)处理

命令行(main函数)参数处理 我们在执行某某命令的时候,经常会传入一些参数,告诉程序做不同的处理。如使用gcc编译程序时,我们经常会在后边指定c源码文件,如gcc test.c。我们自己写的程序,如何能够算其它命令一样,能够接收和处理不同的参数呢?答案是肯定的。我们今天来介绍自写程序对命令行参数的处理。 一个标准的C程序,其主函数通常是这样子定义的: int main(int argc,char *argv[]) { //用户代码 return xxx; } main函数有两个参数:argc与agv,前者是一个整数,表示命令行给程序参数的个数,后者是一个字符串数组,用于顺次存放命令行传给程序的参数,通过argc与argv,我们就能实现对命令行参数的处理。 对每一个程序而言,程序的名称总会作为命令行的第一个参数传给它的主函数,那怕命令行中并没有传任何参数。因此,主函数的参数argc最小值为1,argv[0]总是存放命令程序名。因此,假使test是我们程序的名字,如果执行: test 则main函数得到的参数是:argc = 1, argv = {“test”}; 如果执行: test arg1 arg2 则main函数得到的参数是:argc = 3, argv = {“test”, “arg1”, “arg2”}; 如此类推。 通过上面的讲解,我们不难在main函数中实现对命令行参数的代码。我们接下来做一个编程任务: 写一个程序,该程序接收两个参数,这两个参数都是整数,程序中需将这两个整数的和与差计算并输出到屏幕上。假设程序的名称为cal,在命令行执行: cal 10 15 则程序输出: 10 + 15 = 25 10 – 15 = -5 如果输入的参数不合法,则提示参数错误。 代码实现: #include

相关主题
文本预览
相关文档 最新文档