zoukankan      html  css  js  c++  java
  • delphi 读写记录类型文件Record

    type personInfo=Record //定义Record
    Name:String[10];
    
    Age:integer;
    
    end;
    
    //写记录包括新键与添加记录
    
    procedure WriteRec;
    
    var NewRec:PersonInfo; //声明Rec变量
    
    F:File of PersonInfo; //Rec型文件变量
    
    RecFileName:ShortString; //保存Rec的文件全名
    
    RecCount:integer; //Rec数量
    
    begin
    
    NewRec.Name:=NameEdit.Text; //从界面上取数据
    
    NewRec.Age:=StrToInt(AgeEdit.Text);
    
    RecFileName:='C:PersonInfo.Rec';
    
    AssignFile(F,RecFileName);
    
    if FileExists(RecFileName)<>True then //判断文件是否存在
    
    begin
    
    Rewrite(F); //不存在则新增文件
    
    Write(F,NewRec);
    
    end
    
    else
    
    begin
    
    FileMode:=1; //设置成WriteOnly模式
    
    Reset(F); //存在则添加Rec入文件
    
    RecCount:=FileSize(F); //取Rec数量
    
    Seek(F,RecCount); //设置Pointer位置
    
    Write(F,NewRec);
    
    end;
    
    CloseFile(F); //关闭文件
    
    end;
    
    //读取记录
    
    procedure ReadRec;
    
    var GetRec:PersonInfo;
    
    F:File of PersonInfo;
    
    RecFileName:ShortString; //保存Rec的文件名称
    
    RecCount:Integer; //用户想要读取的Rec位置
    
    RecMax:integer; //Rec的最大值
    
    begin
    
    RecFileName:='C:PersonInfo.Rec';
    
    RecCount:=StrToInt(CountEdit.Text)-1; //用户要提取第一个就输入1,类推
    
    AssignFile(F,RecFileName);
    
    if FileExists(RecFileName)<>True then exit;
    
    FileMode:=0;
    
    Reset(F);
    
    RecMax:=FileSize(F);
    
    if RecCount>RecMax-1 then Exit; //超过Rec最大值则跳出
    
    Seek(F,RecCount); //设置读取Rec的Pointer位置
    
    Read(F,GetRec);
    
    Showmessage(GetRec.Name+InttoStr(GetRec.Age));
    
    end;
    

      

  • 相关阅读:
    异步FIFO的Verilog实现
    二进制格雷码与二进制自然码
    握手协议
    电容充放电和开关电容
    Vivado自定义IP封装流程
    【转】warning 之 [IP_Flow 19-3153]
    【转】mipi-csi-2解读
    版本管理-link
    [转载]yuv和yCbCr的差异
    【转】用verilog实现RGB格式图像到YCbCr或YUV格式的转换及其验证方法 (RGB2YCrCb)(RGB2YUV)
  • 原文地址:https://www.cnblogs.com/blogpro/p/11453559.html
Copyright © 2011-2022 走看看