home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2007 April / PCpro_2007_04.ISO / files / dsl / NVinst.exe / Scripts / Scripter / DeleteTooOldHosts.nvs < prev    next >
Encoding:
Text File  |  2007-02-10  |  1.4 KB  |  50 lines

  1. program DeleteTooOldHosts;
  2.  
  3. {
  4. This script deletes hosts that was not in online state more than
  5. specified by users cound of days.
  6. It does it once on start.
  7. }
  8.  
  9. var hst:TNVHost;
  10.     lchtm,strMaxDeltaDays:string;
  11.     year,month,day,hour,min,sec:cardinal;
  12.     dtm:TDateTime;
  13.     MaxDeltaDays,NextId:cardinal;
  14. begin
  15. strMaxDeltaDays:=ReadIni('DeleteTooOldHosts.nvs','MaxDeltaDays','10');
  16. if InputQuery('Delete old hosts','Enter max days count of host being offline:',strMaxDeltaDays) then
  17. begin
  18. MaxDeltaDays:=StrToIntDef(strMaxDeltaDays,10);
  19. hst:=TNVHost.create;
  20. NextId:=0;
  21.     repeat
  22.     hst.GetHost(NextId,0);
  23.     NextId:=hst.nextid;
  24.     if hst.id<>0 then
  25.         begin
  26.         if hst.GetMetaVar('ison')='off' then
  27.          begin
  28.          lchtm:=hst.GetMetaVar('lchtm');
  29.          if length(lchtm)=19 then
  30.           begin
  31.           try
  32.            hour:=StrToInt(copy(lchtm,1,2));
  33.            min:=StrToInt(copy(lchtm,4,2));
  34.            sec:=StrToInt(copy(lchtm,7,2));
  35.            year:=StrToInt(copy(lchtm,10,4));
  36.            month:=StrToInt(copy(lchtm,15,2));
  37.            day:=StrToInt(copy(lchtm,18,2));
  38.            dtm:=EncodeDateTime(year,month,day,hour,min,sec,0);
  39.            if DaysBetween(dtm,Now)>MaxDeltaDays then hst.DelHost;
  40.            except
  41.            end;
  42.           end;
  43.          end;
  44.         end;
  45.     until NextId=0;
  46. hst.Free;
  47. WriteIni('DeleteTooOldHosts.nvs','MaxDeltaDays',IntToStr(MaxDeltaDays));
  48. end;
  49. end.
  50.