Share Tips, Code Samples, etc. with the Visual Prolog community.
Peter Muraya
VIP Member
Posts: 147
Joined: 5 Dec 2012 7:29

Some lesson: which file is more updated than the other?

Unread post by Peter Muraya »

I needed to implement a predicate that tells me if one file is more updated than another. Here is how I went about it and the lesson I learnt.

Code: Select all

/* This predicated succeeds if the first file is more updated than the second one*/ predicates      is_more_updated:(string Filename1, string Filename2) determ. clauses      is_more_updated(Filename1, Filename2):-           /*           Get the GMT times when the files were last changed*/           file::getFileProperties(Filename1,_,_,_,_,Gmt1),           file::getFileProperties(Filename2,_,_,_,_,Gmt2),           /*           Now I need to find out which date/time is more recent and I tried the following:-                     Gmt1>Gmt2,!, %This compiled but gave me wrong results; then I tried:-                     compare(Gmt1, Gmt2) = ::greater,!, %This too compiled but gave me wrong results. Finally I tried (which worked):-*/           Time1=time::newFromGMT(Gmt1),           Time2=time::newFromGMT(Gmt2),           Time1:compare(Time2)=::greater.
Mutall Data Management Technical Support
User avatar
Thomas Linder Puls
VIP Member
Posts: 1419
Joined: 28 Feb 2000 0:01

Unread post by Thomas Linder Puls »

It is very strange that you have gotten wrong results when comparing the gmtTimeValue's directly, that should work. Notice that compare on time (which is actually gtmTime::compare) does actually just compare the gmtTimeValue's:

Code: Select all

clauses     compare(AnotherTime) = compare(gmtTimeValue, AnotherTime:gmtTimeValue).
Regards Thomas Linder Puls
Post Reply