• WinAPI: WritePrivateProfileString、GetPrivateProfileString 简单读写 Ini 文件


    尽管使用 TIniFile 类很方便, 但我觉得还是用系统 API 操作更顺手, 读写各只需要一行代码, 也不用 uses IniFiles.

    本例效果图:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    const
      FilePath = 'C:\Temp\My.ini';
    
    //写入 Ini 文件, 如果指定文件路径不存在会自动建立
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      WritePrivateProfileString('段1', 'Key1', '值1', PChar(FilePath));
      WritePrivateProfileString('段1', 'Key2', '值2', PChar(FilePath));
    
      WritePrivateProfileString('段2', 'Key1', '值1', PChar(FilePath));
    end;
    
    //把写入结果显示在 Memo 看看
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      if not FileExists(FilePath) then Exit;
      Memo1.Lines.LoadFromFile(FilePath);
    end;
    
    //读取测试
    procedure TForm1.Button3Click(Sender: TObject);
    var
      buf: array[Byte] of Char; {准备接受缓冲区}
    begin
      GetPrivateProfileString('段1', 'Key2', '默认值', buf, Length(buf), PChar(FilePath));
      ShowMessage(buf);
    end;
    
    end.
    
    窗体文件:
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 148
      ClientWidth = 237
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      Position = poDesktopCenter
      PixelsPerInch = 96
      TextHeight = 13
      object Button1: TButton
        Left = 127
        Top = 24
        Width = 98
        Height = 25
        Caption = #20889#20837' Ini '#25991#20214
        TabOrder = 0
        OnClick = Button1Click
      end
      object Button2: TButton
        Left = 127
        Top = 65
        Width = 98
        Height = 25
        Caption = #30475#30475#20889#20837#32467#26524
        TabOrder = 1
        OnClick = Button2Click
      end
      object Button3: TButton
        Left = 127
        Top = 104
        Width = 98
        Height = 25
        Caption = #35835#21462'  Ini '#25991#20214
        TabOrder = 2
        OnClick = Button3Click
      end
      object Memo1: TMemo
        Left = 0
        Top = 0
        Width = 121
        Height = 148
        Align = alLeft
        Lines.Strings = (
          'Memo1')
        TabOrder = 3
        ExplicitHeight = 183
      end
    end
    
    相关函数还有:
    WritePrivateProfileSection {}
    WriteProfileSection        {}
    WriteProfileString         {}
    GetPrivateProfileInt       {}
    GetPrivateProfileSection   {}
    GetPrivateProfileStruct    {}
    GetProfileInt              {}
    GetProfileSection          {}
    GetProfileString           {}
    
  • 相关阅读:
    [BJWC2018]Border 的四种求法
    [51nod1847]奇怪的数学题
    [51nod1965]奇怪的式子
    [BZOJ3283]运算器
    [TJOI2015]概率论
    [SDOI2017]遗忘的集合
    [HDU5709]Claris Loves Painting
    [Atcoder AGC032C]Three Circuits
    [Atcoder ARC103D]Robot Arms
    [Atcoder AGC030C]Coloring Torus
  • 原文地址:https://www.cnblogs.com/del/p/1212120.html
Copyright © 2020-2023  润新知