1 changed files with 47 additions and 0 deletions
@ -0,0 +1,47 @@
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env tclsh |
||||
|
||||
#Создан: Пн 28 апр 2014 21:31:36 |
||||
#Изменён: Вт 29 апр 2014 08:45:11 |
||||
|
||||
#Информация о файлах плагинов игры TES III Morrowind |
||||
proc pluginInfo {pname} { |
||||
#Открытие файла |
||||
set plugin [open $pname r] |
||||
#Чтение заголовка |
||||
read $plugin 32 |
||||
|
||||
#Автор |
||||
set author [regsub -all {\x00} [encoding convertfrom cp1251 [read $plugin 32]] {}] |
||||
#Описание |
||||
set desc [regsub -all {\x00} [encoding convertfrom cp1251 [read $plugin 250]] {}] |
||||
#Требования |
||||
#Начало секции |
||||
read $plugin 12 |
||||
#Удаление сигнатур, пустых строк, "хвоста" секции |
||||
regsub -all {DAT.*?MAST} [encoding convertfrom cp1251 \ |
||||
[read $plugin 180]] "\n" requ |
||||
regsub -all "\n+" $requ "\n" requ |
||||
regsub -all {DAT.*|ST|\x00|[^\w\.\n ]} $requ {} requ |
||||
|
||||
#Отображение зависимостей |
||||
set depends "" |
||||
foreach key [split $requ "\n"] { |
||||
append depends "\n+ $key" |
||||
} |
||||
|
||||
file stat $pname crtime |
||||
|
||||
format "\[%s\]\n\n%s\n\n%s\n%s\n" [file tail $pname] $author [fmt $desc] $depends |
||||
} |
||||
|
||||
#Форматирование длинных строк |
||||
proc fmt {string} { |
||||
regsub -all -- {.{35,45} } $string "\&\n" |
||||
} |
||||
|
||||
if {$argv == ""} { |
||||
puts stderr "USAGE: [file tail $argv0] file.esp" |
||||
} else { |
||||
puts [pluginInfo [lindex $::argv 0]] |
||||
} |
||||
|
Loading…
Reference in new issue