《毕业设计(论文)EDA软件veriBest的数据格式分析与转换.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)EDA软件veriBest的数据格式分析与转换.doc(60页珍藏版)》请在三一办公上搜索。
1、摘要在集成电路产品的自动化生产过程中,表面贴装技术(SMT)已经得到了广泛的应用。贴片机作为SMT生产线中的核心设备,从设计数据到制造生产的中间环节仍需大量的人力、物力及时间。面向设计制造一体化的贴片机产前数据准备是一个亟待研究并解决的问题。EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性越来越突出,随着技术市场与人才时常对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。文中针对SMT以及贴片机工作原理,以VeriBest为例,在分析了其共性基础之上,设计了EDA转换接口。首先介绍了关于表面贴装(STM)的相关知识、EDA格式转换的重要性
2、、VeriBest文件层次结构安排。然后根据文件格式说明来读取所需要的字段,并按一定的标准显示在文件中,最后在MFC环境下实现了数据的格式转换关键词 表面贴装技术,贴片机,EDA格式,转换AbstractSurface Mounted Technology (SMT) has been widely used in the automatically manufacture of Integrated Circuit. As the kernel equipment in SMT product line, surface mounting machine still need a lot o
3、f manpower, material resources, and time from design-data to produce-data. Pre-production data preparation for surface mounting machine, which is oriented to the integration of design and manufacturing, has already become a problem which should be researched immediately.The important of the EDA tech
4、nology in the Electronic information、communication, automation and computer applications became more and more important as the technology market and people always need to continuously improve the EDA, the market demand for products and technology market will also reflect the requirements to Teaching
5、 and research field.In the article for the pastes the piece machine principle of work as well as SMT, take VeriBest as the example, we have analyzed it above its general character foundation, and designed the EDA transformation connection。 Firstly we introduced the related knowledge of pastes instal
6、ls (STM) 、 the importance of EDA format conversion , the hierarchical structure arrangement of the VeriBest document .Then reads the needed field which according to the document format explanation , and according to a certain standard demonstration in the document, Finally we can realized the data f
7、ormat conversion under the MFC environment .Key words SMT,Surface Mounting Machine,EDA Format,Translate目录摘要1第一章 绪论61.1课题来源及研究背景61.2研究现状71.3本文工作81.4 本文结构8第二章 表面贴装和MFC技术102.1 表面贴装技术102.1.1 通孔插装与表面贴装112.1.2 表面贴装技术工艺流程112.1.3 表面贴装技术的优点132.2 贴片机142.2.1 贴片机工作原理152.3 MFC相关知识162.3.1 MFC 基础知识介绍162.3.2 MFC中相关
8、类介绍172.4 本章总结24第三章 EDA转换的总体设计253.1 EDA转换系统功能模块253.1.1各种异构EDA文件转换253.1.2中间文件对项目的后续服务263.1.3 设计文件处理不同分类263.2文件格式分析(VeriBest)283.2.1 VeriBest 设计文件生成中间文件流程283.2.2 VeriBest 中走线、过孔、板框信息的具体描述303.2.3 VeriBest 文件格式其他分析说明323.3 VeriBest文件中间格式分析说明363.3 本章小结38第四章 EDA格式转换的实现404.1 PCB基板信息面向对象的封装分析404.1.1 PCB基板的面向对
9、象分析414.1.2 PCB板的EDA文件相关类424.2 EDA格式转换数据结构设计444.2.1 VeriBest 实现转换的类和参数定义444.3 EDA格式转换的实现464.3.1 系统开发工具474.3.2 程序实现流程图484.3.3 功能效果展示55第五章 结束语585.1 总结585.1.1 格式分析优势和MFC界面优势585.1.2 格式转换的扩展性创新595.2 展望59致谢60参考文献61第一章 绪论目前的制造技术,是在传统设计制造技术基础上,不断吸收计算机技术、信息技术和其他现代科学技术的成果而发展起来的新兴综合技术。在传统集成电路产品自动化生产过程中,电子设计自动化(
10、Electronic Design Automation,EDA)软件所设计出的产品包含大量的印刷电路板(Printed Circuit Board,PCB)组件,而目前PCB组件的组装广泛采用表面贴装技术(Surface Mounted Technology,SMT)。随着PCB组件模块多品种、变批量、短周期、低成本、高质量、小型化以及升级换代快的要求,在表面贴装技术中,单靠传统的元器件试贴分析以及人工手动实现生产数据处理,已经远不能胜任。本文围绕上述问题,以不同物理形式的EDA设计文件的转换为相同中间文件格式为关键攻关对象,主要讨论从各类文件格式中提取有用信息后,以统一的格式写入文件,这样
11、可以避免文件格式不统一而引起的接口不兼容问题,为模拟仿真提供了便利。1.1课题来源及研究背景本课题来源于中国电子科技集团公司第五十四研究所和西安电子科技大学共同承担的“十一五”项目“电子电路变批量柔性制造应用平台”以及“十五”补充项目“军用电路模块设计制造一体化应用研究技术”3, 4。本课题通过深入研究以异构文件驱动的贴片机贴装流程仿真以及贴片机生产数据快速准备,实现“设计制造一体化”思想在表面贴装技术中的应用,达到减少生产准备时间、缩短产品开发周期的研究目的。传统电子产品设计制造通常采用顺序的工程方法,EDA设计人员不能及时并方便地和工艺设计人员协同工作。因而在电子产品的设计阶段不能及早地考
12、虑到制造工艺的问题,造成设计领域与制造领域完全脱节。于是,一个产品的开发过程就变成了设计加工试验再设计再加工再试验,直至可生产出一个合格的产品的循环过程,从而使生产的周期被延长,成本被增加。对于表面贴装流程,在设计产品被证实合格之后,即将进行批量生产之前,还有一道数据准备工序。在当前传统流程中,从EDA设计文件到贴片机离线编程输入的cad文件的处理过程,仍需大量人工干预5,设计文件不得不再次返回设计环境,而大量的人工操作必定会造成准备时间再次延长,甚至导致由于人工纰漏而造成的经济损失。面向设计制造一体化的贴片机产前数据准备主要针对上述问题,可见其研究工作亟待进行。1.2研究现状目前,国外电子电
13、路组件的优化设计技术及表面贴装工艺仿真技术已经开始应用于航空航天、船舶、重工业、军事和消费类电子产品等许多领域,而且已经发挥了很大的作用。典型的例子有波音777,其整机设计、部件测试、整机装配以及各种环境下的试飞均是在计算机上完成的,使其开发周期从过去的8年缩短到5年。在虚拟仿真制造方面,以色列的Tecnomatix公司处于商用技术研究和系统开发的领导地位,从公司1983年成立至今,已经开发了一些针对性很强、专用的VM系统产品,如用于汽车制造业的机械手拟实系统、容差管理和分析系统等。在电子电路领域,国外开展一体化技术研究比较早,技术也相对成熟。以色列Valor公司一直开展PCB设计、制造和组装
14、相关的工程准备技术研究,并基于可制造性设计(Design for Manufacturability,DFM)技术提供协同的解决方案,其中Trilogy 5000系统(组装及测试工程CAM 解决方案),可排除企业在数据交换上遇到的问题,无论是设计还是工艺信息,都可通过这套系统整合成单一的有效数据库,快捷地从设计阶段传送到生产阶段。我国在电子电路模块设计制造一体化技术研究方面起步相对晚一些,在“九五”期间,中国电子科技集团电子科学研究院、中国电子科技集团第二研究所、西安电子科技大学、桂林电子学院等单位组织专门力量展开一体化系统技术研究,在板级电路模块领域的DFM、EDA/CAPP/CAM等一体化
15、技术方面取得了突破性的成果。但用于SMT中贴片机的设计制造一体化应用尚为空白,从设计数据到制造生产的中间环节仍需大量的人力、物力以及时间。PCB虚拟制造系统的研究取代了传统的试生产过程,但目前还没有可以实现将异构的EDA设计文件作为驱动的贴片机贴装流程仿真系统;而位于试生产之后,批量制造之前的数据准备目前仍处于人工处理阶段。1.3本文工作本文根据PCB组件可制造性分析及文件模拟仿真时需要的文件数据格式,实现了对VeriBest设计文件中走线、过孔、板框信息的提取转换为中间文件供仿真文件使用,实现了不同设计文件的统一接口,使得不同的软件可以在中间文件的基础上兼容本文的具体工作如下:根据集成电路产
16、品的自动化生产过程和表面贴装(STM)理论,本文详细研究了贴装机的生产工艺、运行过程和所需要转换的设计文件的格式及文件层次安排。通过分析现有的EDA软件输出的文件格式,设计出便于仿真的通用中间文件格式。通过对PCB组件各对象的详细分析,设计了一套实用有效的数据结构,以便对PCB组件进行有效的数据封装,为后续模拟仿真的工作打下了良好的基础。本文采用MFC中面向对象的思想对VeriBest设计文件进行分析,重点讨论了PCB基板和走线、板框的模型,并详细阐述了一般印刷板的信息读取规则。异构EDA的同构转换:作者在VC+ 6.0 环境下采用界面化的MFC来实现对EDA设计文件的中间文件输出转换工作,并
17、实现了独处的文件顺利模拟方针。1.4 本文结构本文共分为五章:第一章为绪论。介绍了与本课题相关的项目来源与需求背景,简单叙述了制造技术和EDA设计文件格式转换在国内外的研究现状以及本文的主要工作与创新。第二章是对表面贴装技术的概述。介绍了通孔插装与表面贴装的区别、表面贴装技术的四种工艺流程以及表面贴装技术的优点,分析了表面贴装技术中关键设备贴片机的工作原理,以及与贴片机密切相关的生产数据准备内容。同时对VC+中MFC中用到的一些重要类,重要数据结构的设计原理,及其应用过程中遇到的问题和解决技巧都有比较深入的介绍第三章是对系统总体框架的设计。深入分析了表面贴装技术中VeriBest设计文件中走线
18、,过孔,板框所属文件,整个文件夹的结构类型,层次安排,在每个文件中相关信息的关键字提取,根据文件的特征设计符合的数据类型和数据格式。第四章具体介绍了异构EDA的转换。首先分析EDA设计文件VeriBest,确定任务所需要的中间格式具体实现的各种细节,然后根据设计思路给出了详细的流程图,包括部分重要算法的伪代码,接着对本次毕设任务细思路包括关键算法、重要数据结构的设计和使用,读取文件并提取信息过程中用到的MFC中的重要的类库和使用技巧也做了比较详尽的阐述,最后展示了一些屏幕截图显示完成效果第五章为结束语。本章对全文内容作了一个总结,介绍了本文的创新点以及关键技术,并分析了系统不足之处,指明了下一
19、步研究内容。第二章 表面贴装和MFC技术电子计算机的诞生,智能化控制的成熟,网络通信的兴旺,标志着以信息技术为代表的高新技术己成为社会经济发展和改造传统产业的生力军,而建立在半导体和大规模集成电路技术高速发展的基础上,作为新一代电子组装技术的代言人,表面贴装技术的发展和推广应用对此次信息革命的意义极其深远。与互联网一样,表面贴装技术源自于六十年代美国军用电子及航空电子领域的设备制造。早期由于该技术尚不成熟及成本高昂,因此仅应用于美国波音公司与休斯公司等极少数厂商,其发展受到了极大限制。然而,时至七十年代末,高密度印刷电路板与大规模集成电路技术的高速发展,为表面贴装技术的推广与普及提供了可能性。
20、于是,表面贴装技术因其不可比拟的优势迅速取代了传统的通孔插装技术,进入消费类与信息类产品。时下轻便流行的笔记本电脑、手机,无一不得益于此。而作为电子类产品之一,自动化控制仪表也逐渐将目光聚焦于此项欣欣向荣的新技术。2.1 表面贴装技术表面贴装技术是将表面贴装元器件(无引脚或短引脚的元器件)贴、焊到印制电路板表面规定位置上的电路组装技术,所用的印制电路板无需钻孔。具体地说,就是首先在印制电路板焊盘上涂布焊锡膏,再将表面贴装元器件准确地放到涂有焊锡膏的焊盘上,通过加热印制电路板直至焊锡膏熔化,冷却后便实现了元器件与印制电路之间的互连。2.1.1 通孔插装与表面贴装目前,我国还在广泛使用的通孔基板式
21、印制板装配技术(Through-hole Technology,THT)13,其主要特点是在印制板上设计好电路连接导线和安装孔,将传统元器件的引线穿过电路板上的通孔以后,在印制板的另一面进行焊接,装配成所需要的电路产品。采用这种方法,由于元器件有引线,当电路密集到一定程度以后,就无法解决缩小体积的问题了。同时,引线间相互接近导致的故障、引线长度引起的干扰也难以避免。为了提高电子整机产品内单位体积的利用率,出现了贴片式元器件,所谓的表面贴装技术,是指把片状结构的元器件或适合于表面安装的小型化元器件,按照电路的要求放置在印制板的表面上,用再流焊或波峰焊接工艺装配起来,构成具有一定功能的电子部件的装
22、配技术。SMT和THT元器件安装焊接方式的区别如图2.1所示。 THT元件 THT器件 SMT元件 SMT器件 图2.1 SMT和THT元器件安装焊接方式示意图2.1.2 表面贴装技术工艺流程表面贴装工艺有两类最基本的工艺流程16,一类是焊锡膏再流焊工艺;另一类是贴片胶波峰焊工艺。在实际生产中,应根据所用元器件和生产装备的类型以及产品的需求,选择单独进行或重复、混合使用,以满足不同产品生产的需要。1、锡焊再流焊工艺工艺流程如图2.2所示。图2.2 锡焊再流焊工艺流程图该工艺流程的特点:简单、快捷,有利于产品体积的减小,该工艺流程在无铅工艺中更显示出优越性。2、贴片波峰焊工艺工艺流程如图2.3所
23、示。图2.3 贴片波峰焊工艺流程图该工艺流程的特点:利用双面板空间,电子产品的体积可以进一步做小,并部分使用通孔元器件,价格低廉。但设备要求增多,波峰焊过程中缺陷较多,难以实现高密度组装。若将上述两种工艺流程混合与重复使用,则可以演变成多种工艺流程供电子产品组装之用,如混合安装。3、混合安装工艺工艺流程如图2.4所示。图2.4 混合安装工艺流程图该工艺流程的特点:充分利用PCB双面空间,是实现安装面积最小化的方法之一,仍保留通孔元器件价廉的优点,多见于消费类电子产品的组装。4、双面均采用锡膏再流焊工艺工艺流程如图2.5所示。图2.5 双面锡膏再流焊工艺流程图该工艺流程的特点:采用双面锡膏再流焊
24、工艺,能充分利用PCB空间,实现安装面积最小化的必由之路,工艺控制复杂,要求严格,常用于密集型超小型电子产品中。2.1.3 表面贴装技术的优点表面贴装技术和通孔插装元器件的方式相比,具有以下优越性15。1、实现微型化。表面贴装技术组装的电子部件,其几何尺寸和占用空间的体积比通孔插装元器件小得多,一般可减小60%70%,甚至可减小90%。重量可减轻60%90%。2、信号传输速度高。采用表面贴装技术的产品结构紧凑、安装密度高,在电路板上双面贴装时,组装度可达到5.520个焊点/平方厘米,由于连线短、传输延迟小,可实现高速度的信号传输。同时,更加耐震动、抗冲击。这对于电子设备超高速运行具有重大的意义
25、。3、高频特性好。由于元器件无引线或短引线,自然消除了射频干扰,减小了电路的分布参数。4、有利于自动化生产,提高成品率和生产效率。由于片状元器件外形尺寸标准化、系列化及焊接条件的一致性,使表面贴装技术的自动化程度很高。因为焊接过程造成的元器件失效将大大减少,提高了可靠性。5、材料成本低。现在除了少量片状化困难或封装精度特别高的品种,由于生产设备的效率提高以及封装材料的消耗减少,绝大多数SMT元器件的封装成本已经低于相同类型、相同功能的THT元器件,结果使SMT元器件的销售价格比THT元器件更低。6、简化了生产工序,降低了生产成本。在印制板上安装时,元器件的引线不用整形、打弯、剪短,因而使整个生
26、产过程缩短。相同功能电路的加工成本低于通孔插装方式,一般可使生产总成本降低30%50%。可见,表面贴装技术作为电子产业的重要核心技术之一,不仅具有元器件安装密度高、产品体积小、信号传输快、高频特性好等优点,而且易于实现自动化和提高生产效率,有效地降低了电子产品的成本17。2.2 贴片机片式电子元器件贴装设备(通称贴片机)作为电子产业的核心设备,采用全自动贴装技术,有效地提高了生产效率,降低了制造成本。图2.6所示为贴片机外观示意图。图2.6 贴片机外观示意图2.2.1 贴片机工作原理贴片机实际上是一种精密的工业机器人,是机、电、光以及计算机控制技术的综合体。它通过吸取、位移、定位、放置等功能,
27、在不损伤元器件和PCB基板的情况下,实现了将贴装元器件快速而准确地贴装到PCB基板所指定的焊盘位置上。元器件的对中有机械对中、激光对中、视觉对中3种方式。贴片机由机架、x-y运动机构(滚珠丝杆、直线导轨、驱动电机)、吸嘴、元器件喂料器、PCB基板承载机构、器件对中检测装置、计算机控制系统组成,整机的运动主要由x-y运动机构来实现,通过滚珠丝杆传递动力、由滚动直线导轨运动来实现定向的运动,这样的传动形式不仅其自身的运动阻力小、结构紧凑,而且较高的运动精度有力地保证了各元器件的贴装位置精度。贴片机在重要部件(如贴装主轴、动静镜头、吸嘴座、喂料器)上进行了Mark标识。机器视觉能自动求出这些Mark
28、中心系统坐标,建立贴片机系统坐标系和PCB基板、贴装元器件坐标系之间的转换关系,计算并得出贴片机的运动精确坐标;吸嘴根据导入的贴装元器件的封装类型、元器件编号等参数到相应位置吸取元器件;静镜头依照视觉处理程序对吸取元器件进行检测、识别与对中;对中完成后吸嘴将元器件贴装到PCB基板上预定的位置。这一系列元器件识别、对中、检测和贴装的动作都是工控机根据相应指令获取相关的数据后指令控制系统自动完成的。贴片机的工作流程框图如图2.7所示18。图2.7 贴片机工作原理流程图2.3 MFC相关知识相对于EDA格式特点和需要转换的认为,因为需要比较清晰的用户界面交互,同时因为提取的信息包括走线,过孔,板框等
29、都与字符串操作相关,所以选用VC+下的MFC来实现功能。2.3.1 MFC 基础知识介绍VC+中MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,VC+是WinOS下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC+只是一个编译器,或者说是一种编译器+源程序编辑器
30、的IDE,WS,PlatForm,这跟Pascal和Dephi的关系一个道理,Pascal是Dephi的语言基础,Dephi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面对对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC+集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC+专配的。MFC是Win API与C+的结合,API,即微软提供的WinOS下应用程序的编程语言
31、接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Win OS下应用程序的开发,使这些被开发出来的应用程序能在WinOS下运行,比如VB,VC+,Java,Dehpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinOS作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户
32、使用微软的专业C+ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多内节程序开发人员在Win下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的.最后MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在WinOS(
33、用MFC编写的程序绝大部分都在WinOS中运行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环境,对C+和MFC的学习中最难的部分是指针,C+面向对像程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据结构C+版.2.3.2 MFC中相关类介绍各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C+中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。1文件的查找 当对一个文件操
34、作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。 CString strFileTitle; CFileFind finder; BOOL bWorking = finder.FindFile(C:windowssysbkup*.cab); while(bWorking) bWorking=finder.FindNextFile(); strFileTitle=finder.GetFileTitle(); 2 文件的打开/保存对话框 3 让用户选择文件进行打
35、开和存储操作时,就要用到文件打开/保存对话框。MFC的类CFileDialog用于实现这种功能。使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。4 在构造CFileDialog对象时,如果在参数中指定了风格,则在此对话框中可以进行多选操作。此时要重点注意为此CFileDialog对象的分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。下面这段程序演示了文件打开对话框的使用方法。 CFileDialog mFileDlg(TRU
36、E,NULL,NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, All Files (*.*)|*.*|,AfxGetMainWnd(); CString str( ,10000); mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000); str.ReleaseBuffer(); POSITION mPos=mFileDlg.GetStartPosition(); CString pathName( ,128); CFileStatus status; while(mPos!=
37、NULL) pathName=mFileDlg.GetNextPathName(mPos); CFile:GetStatus( pathName, status ); 3文件的读写 文件的读写非常重要,下面将重点进行介绍。文件读写的最普通的方法是直接使用CFile进行,如文件的读写可以使用下面的方法:/对文件进行读操作 char sRead2; CFile mFile(_T(user.txt),CFile:modeRead); if(mFile.GetLength()2)return; mFile.Read(sRead,2); mFile.Close(); /对文件进行写操作 CFile mF
38、ile(_T(user.txt ), CFile:modeWrite|CFile:modeCreate); mFile.Write(sRead,2); mFile.Flush(); mFile.Close();虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大。首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。它的使用方法见下例。 /对文件进行写操作 CString strTemp;CFile mFile; mFile.Open(d:dd
39、try.TRY,CFile:modeCreate|CFile:modeNoTruncate|CFile:modeWrite);CArchive ar(&mFile,CArchive:store); arstrTemp; ar.Close();mFile.Close(); CArchive的 操作符用于简单数据类型的读写,对于CObject派生类的对象的存取要使用ReadObject()和WriteObject()。使用CArchive的ReadClass()和WriteClass()还可以进行类的读写,如: /存储CAboutDlg类 ar.WriteClass(RUNTIME_CLASS(C
40、AboutDlg); /读取CAboutDlg类 CRuntimeClass* mRunClass=ar.ReadClass(); /使用CAboutDlg类 CObject* pObject=mRunClass-CreateObject(); (CDialog* )pObject)-DoModal(); 虽然VC提供的文档/视结构中的文档也可进行这些操作,但是不容易理解、使用和管理,因此虽然很多VC入门的书上花费大量篇幅讲述文档/视结构,但我建议你最好不要使用它的文档。关于如何进行文档/视的分离有很多书介绍,包括非常著名的Visual C+ 技术内幕。如果你要进行的文件操作只是简单的读写整行
41、的字符串,我建议你使用CStdioFile,用它来进行此类操作非常方便,如下例。CFileException mExcept;mFile.Open( d:tempaa.bat, CFile:modeWrite, &mExcept); CString string=I am a string.;mFile.WriteString(string); mFile.Close();正规软件经常用到临时文件,你经常可以会看到C:WindowsTemp目录下有大量的扩展名为tmp的文件,这些就是程序运行是建立的临时文件。临时文件的使用方法基本与常规文件一样,只是文件名应该调用函数GetTempFileNa
42、me()获得。它的第一个参数是建立此临时文件的路径,第二个参数是建立临时文件名的前缀,第四个参数用于得到建立的临时文件名。得到此临时文件名以后,你就可以用它来建立并操作文件了,如:char szTempPath_MAX_PATH,szTempfile_MAX_PATH; GetTempPath(_MAX_PATH, szTempPath); GetTempFileName(szTempPath,_T (my_),0,szTempfile);CFile m_tempFile(szTempfile,CFile: modeCreate|CFile: modeWrite);char m_char=a;
43、 m_tempFile.Write(&m_char,2); m_tempFile.Close(); 5文件的复制、删除等 MFC中没有提供直接进行这些操作的功能,因而要使用SDK。SDK中的文件相关函数常用的有CopyFile()、CreateDirectory()、DeleteFile()、MoveFile()。它们的用法很简单,可参考MSDN。 1,判断文件是否存在access(filename,mode);2,对于不同用途又不同的文件操作,其中API函数CreateFile()也是比较有用处理方式,对于巨型文件很合适的其他的楼上的大都说了,不重复了1显示对话框,取得文件名CString
44、FilePathName;CFileDialog dlg(TRUE);/TRUE为OPEN对话框,FALSE为S*E AS对话框if (dlg.DoModal() = IDOK)FilePathName=dlg.GetPathName();相关信息:CFileDialog 用于取文件名的几个成员函数:假如选择的文件是C:WINDOWSTEST.EXE则(1)GetPathName();取文件名全称,包括完整路径。取回C:WINDOWSTEST.EXE(2) GetFileTitle();取文件全名:TEST.EXE(3) (3)GetFileName();取回TEST(4) (4)GetFil
45、eExt();取扩展名EXE2打开文件CFile file(C:HELLO.TXT,CFile:modeRead);/只读方式打开/CFile:modeRead可改为 CFile:modeWrite(只写),/CFile:modeReadWrite(读写),CFile:modeCreate(新建)例子:CFile file;file.Open(C:HELLO.TXT,CFile:modeCreate|Cfile:modeWrite);3移动文件指针file.Seek(100,CFile:begin);/从文件头开始往下移动100字节file.Seek(-50,CFile:end);/从文件末尾
46、往上移动50字节file.Seek(-30,CFile:current);/从当前位置往上移动30字节file.SeekToBegin();/移到文件头file.SeekToEnd();/移到文件尾4读写文件读文件:char buffer1000;file.Read(buffer,1000)写文件:CString string(自强不息);file.Write(string,8);5关闭文件file.Close();CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSuppor