当前位置: 首页 > news >正文

Delphi Ini文件对UTF8支持不爽的极简替代方案

如题,没太多废话,直接复制走即可。

unit uConfig;interfaceuses classes, Sysutils;typeTConfig = class
privateFFileName: String;FConfig:TStringList;
protectedpublicconstructor Create(ConfigFile:String);destructor Destroy;property  FileName:String read FFileName write FFileName;function  Read(AName:String;Default:String):String;overload;function  Read(AName:String;Default:Integer):Integer;overload;function  Read(AName:String;Default:Single):Single;overload;procedure Write(AName:String;AValue:String); overload;procedure Write(AName:String;AValue:Integer); overload;procedure Write(AName:String;AValue:Single); overload;publishedend;implementation{ TConfig }constructor TConfig.Create(ConfigFile:String);
beginFConfig:= TStringList.Create;FFileName:=ConfigFile;if FileExists(ConfigFile) thenFConfig.LoadFromFile(FFileName,TEncoding.UTF8)elseFConfig.SaveToFile(FFileName,TEncoding.UTF8);
end;destructor TConfig.Destroy;
beginFConfig.Free;
end;function TConfig.Read(AName, Default: String): String;
var Idx:Integer;
beginIdx := FConfig.IndexOfName(aName);if Idx>-1 thenresult:= FConfig.ValueFromIndex[Idx]elseresult:=Default;
end;function TConfig.Read(AName: String; Default: Single): Single;
beginif not TryStrToFloat(Read(AName,Default.ToString),result) thenresult := Default;
end;function TConfig.Read(AName: String; Default: Integer): Integer;
beginif not TryStrToInt(Read(AName,Default.ToString),result) thenresult := Default;
end;procedure TConfig.Write(AName, AValue: String);
var Idx:Integer;
beginIdx := FConfig.IndexOfName(aName);if Idx>-1 thenFConfig.ValueFromIndex[Idx]:=AValueelseFConfig.AddPair(AName,aValue);FConfig.SaveToFile(ExtractFilePath(ParamStr(0))+'Config',TEncoding.UTF8);
end;procedure TConfig.Write(AName: String; AValue: Integer);
beginWrite(AName,AValue.ToString);
end;procedure TConfig.Write(AName: String; AValue: Single);
beginWrite(AName,AValue.ToString);
end;end.
在这里插入代码片

没有测试UTF8效果,理论100%!

http://www.dtcms.com/a/138304.html

相关文章:

  • uniapp h5接入地图选点组件
  • 用 Deepseek 写的uniapp油耗计算器
  • CentOS 7 安装教程
  • VS-Code创建Vue3项目
  • 医院处方外流对接外部药房系统(合规python代码版)
  • ROS ROS2 机器人深度相机激光雷达多传感器标定工具箱
  • 编解码器vs容器
  • webpack理解与使用
  • 方德桌面操作系统V5.0-G23 vim无法复制粘贴内容
  • 李飞飞团队新作WorldScore:“世界生成”能力迎来统一评测,3D/4D/视频模型同台PK
  • 【论文精读】COLMAP-Free 3D Gaussian Splatting
  • [linux] vim 乱码
  • C++ 哈希表
  • Qt QML实现Windows桌面歌词动态播放效果
  • QtApplets-实现应用程序单例模式,防止重复运行
  • 2025年Q2(流动式)起重机司机考试题
  • 【Windows本地部署n8n工作流自动平台结合内网穿透远程在线访问】
  • Ubuntu利用docker搭建Java相关环境记录(二)
  • Vision Transformer项目分析与介绍
  • 压缩包网页预览(zip-html-preview)
  • Apache Atlas构建安装(Linux)
  • Python 深度学习 第8章 计算机视觉中的深度学习 - 卷积神经网络使用实例
  • YOLO训练多评价指标曲线画图
  • 【2025“华中杯”大学生数学建模挑战赛】选题分析 A题 详细解题思路
  • k8s报错kubelet.go:2461] “Error getting node“ err=“node \“k8s-master\“ not found“
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(20):拾遗 - imgproc 基础操作(下)
  • Python实例题:Python自动化开发-考勤处理
  • iptables防火墙
  • 深入浅出 Redis:核心数据结构解析与应用场景Redis 数据结构
  • 简述Apache RocketMQ