Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 6132|回复: 6

在wince下使kol-ce支持iniFile中文的方法

[复制链接]

该用户从未签到

发表于 2009-3-5 09:47:22 | 显示全部楼层 |阅读模式
    kol-ce在PC模式下可以利用其重载的PiniFile完美支持中文,但编译目标改为wince模式后,如何改程序都不能使piniFile类支持中文,英文和数字正常的很。
  通过分析kol.pas代码,发现在PC模式下调用的是kol.pas里的函数,而在wince模式下调用的是KOLCE_IniFile.inc里的函数,OK,修改其中的FindKey函数,将Value:=Trim(S)改为Value:=S,搞定

评分

参与人数 1威望 +10 收起 理由
猫工 + 10 优秀文章

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2009-7-23 07:59:41 | 显示全部楼层
顶!!!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-7-23 09:02:53 | 显示全部楼层
谢谢楼主共享自己的经验。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-8-9 10:08:43 | 显示全部楼层
楼主,我将

FindKey函数,将Value:=Trim(S)改为Value:=S

重新编译安装了KOL-CE,还是不支持中文,很奇怪!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2009-8-9 10:21:44 | 显示全部楼层
【Wince版本】
FindKey修改:

function TIniFile.FindKey(Key: String; First, Last: Integer; var Value: String): Integer;
var i, k: Integer;
    S: String;
begin
  Result:= -1;
  Key:= Trim(Key);
  for i:= First to Last do begin
    S:= fData.Items;
    k:= Pos('=', S);
    if k > 0 then begin
      if AnsiCompareStrNoCase(Key, Trim(Copy(S, 1, k-1))) = 0 then Result:= i;
      if Result >= 0 then begin
        Delete(S, 1, k);
        //Value:= Trim(S);
        Value:= S;   // 修改这句
        k:= Length(Value);
        if (k > 0) and (Value[1] = '"') and (Value[k] = '"') then begin
          Delete(Value, k, 1); Delete(Value, 1, 1);
        end;
        Exit;
      end;
    end;
  end;
end;      

我封装的函数

procedure WriteIniValue(const SectionName,KeyName,Value:string);
var
  IniIniFile;
  IniFileName:string;
begin
IniFileName := ParamStr(0);
IniFileName:= ChangeFileExt(IniFileName,'.Ini');
try
  Ini:= OpenIniFile(IniFileName);
  Ini.Mode:= ifmWrite;
  Ini.Section:= SectionName;
  ini.ValueString(KeyName,Value);

finally
   ini.Free;
end;

end;   

调用:
WriteIniValue('ShutDown','版本','我的e家');  

结果为:
[ShutDown]
=
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-2-6 15:59:14 | 显示全部楼层
我改了也不能写入中文值啊???  什么回事,,
改了能读入,但不能写
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-2-16 21:36:14 | 显示全部楼层
不行的。。。
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 20:56 , Processed in 0.039039 second(s), 14 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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