⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extinifile.pas

📁 these are some texts and original program,they are very useful for transportation reserch.
💻 PAS
字号:
unit extinifile;

interface
uses
  windows,inifiles,sysutils;
type
  TExtIniFile = class(TIniFile)
  public
    procedure WritePoint(const Section, Ident: String; Value: TPoint);
    function ReadPoint(const Section, Ident: String; Value: TPoint):TPoint;

    procedure WriteSingleArray(const Section,Ident:String; var value:array of single;len:Integer);
    procedure ReadSingleArray(const Section,Ident:String;var value:array of single;
      var defvalue:array of Single;len:Integer);
    procedure WriteIntegerArray(const Section,Ident:String; var value:array of Integer;len:Integer);
    procedure ReadIntegerArray(const Section,Ident:String;var value:array of Integer;
      var defvalue:array of Integer;len:Integer);
    procedure WriteRealArray(const Section,Ident:String; var value:array of Real;len:Integer);
    procedure ReadRealArray(const Section,Ident:String;var value:array of Real;
      var defvalue:array of Real;len:Integer);
  end;
implementation

procedure TExtIniFile.WritePoint(const Section, Ident: String; Value: TPoint);
var
  str:String;
begin
  str:=IntToStr(value.x)+';'+IntToStr(value.Y)+';';
  WriteString(section,ident,str);
end;

function TExtIniFile.ReadPoint(const Section, Ident: String; Value: TPoint):TPoint;
var
  str,substr:String;
  i,h,t,n:Integer;
  val:array[1..3] of Integer;
begin
  str:=IntToStr(value.x)+';'+IntToStr(value.Y)+';';
  str:=ReadString(section,ident,str);
  h:=1;
  n:=1;
  for i:=1 to Length(str) do
  begin
    if str[i]=';' then
    begin
      t:=i;
      substr:=Copy(str,h,t-h);
      val[n]:=StrToInt(substr);
      Inc(n);
      h:=i+1;
    end;
  end;
  Result.X:=val[1];
  Result.Y:=val[2];
end;

procedure TExtIniFile.WriteSingleArray(const Section,Ident:String; var value:array of single;len:Integer);
var
  str:String;
  i:Integer;
begin
  str:='';
  for i:=0 to len-1 do
  begin
    str:=str+FloatToStr(value[i])+';' ;
  end;
  WriteString(section,ident,str);
end;

procedure TExtIniFile.ReadSingleArray(const Section,Ident:String;var value:array of single;
  var defvalue:array of Single;len:Integer);
var
  str,substr:String;
  i,h,t,n:Integer;
begin
  str:='';
  for i:=0 to len-1 do
  begin
    str:=str+FloatToStr(defvalue[i])+';' ;
  end;
  str:=ReadString(section,ident,str);

  h:=1;
  n:=0;
  for i:=1 to Length(str) do
  begin
    if str[i]=';' then
    begin
      t:=i;
      substr:=Copy(str,h,t-h);
      value[n]:=StrToFloat(substr);
      Inc(n);
      h:=i+1;
    end;
  end;
end;

procedure TExtIniFile.WriteIntegerArray(const Section,Ident:String; var value:array of Integer;len:Integer);
var
  str:String;
  i:Integer;
begin
  str:='';
  for i:=0 to len-1 do
  begin
    str:=str+IntToStr(value[i])+',' ;
  end;
  WriteString(section,ident,str);
end;

procedure TExtIniFile.ReadIntegerArray(const Section,Ident:String;var value:array of Integer;
  var defvalue:array of Integer;len:Integer);
var
  str,substr:String;
  i,h,t,n:Integer;
begin
  str:='';
  for i:=0 to len-1 do
  begin
    str:=str+IntToStr(defvalue[i])+',' ;
  end;
  str:=ReadString(section,ident,str);

  h:=1;
  n:=0;
  for i:=1 to Length(str) do
  begin
    if str[i]=',' then
    begin
      t:=i;
      substr:=Copy(str,h,t-h);
      value[n]:=StrToInt(substr);
      Inc(n);
      h:=i+1;
    end;
  end;
end;

procedure TExtIniFile.WriteRealArray(const Section,Ident:String; var value:array of Real;len:Integer);
var
  str:String;
  i:Integer;
begin
  str:='';
  for i:=0 to len-1 do
  begin
    str:=str+FloatToStr(value[i])+',' ;
  end;
  WriteString(section,ident,str);
end;

procedure TExtIniFile.ReadRealArray(const Section,Ident:String;var value:array of Real;
  var defvalue:array of Real;len:Integer);
var
  str,substr:String;
  i,h,t,n:Integer;
begin
  str:='';
  for i:=0 to len-1 do
  begin
    str:=str+FloatToStr(defvalue[i])+',' ;
  end;
  str:=ReadString(section,ident,str);

  h:=1;
  n:=0;
  for i:=1 to Length(str) do
  begin
    if str[i]=',' then
    begin
      t:=i;
      substr:=Copy(str,h,t-h);
      value[n]:=StrToFloat(substr);
      Inc(n);
      h:=i+1;
    end;
  end;
end;
end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -