Страница 1 из 1

Подсветка по разнице дат у двух файлов

Добавлено: Вт фев 13, 2007 20:31
valexiev
Помогите умельцъ, мне нужно что-то очень особенное: если файл
"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.


[mod="Avada"]Перемещено из Секретов и советов в Автоматизацию.[/mod]

Добавлено: Ср фев 14, 2007 09:58
Вахмурка
Можно только сравнивать дату файла с системной датой, а не дату одного файла с датой другого.
Не совсем по теме, но http://powerpro.wincmd.ru/Scripts/FileAge.htm.
Это я к чему. Можно написать скрипт, который бы находил такие файлы (с нужной разницей по дате), а потом как-то определял их закраску. Один из способов - комментарий в descript.ion.

Добавлено: Ср фев 14, 2007 11:32
Batya
Нужно использовать Script Content Plugin.
Только для скрипта нужны более четкие условия.
Я не очень силен в масках, но, вроде, маска "(.*)QR\d.*" не совсем верна - у файлов разные окончания (помимо добавки QR\d). По каким условиям точно сопоставить эти два файла?

Добавлено: Ср фев 14, 2007 23:22
valexiev
Вахмурка писал(а):http://powerpro.wincmd.ru/Scripts/FileAge.htm.
Можно написать скрипт, который бы находил такие файлы (с нужной разницей по дате).
Ну ето я понимаю, но потом как сказать ето фильтру чтоб он потом определил закраску?
Один из способов - комментарий в descript.ion
Вот ето я не понял.

Изчисление разницъ дней до "базового" файла

Добавлено: Чт фев 15, 2007 02:14
valexiev
Batya писал(а):Нужно использовать Script Content Plugin.
Вот ето да! Попробую (никогда не жаль употребить 3-4ч на автоматицазию которая потом может сохранить мне аж 3-4 минутъ! :-))
Только для скрипта нужны более четкие условия.
Условия такие: на каждъй основной файл у меня еще 4 "QR" файла (ето вам PRINCE2)

Код: Выделить всё

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 файлъ которъе не новее основного файла.
По каким условиям точно сопоставить эти два файла?
Одинаковое начало имени, до "QR".

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

Код: Выделить всё

'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:

Код: Выделить всё

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