parent
5edd6251c4
commit
d78a8a0f7c
|
|
@ -1547,9 +1547,13 @@ type TBBState =class //
|
|||
|
||||
end
|
||||
type TTsfFileParser = class //Îļþ½âÎö
|
||||
private
|
||||
fiofs;
|
||||
public
|
||||
function Create();
|
||||
begin
|
||||
FCacheDir :=TS_GetUserProfileHome()+"TslSynMemo"+ioFileseparator()+"cmpCaches";// d["value"];
|
||||
fiofs := ioFileseparator();
|
||||
FCacheDir :=TS_GetUserProfileHome()+"TslSynMemo"+fiofs+"cmpCaches";// d["value"];
|
||||
//FCacheAbsFileName := FCacheDir+"\\cacheabstruct.stm";
|
||||
//FFileWorker := new TThreadWorker("this.OnMessage :=findfunction('UTslSynMemo.FileSaveThreader') ;");
|
||||
FFindDirs := array();
|
||||
|
|
@ -1929,36 +1933,20 @@ type TTsfFileParser = class //
|
|||
return ReadParseredFile(n+".tsf");
|
||||
end
|
||||
end
|
||||
function ParserFiles(dir,FFileNames,mf);
|
||||
begin
|
||||
dirs := FileList("",dir+ioFileseparator()+"*");
|
||||
for i,v in dirs do
|
||||
begin
|
||||
fn := v["FileName"] ;
|
||||
if pos("D",v["Attr"]) and not( fn in array(".","..")) then
|
||||
begin
|
||||
ParserFiles(dir+ioFileseparator()+fn,FFileNames,mf);
|
||||
end
|
||||
end
|
||||
dirs := FileList("",dir+ioFileseparator()+"*.tsf");
|
||||
for i,v in dirs do
|
||||
begin
|
||||
if not(pos("D",v["Attr"])) then
|
||||
function parserafile(dir,v);
|
||||
begin
|
||||
fn := lowercase( v["FileName"]);
|
||||
if FFileNames[fn] then continue;
|
||||
if fn=mf then continue;
|
||||
pfn := dir+ioFileseparator()+fn;
|
||||
sz := filesize("",pfn);
|
||||
fl := FileList("",pfn);
|
||||
if FFileNames[fn] then return ;
|
||||
if fn=mf then return ;
|
||||
pfn := dir+fiofs+fn;
|
||||
sz := v["Size"];
|
||||
flt := v["Time"];
|
||||
d := ReadParseredFileTime(fn);
|
||||
FFileNames[fn] := pfn;
|
||||
//echo "\r\n",tostn(fn),"===",v["Attr"];
|
||||
if ifstring(d) and d=fl[0,"Time"] then
|
||||
if ifstring(d) and d=flt then
|
||||
begin
|
||||
//FCacheS[fn]
|
||||
ReadParseredFile(fn);
|
||||
continue;
|
||||
return ;
|
||||
end
|
||||
if readFile(rwRaw(),"",pfn,0,sz,rdd) then
|
||||
begin
|
||||
|
|
@ -1990,21 +1978,38 @@ type TTsfFileParser = class //
|
|||
if not ifarray(FCacheS) then FCacheS := array();
|
||||
FCacheS[fn] := r;//new tparserdobject( r);
|
||||
FFilePaths[fn] := pfn;
|
||||
WriteParseredFile(fn,r,fl[0,"Time"]);
|
||||
WriteParseredFile(fn,r,flt);
|
||||
end
|
||||
end
|
||||
function ParserFiles(dir,FFileNames,mf);
|
||||
begin
|
||||
dirs := FileList("",dir+fiofs+"*");
|
||||
for i,v in dirs do
|
||||
begin
|
||||
fn := v["FileName"] ;
|
||||
|
||||
if not(pos("D",v["Attr"])) and (1=ParseRegExpr("\\.tsf$",fn,"i",m,mp,ml)) then //tsfÎļþ´¦Àí
|
||||
begin
|
||||
parserafile(dir,v);
|
||||
end
|
||||
if pos("D",v["Attr"]) and not( fn in array(".","..")) then //×ÓĿ¼²éÕÒ
|
||||
begin
|
||||
ParserFiles(dir+fiofs+fn,FFileNames,mf);
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
function ModifyFname(n);
|
||||
begin
|
||||
nn := lowercase(n);
|
||||
dg := getmsgd_Crc32(nn);//GetMsgdigest(nn,0);
|
||||
return dg[1]+ioFileseparator()+n;
|
||||
return dg[1]+fiofs+n;
|
||||
end
|
||||
function WriteParseredFile(n,d,t);
|
||||
begin
|
||||
f1 := FCacheDir+ioFileseparator()+ModifyFname(n)+".p";
|
||||
f2 := FCacheDir+ioFileseparator()+"lasttime"+ioFileseparator()+ModifyFname(n)+".t";
|
||||
iofs := fiofs;
|
||||
f1 := FCacheDir+iofs+ModifyFname(n)+".p";
|
||||
f2 := FCacheDir+iofs+"lasttime"+iofs+ModifyFname(n)+".t";
|
||||
CreateDirWithFileName(f1);
|
||||
CreateDirWithFileName(f2);
|
||||
exportfile(ftstream(),"",f1,d);
|
||||
|
|
@ -2014,7 +2019,7 @@ type TTsfFileParser = class //
|
|||
begin
|
||||
if FCacheDir then
|
||||
begin
|
||||
fn := FCacheDir+ioFileseparator()+"lasttime"+ioFileseparator()+ModifyFname(n)+".t";
|
||||
fn := FCacheDir+fiofs+"lasttime"+fiofs+ModifyFname(n)+".t";
|
||||
if importfile(ftstream(),"",fn,d)=1 then return d;
|
||||
end
|
||||
end
|
||||
|
|
@ -2031,7 +2036,7 @@ type TTsfFileParser = class //
|
|||
FFilePaths[lowercase(n)] := d["fullpath"];
|
||||
return d;
|
||||
end
|
||||
fn := FCacheDir+ioFileseparator()+ModifyFname(n)+".p";
|
||||
fn := FCacheDir+fiofs+ModifyFname(n)+".p";
|
||||
if importfile(ftstream(),"",fn,d)=1 and ifarray(d) then
|
||||
begin
|
||||
FCacheS[lowercase(n)] := r;//new tparserdobject(d);
|
||||
|
|
|
|||
Loading…
Reference in New Issue