<连载>Protel二次开发从入门到精通
--正文篇——第九章第2节
2.4.2.2 判断配置文件
根据详细设计要求,先判断配置文件GetInfoOption.ini是否存在,使用一个CheckOptionFile过程,来执行判断配置文件是否存在,如不存在,就建立一个默认的配置文件。
Procedure CheckOptionFile;
Var
TempOptionFile : TextFile;
begin
If not FileExists(GetSystemPath + '\' + 'GetInfoOption.ini') then//如果配置文件不存在,则创建。
begin
AssignFile(TempOptionFile,GetSystemPath + '\' + 'GetInfoOption.ini');//输出文件清单列表文件。
ReWrite(TempOptionFile);//新建文件
try
Writeln(TempOptionFile , ';本文件是从Protel二次开发中从原理图或印制板提取信息的配置文件,"选择"表示此项起作用,"不选择"表示不起作用。');
Writeln(TempOptionFile ,';输出文件名称最后不要使用中文名称,否则可能会出现异常');
Writeln(TempOptionFile ,'[GetOption]');
Writeln(TempOptionFile ,';GetOption是表示是原理图或是从印制板中提取信息的配置。');
Writeln(TempOptionFile ,'SCH = 选择');
Writeln(TempOptionFile ,'PCB = 选择');
Writeln(TempOptionFile ,'原理图元器件输出文件名称 = SchPartList.Txt');
Writeln(TempOptionFile ,'印制板元器件输出文件名称 = PCBPartList.Txt');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
Writeln(TempOptionFile ,'[ExportFileOption]');
Writeln(TempOptionFile ,';配置从DDB包中输出文档的文件清单名称和选项。输出文件名称最好不要使用中文名称,否则可能会出现异常');
Writeln(TempOptionFile ,'输出DDB包中文档清单文件名称 = FileList.Txt');
Writeln(TempOptionFile ,'文档名称= 选择');
Writeln(TempOptionFile ,'编辑器类型 = 选择');
Writeln(TempOptionFile ,'完整路径= 选择');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
Writeln(TempOptionFile ,'[ExportDDBpackerOption]');
Writeln(TempOptionFile ,';配置是否同时在输出目录中把DDB包同时输出,即把压缩包一起输出。把DDB文件完整路径写在SingleFileDDB.TXT文件中');
Writeln(TempOptionFile ,'同时输出DDB包 = 选择');
Writeln(TempOptionFile ,'输出DDB包文件名称 = SingleFileDDB.TXT');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
Writeln(TempOptionFile ,'[SchInfoOption]');
Writeln(TempOptionFile ,';SchInfoOption段是对从原理图中提取信息的配置。');
Writeln(TempOptionFile ,'元件名称= 选择');
Writeln(TempOptionFile ,'元件流水号= 选择');
Writeln(TempOptionFile ,'元件包装形式 = 不选择');
Writeln(TempOptionFile ,'元件描述= 不选择');
Writeln(TempOptionFile ,'元件引用库= 不选择');
Writeln(TempOptionFile ,'原理图名称= 选择');
Writeln(TempOptionFile ,'所属容器名称 = 不选择');
Writeln(TempOptionFile ,';以上是原理图中元器件的基本信息');
Writeln(TempOptionFile ,';');
Writeln(TempOptionFile ,'PartLibraryFields0 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields1 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields2 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields3 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields4 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields5 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields6 = 不选择');
Writeln(TempOptionFile ,'PartLibraryFields7 = 不选择');
Writeln(TempOptionFile ,';以上是元件库字段信息');
Writeln(TempOptionFile ,';');
Writeln(TempOptionFile ,'PartFields[0]= 不选择');
Writeln(TempOptionFile ,'PartFields[1]= 不选择');
Writeln(TempOptionFile ,'PartFields[2]= 不选择');
Writeln(TempOptionFile ,'PartFields[3]= 不选择');
Writeln(TempOptionFile ,'PartFields[4]= 不选择');
Writeln(TempOptionFile ,'PartFields[5]= 不选择');
Writeln(TempOptionFile ,'PartFields[6]= 不选择');
Writeln(TempOptionFile ,'PartFields[7]= 不选择');
Writeln(TempOptionFile ,'PartFields[8]= 不选择');
Writeln(TempOptionFile ,'PartFields[9]= 不选择');
Writeln(TempOptionFile ,'PartFields[10]= 不选择');
Writeln(TempOptionFile ,'PartFields[11]= 不选择');
Writeln(TempOptionFile ,'PartFields[12]= 不选择');
Writeln(TempOptionFile ,'PartFields[13]= 不选择');
Writeln(TempOptionFile ,'PartFields[14]= 不选择');
Writeln(TempOptionFile ,'PartFields[15]= 不选择');
Writeln(TempOptionFile ,';以上是元器件字段信息');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
Writeln(TempOptionFile ,'[PCBInfoOption]');
Writeln(TempOptionFile ,';PCBInfoOption段是对从印制板中提取信息的配置。');
Writeln(TempOptionFile ,'元件名称= 选择');
//在印制板中,元件名称是组件备注。
Writeln(TempOptionFile ,'元件流水号= 选择');
//在印制板中,元件流水号是组件名称。
Writeln(TempOptionFile ,'组件流水号= 不选择');
Writeln(TempOptionFile ,'印制板名称= 选择');
Writeln(TempOptionFile ,'所属容器名称 = 不选择');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
Writeln(TempOptionFile ,'[Other]');
Writeln(TempOptionFile ,';Other用来配置其它部份');
Writeln(TempOptionFile ,';"前标题是否显示"是用来配置是否在输出的文件中按如"XXX元件名称"="XXX"格式显示还是直接显示,如果配置为"不显示",则直接输出内容。');
Writeln(TempOptionFile ,'前标题是否显示 = 不显示');
Writeln(TempOptionFile ,'分隔符 = 分号');
Writeln(TempOptionFile ,';"分隔符"有"逗号"、"分号"、"垂直线"三种可选择。');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
Writeln(TempOptionFile ,'[CallProc]');
Writeln(TempOptionFile ,';CallProc部份主要是为了解决与PDM系统或ERP系统等其它第二方软件系统集成问题,');
Writeln(TempOptionFile ,';在Protel系统集成中,数据提取完成后,需要把数据和文件传递到第二方系统,这样,就需要');
Writeln(TempOptionFile ,';在此调用其它的可执行文件如EXE或Bat批处理文件,在EXE和Bat批处理文件中传递文件和数据。');
Writeln(TempOptionFile ,';请把可执行文件放在操作系统检索路径下,如WINNT下或WINNT\SYStem32等目录下,如果是批处');
Writeln(TempOptionFile ,';理文件,请在批处理中把要执行的文件写出来,如果要执行的文件在操作系统检索目录下,可以');
Writeln(TempOptionFile ,';不写路径,否则请写全路径,例如E:\SAMPLES\NO8\API\Advance\Export a DDB document and Get Part info\Sample.bat');
Writeln(TempOptionFile ,';否则程序执行会出现异常。默认的执行文件是Sample.bat,其中内容是notepad.exe');
Writeln(TempOptionFile ,'外部执行文件 = Sample.bat');
Writeln(TempOptionFile ,';--------------------------------------------------------------------------------------');
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
- 上一篇文章:<连载>Protel二次开发从入门到精通
- 下一篇文章:EDA工具最好理念:端到端流程优化
