Подсветка по разнице дат у двух файлов
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Подсветка по разнице дат у двух файлов Author: valexiev PostPosted: Tue Feb 13, 2007 21:31
    —
Помогите умельцъ, мне нужно что-то очень особенное: если файл
"mPay2 DOC M.1.PM 1.0 QR001 Quality Review Sign-off.doc" новее чем файл
"mPay2 DOC M.1.PM 1.0 - Project Mandate.doc"
на больше чем 1д то надо разкрасить его одним цветом, а если не новее то другим.

Тоест нужен фильтр которъй находил бъ файл "(.*)QR\d.*", но только если он новее чем файл "\1 - .*" хотя бъ на 1д.

Пожалуйста если не трудно, дайте PM или емаил на vladimir собака sirma точка bg. Спасибо за все ответъ!

CaptainFlint:
Сообщение вынесено в отдельную ветку, поскольку оно не относится к обсуждению TCKB.


 !  Avada:
Перемещено из Секретов и советов в Автоматизацию.

#2:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Feb 14, 2007 10:58
    —
Можно только сравнивать дату файла с системной датой, а не дату одного файла с датой другого.
Не совсем по теме, но http://powerpro.wincmd.ru/Scripts/FileAge.htm.
Это я к чему. Можно написать скрипт, который бы находил такие файлы (с нужной разницей по дате), а потом как-то определял их закраску. Один из способов - комментарий в descript.ion.

#3:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Feb 14, 2007 12:32
    —
Нужно использовать Script Content Plugin.
Только для скрипта нужны более четкие условия.
Я не очень силен в масках, но, вроде, маска "(.*)QR\d.*" не совсем верна - у файлов разные окончания (помимо добавки QR\d). По каким условиям точно сопоставить эти два файла?

#4:  Author: valexiev PostPosted: Thu Feb 15, 2007 00:22
    —
Вахмурка wrote:
http://powerpro.wincmd.ru/Scripts/FileAge.htm.
Можно написать скрипт, который бы находил такие файлы (с нужной разницей по дате).

Ну ето я понимаю, но потом как сказать ето фильтру чтоб он потом определил закраску?

Quote:
Один из способов - комментарий в descript.ion

Вот ето я не понял.

#5: Изчисление разницъ дней до "базового" файла Author: valexiev PostPosted: Thu Feb 15, 2007 03:14
    —
Batya wrote:
Нужно использовать Script Content Plugin.

Вот ето да! Попробую (никогда не жаль употребить 3-4ч на автоматицазию которая потом может сохранить мне аж 3-4 минутъ! Smile)

Quote:
Только для скрипта нужны более четкие условия.


Условия такие: на каждъй основной файл у меня еще 4 "QR" файла (ето вам PRINCE2)
Code:
mPay2 DOC M.1.PM 1.0 - Project Mandate.doc
mPay2 DOC M.1.PM 1.0 QR001 Quality Review Sign-off.doc
mPay2 DOC M.1.PM 1.0 QREL001-1 Quality Review Error List.doc
mPay2 DOC M.1.PM 1.0 QRFAL001-1 Quality Review Follow-up Action List.doc

Хочу раскрасить QR файлъ которъе не новее основного файла.

Quote:
По каким условиям точно сопоставить эти два файла?

Одинаковое начало имени, до "QR".

Так.. написал, и даже работает!
Code:

'Script for Script_WDX
' (c) Vladimir Alexiev <vladimir@sirma.bg>

' Given a "QR" file such as
' mPay2 DOC M.1.PM 1.0 QR001 Quality Review Sign-off.doc
' Find the "base file" such as
' mPay2 DOC M.1.PM 1.0 - Project Mandate.doc
' And then return the date difference between the "QR" and "base" file in days.
' Also returns a sign (+) or (-) depending on whether the difference is >=5d or less.
' For example: 0 (-), 4 (-), 5(+), 10 (+)

'filename = "mPay2 DOC M.1.PM 1.0 QR001 Quality Review Sign-off.doc"

content = ""

set re = new regexp
set reNotbase = new regexp
re.pattern = "^(.* )1\.0 QR(FAL)?0" ' interesting QR files
reNotbase.pattern = "^(.* )1\.0 QR" ' not "base" files: these are all QR files
set matches = re.execute (filename)

if matches.count > 0 then
  prefix = matches(0).submatches(0)
  set fso = CreateObject("Scripting.FileSystemObject")
  for each basefile in fso.getFolder(".").files
    basename = basefile.name
    if prefix = left (basename, len(prefix)) and not reNotbase.test(basename) then
      dat = fso.getFile(filename).dateLastModified
      basedat = fso.GetFile(basename).dateLastModified
      diff = DateDiff ("d", basedat, dat) ' or "h" for hours
      if diff < 5 then
        sign = "(-)"
      else
        sign = "(+)"
      end if
      content = diff & " " & sign
      exit for
    end if
  next
  set fso = nothing
end if

set matches = nothing
set re = nothing
set reNotbase = nothing

'msgbox content


script.ini:
Code:

[QR-date-diff]
Script=QR-date-diff.vbs
LongName=0
ParseDirs=0



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group