合并两个ini文件,思路?
解决方案 »
- delphi IDE的问题。还是我的问题。ASM代码里不能有注释?
- 再问一段代码!
- 网格录入问题!!!!TADVStringGrid
- 救命!在Delphi中日期型为Double类型,如何从他的整数部分得到包含的年、月、日?
- 要怎样才能删掉StringGrid中的空行?
- 关于窗体显示的问题,请教大虾!
- ~~~~ 请教delphi的若干问题~~~~~~
- 高手请进!!~~
- 请问高手怎样寻找IE的句柄?目的是禁止访问任何网站?!谢谢?
- new过程----一个为指针变量分配内存的问题!
- 为什么我在delphi中加入像版权字符 ©2005 结果版权符号变成了 ? 号???
- 服务器端已经生成考号,如何保证客户端得到连续的考号?
inifileA,inifileB: TIniFile;
/////////////////////////////
procedure TForm1.Button2Click(Sender: TObject);
var
fileAStream: TFileStream;
fileBstream: TFileStream;
fileCstream: TFileStream;
begin
inifileA:= TIniFile.Create('c:\a.ini');
inifileB:= tinifile.Create('c:\b.ini');
inifileA.WriteString('AAA','AAA','A');
inifileb.WriteString('BBB','BB','B');
inifilea.Free;
inifileb.Free;
try
fileAStream:= TFileStream.Create('c:\a.ini',fmOpenRead);
fileBstream:= TFileStream.Create('c:\b.ini',fmOpenRead);
fileCstream:= TFileStream.Create('c:\c.ini',fmCreate);
fileCstream.CopyFrom(fileAStream,fileAStream.Size);
fileCstream.Position:= fileAStream.Size;
fileCstream.CopyFrom(fileBstream,fileBstream.Size);
finally
fileAStream.Free;
fileBStream.Free;
fileCStream.Free;
end;
end;
var
Src,Dst:Tinifile;
SList,KList:Tstringlist;
i,j:integer;
begin
Src:=Tinifile.Create(ASrcIniFile); sList:=Tstringlist.Create;
src.ReadSections(Slist);
if slist.Count > 0 then
begin
Klist:=Tstringlist.Create;
dst:=Tinifile.Create(AdstInifile);
try
for i:=0 to slist.Count -1 do
begin
src.ReadSection(slist[i],Klist);
if Klist.Count > 0 then
for j:=0 to Klist.Count -1 do
dst.WriteString(slist[i],klist[j],src.ReadString(slist[i],klist[j],''));
end;
finally
dst.Free;
klist.Free;
end;
end;
src.Free;
slist.Free;
end;使用上面的方法,可以将一个INI文件重新写为另一个ini文件,如果你要合并两个ini文件,只要想这样的使用
ReWriteINi(Opendialog1.FileName,'c:\222.ini');
ReWriteINi(Opendialog2.FileName,'c:\222.ini');这样就可以将两个文件存为一个ini文件里了,如果里面有重复项目,会自动重新写拉。。保证唯一特性。。