delphi的 pas 文件是由哪些部分组成的

delphi的 pas 文件是由哪些部分组成的,第1张

扩展名为 .pas 的文件是 delphi 的单元代码源文件,取名 pas 是缘于 delphi 是基于 Pascal 语言之上的扩展,其语法等使用的是 pascal 的语法。

pas 文件的内容由以下几部分组成:

//单元名称

Unit unit1

//类型声明

type

  TMyArray = array[0..19] of Byte

//接口部分

//可定义常量、变量、函数、过程等。

interface

//接口部分的单元引用

uses

  Windows, Messages,Controls, Forms, Dialogs

//实现部分

implementation

//实现部分的单元引用

uses

  MyLib, Unit2

  

//初始化部分(可省略)

initialization

//最终结束部分(可省略)

finalization

//单元文件结尾(end后必须以句号结尾) 

end.

以下是当新建一个工程时,自动生成的 unit.pas 常规内容:

unit Unit1

interface

uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

  Vcl.Controls, Vcl.Forms, Vcl.Dialogs

type

  TForm1 = class(TForm)

  private

    { Private declarations }

  public

    { Public declarations }

  end

var

  Form1: TForm1

implementation

{$R *.dfm}

end.

.cfg根据dof文件生成的编译器和连接器的命令行参数。

.dof(Delphi OptionFile)包含编译器、连接器的参数,以及其他在Delphi菜单命令Project->Options中可以设置的内容。

.dpr(Delphi PRoject)工程主文件。

.res资源文件。

.pas(Pascal)各个单元的源文件。

.dfm(Delphi ForM)窗体文件

首先要说说的是Delphi中一个project(工程)的结构。工程的主文件是必不可少的,扩展名为.dpr(Delphi PRoject),格式跟一般的unit(单元)基本一样。然后在这个dpr中一般还要引用到其他的单元(在Delphi中使用“use”一词,类似C中的include),这些单元文件一般以pas作为扩展名,格式当然就是从以前的Pascal扩展的。前面说到dpr的格式与单元文件的格式基本一样,而且dpr是整个工程程序的入口,与Pascal中是一模一样的!Delphi中使用菜单命令Project->View Source就可以查看到dpr中的内容。

另外如果工程中添加了form(窗体),则还会有一些.dfm(Delphi ForM)文件,其实是包含窗体及其中控件属性的一个资源文件,也就是说可以像res文件一样打开。提到res文件,这种文件也是工程中常见的,里面包含程序图标、版本信息等资源,以后将会说明这种文件在不同场合的用途。

对应dpr文件一般还会有一个dof(Delphi OptionFile)和一个cfg文件。Dof文件中包含编译器、连接器的参数,以及其他在Delphi菜单命令Project->Options中可以设置的内容。Cfg文件是根据dof文件生成的编译器和连接器的命令行参数。

最后一种文件是dcu(Delphi Compiled Unit)文件,也就是已编译的单元文件,根据工程的编译器设置,里面一般还会包含调试信息等,默认设置是编译器生成调试信息到dcu中,但连接器不会把调试信息连接到exe里面。

用record来处理,给个小示例

Header = record //假设是个头文件的数据格式

Count: Integer

end

Play = record //假设是记录的数据格式

Account: String[20]

Name: String[20]

end

File: TFileStream//假设加载了文件

读取头部信息:

var

H:Header

P:Play

I: Integer

begin

File.Seek(0, smFromBeging)//这个参数名我记不清楚,自己查下

File.ReadBuffer(@H, SizeOf(Header))

for I = 0 to H.Count -1 do

File.ReadBuffer(@P, SizeOf(Play)) //这里读取一个记录后,即可针对记录做些处理

end

大致就是这样读取了,写入的方式差不多,用Writebuffer就可以 。你声明相应的头文件格式和记录的格式,按照我这个思路去处理就行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11795224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存