如何根据INI文件判断哪些文件需要更新呢???(50分)

  • 主题发起人 主题发起人 redsuns2001
  • 开始时间 开始时间
R

redsuns2001

Unregistered / Unconfirmed
GUEST, unregistred user!
例如:
服务器上的版本文件信息是:
[FileList]
FileName1=AAA.xxx/13.0.1
FileName2=BBB.xxx/14.1.3
FileName3=CCC.xxx/11.4.0

而本地所保留的版本文件信息是:
[FileList]
FileName1=AAA.xxx/13.0.1
FileName2=BBB.xxx/14.1.2

如何通过程序判断出
BBB.xxx/14.1.3 和 CCC.xxx/11.4.0 这两个文件需要更新呢?
 
直接读出来比较大小就可以了呀 STRING 也是可以比较大小 的,如 CCC.xxx 这样INI没有的数据,可以给他设置默认值
 
详细点好吗?不太明白
 
function comparefile(f1,f2 : string;)
var
net_ini: TIniFile;
local_ini: TIniFile;
temp,filename,net_ver,local_ver : string ;
i : integer ;
begin
net_ini := TIniFile.Create(f1);
local_ini := TIniFile.Create(f2);
temp := net_ini.ReadString('FileList', FileName1, '') ;
i := pos('/',temp);
filename := copy(temp,1,i-1) ;
net_ver := copy(temp,i+1,100) ;
temp := local_ini.ReadString('FileList', FileName1, '') ;
i := pos('/',temp);
local_ver := copy(temp,i+1,100) ;
if net_ver > local_ver then ...
local_ini.Free; // INI读写完毕
net_ini.Free; // INI读写完毕
end ;
 
To mstar:
上面的我基本知道,但是本地版本文件和网络上的版本文件的对应关系不是一一对应的,例如网络上:filename1=aaa.xxx/13.0 而本地的filename1=bbb.xxx/13.0,所以这个如何判断呢?
 
如果网络的文件保证比本地齐全 那还是可以处理的 先把网络的所有文件信息读出来 然后保存到一个 TSTRINGLIST 或者 TLIST 里面去,然后再读出本地的 去这个 TSTRINGLIST 或者 TLIST 里找匹配的文件,然后再比较版本
 
我现在就是不知道如何在两具tlist中匹配呀!
还请你直接说出来呵,,谢谢!·!!!
 
早点说呀 浪费我好多时间
定义一个类
TExeDefine = Class (TObject) // 表名称和含义
Exename : String ;
Ver : String ;
end;
增加资料
var
t : TExeDefine
Begin
t := TExeDefine.create ;
Tstringlist.addobject(文件名,t);
end ;
比较
i := Tstringlist.indexof(文件名) ;
if i >= 0 then
比较 TExeDefine( Tstringlist.objects) 和你后来找到的版本


 
To mstar :
十分谢谢您,不过我初学,还是看不明白。能否将整个流程都写出来吗?另开100分谢过!!!
 
[?][?][?][?][?][?][?]
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部