LINUX.ORG.RU

Поиск файла

 


0

1

Здравствуйте, добрые люди!

Написал такоую конструкцию:

package require fileutil

proc exact_match { name } {
    return [ string match qmake [ ::file tail $name ] ]
}

proc is_qmake { name } {
    return [ exact_match $name ] && [ ::file isfile $name ] 
}

set files [ ::fileutil::find /usr is_qmake ]
foreach file $files {
    puts "$file: [ file type $file ]"
}

Вроде exact_match и is_qmake работают, как надо, но выводит почему-то любые файлы. Объсните, плиз, что не так.


В процедуре is_qmake команда return у тебя видит три аргумента: [exact_match $name], && и [::file isfile $name]. Первый аргумент воспринимается как название опции, второй — как значение опции и, наконец, третий возвращается. Так что is_qmake эквивалентно file isfile (почему return не проверяет имя опции на вменяемость, не знаю). Вот и возвращаются все файлы.

TeopeTuK ★★★★
()
Ответ на: комментарий от TeopeTuK
if { [ exact_match $name ] && [ file isfile $name ] } {
    return 1
}
return 0

вроде, помогает. Спасибо!

braboar
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.