吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1211|回复: 3
收起左侧

[求助] 求教以下代码如何修改?

[复制链接]
冥界3大法王 发表于 2021-9-12 10:30
[Delphi] 纯文本查看 复制代码
//顶部uses小节加入IniFiles,
uses
    IniFiles,
==================================================
var
  inifile:TIniFile;        //定义ini文件  
  Filename:string;         //其文件名类型 
  Keyword1: string;
  Keyword2: Integer;
  Keyword3: Boolean;
  Keyword4: TDateTime;================》看这里,对不?
  Keyword5: TDateTime;================》看这里,对不?
  Keyword6: Real;
Begin
  Filename:=GetCurrentDir + '\配置.ini';
  inifile:=TIniFile.Create(PChar(Filename));
  inifile.WriteBool('小节名1','关键字4',2020-8-8); //写入ini=====》报错!
  Keyword4:=inifile.ReadDate('小节名1','关键字4',Keyword4);   //读取ini
  ShowMessage(DateToStr(Keyword4)); 
  //inifile.DeleteKey('小节名','keyword4');     //删除关键字
  //inifile.EraseSection('小节名');
  inifile.free;                                                 //释放  或 写成 inifile.distory;
End;






=======================================================
//顶部uses小节加入IniFiles,
uses
    IniFiles,
==================================================
var
  inifile:TIniFile;        //定义ini文件  
  Filename:string;         //其文件名类型 
  Keyword1: string;
  Keyword2: Integer;
  Keyword3: Boolean;
  Keyword4: TDateTime;
  Keyword5: TDateTime;=================》看这行,对不?
  Keyword6: Real;
Begin
  Filename:=GetCurrentDir + '\配置.ini';
  inifile:=TIniFile.Create(PChar(Filename));
  inifile.WriteBool('小节名1','关键字5',18:58); //写入ini===============》这里报错
  Keyword5 := inifile.ReadTime ('小节名1','关键字5',Keyword5);   //读取ini
  ShowMessage(TimeToStr(Keyword5)); 
  //inifile.DeleteKey('小节名','keyword5');     //删除关键字
  //inifile.EraseSection('小节名');
  inifile.free;                                                 //释放  或 写成 inifile.distory;
End;

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lies2014 发表于 2021-9-12 10:57
本帖最后由 lies2014 于 2021-9-12 11:05 编辑

WriteBool的最后一个参数是布尔值,你这给的啥也不是,自然出错
https://docwiki.embarcadero.com/ ... omIniFile.WriteBool
猜想你是想要写入时间吧,应该用WriteString,最后一个参数将要写入的时间先转换成字符串
ini文件的写入支持Bool、String、Integer,分别对应不同的过程
 楼主| 冥界3大法王 发表于 2021-9-12 13:47
lies2014 发表于 2021-9-12 10:57
WriteBool的最后一个参数是布尔值,你这给的啥也不是,自然出错
https://docwiki.embarcadero.com/ ... om ...

@lies2014
对啊,读写INI;还有另外三种date、time、float(real已搞定)

date、time的变量类型

对应的格式不太明白到底咋写?
lies2014 发表于 2021-9-12 14:23
Delphi自带了源码和很多示例的,看这些是最快的学习手段,下面是fpc自带的例程,用法非常清楚:
[Pascal] 纯文本查看 复制代码
program inifmt;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, IniFiles, SysUtils
  { you can add units after this };

var
  ini: TCustomIniFile;
  x: Double;
  t: TTime;
  d: TDate;
  dt: TDateTime;
  iniName: String = 'test.ini';
  L: TStringList;
  i: Integer;

begin
  x := 1.2345;
  t := time();
  d := date();
  dt := now();

  ini := TMemIniFile.Create(iniName);
  ini.FormatSettings.DecimalSeparator := '|';
  ini.FormatSettingsActive := true;
  ini.WriteFloat('Data', 'float', 1.2345);
  ini.WriteTime('Data', 'time', t);
  ini.WriteDate('Data', 'date', d);
  ini.WriteDateTime('Data', 'datetime', dt);
  ini.Free;

  WriteLn('-----------------------------------------------------------');
  WriteLn('Ini file (direct file content)');
  WriteLn('-----------------------------------------------------------');
  L := TStringList.Create;
  L.LoadfromFile(ininame);
  for i:=0 to L.Count-1 do
    WriteLn(L[i]);
  L.Free;
  WriteLn;

  ini := TMemIniFile.Create(iniName);
  ini.FormatSettings.DecimalSeparator := '|';
  ini.FormatSettingsActive := true;
  x := ini.ReadFloat('Data', 'float', 0);
  t := ini.ReadTime('Data', 'time', 0);
  d := ini.ReadDate('Data', 'date', 0);
  dt := ini.ReadDateTime('Data', 'datetime', 0);
  ini.Free;

  WriteLn('------------------------------------------------------------------');
  WriteLn('Read input data from ini file (output using DefaultFormatSettings)');
  WriteLn('------------------------------------------------------------------');
  WriteLn('float = ', FloatToStr(x));
  WriteLn('time = ', TimeToStr(t));
  WriteLn('date = ', DateToStr(d));
  WriteLn('date/time = ', DateTimeToStr(dt));
  WriteLn;

  {$IFDEF MSWINDOWS}
  WriteLn('Press [ENTER] to quit...');
  ReadLn;
  {$ENDIF}
end.

免费评分

参与人数 1吾爱币 +4 热心值 +1 收起 理由
冥界3大法王 + 4 + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表