INI 和资源文件 ( 积分: 50 )

  • 主题发起人 主题发起人 SP229
  • 开始时间 开始时间
S

SP229

Unregistered / Unconfirmed
GUEST, unregistred user!
我已把INI文件放到资源文件中
(M_NSize Ini M_NSize.ini)
并且我用下面的过程已把它读到流中,我的问题是如何不把它保存到本而在流中象操作INI一样操作它?
procedure LoadResIni(MS: TMemoryStream; N: integer);
var
R: TResourceStream;
begin
case N of
1:
R:=TResourceStream.Create(HInstance, 'M_NSize', 'Ini');
2:
R:=TResourceStream.Create(HInstance, 'W_NSize', 'Ini');
3:
R:=TResourceStream.Create(HInstance, 'T_NSize', 'Ini');
else
end;
R.SaveToStream(MS);
R.Free;
end;
 
像INI一样操作可能不太行,操作ini的API都是需要文件名的
不过可以考虑将Stream读取到TStrings里面用Name,Value应该可以解决
没有试过
 
有没有人试过
 
同意Toysun,因为ini就是个文本文件,完全可以当字符串来读

或者你把流存到临时文件夹里,再操作
 
那么能否把这个存到字符列表中,然后想办法象操作INI一样操作这个字符列表?
 
TMemIniFile在IniFiles.pas中,
 
to e-
看不懂,我这个资源中的INI如何跟它关联?这个FileName是不是要在本上的一个文件名?
constructor TMemIniFile.Create(const FileName: string);
begin
inherited Create(FileName);
FSections := THashedStringList.Create;
{$IFDEF LINUX}
FSections.CaseSensitive := True;
{$ENDIF}
LoadValues;
end;
 
它和INI一样啊
procedure TFrmSize.Button1Click(Sender: TObject);
var
ii: tmeminifile;
begin
ii:=tmeminifile.Create('./M_NSize.ini');
ii.ReadSections(combobox1.Items);
ii.Free;
end;
 
功能是和TIniFile一样,但处理方法不一样,是把文件读到内存,应该能改为从资源载入
 
关注
---------------------------------------------------------------------------------------http://www.waibaoinfo.com 外包信息网 - 专业的外包项目发布和承接平台
 

Similar threads

后退
顶部