| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Расскажите что делает этот скрипт |
| Автор: Akina 2.9.2005, 09:55 | ||
| Предыстория. У знакомого были изрядные тормоза при открытии Вордовых документов. Системщик сказал что это - следствие запомненного Нетваревым клиентом выведенного из дерева сервера, и дал скрипт, который обрабатывает документ и исправляет ситуацию. Скрипт действительно ситуацию исправляет, но при этом исходный и исправленный файлы не отличаются ни на байт... Сам я в Перле полный ноль, и осваивать его мне не нужно. Однако очень хочется понять в чем все-таки проблема и как именно она вылечена. Кто сможет - объясните суть происходящего. Вот код скрипта:
Заранее спасибо. |
| Автор: chaos 2.9.2005, 10:25 | ||||
если коротко то вот что он делает
те если я все правельно понял 1) открывает файл/файлы переданный в командной строке 2) ищет в нем
где $s = \_\\\_\\\_M\_A\_R\_S\_\\ , где _ - 0 символ если находит то делает бак, а файл переданный в коммандной строке перезаписывает, только перед этим каждый символ из строки \_\\\_\\\_M\_A\_R\_S\_\\ (он ее нащел в файле) заменяет на \0 (нулевой) вот вроде и все скорее всего тк \\\\MARS\\ сетевой путь на который ворд лезит и поэтому что то происходит не ладное в момент этого лаза Добавлено @ 10:26 короче если я правельно все понял то он просто стирает сетевой путь! |
| Автор: sharq 2.9.2005, 12:22 |
| Akina если открыть doc файл на чтение и вывести его содержимое, то выводится что-то, но явно не содержимое (можешь сам попробовать), вроде в кодировке koi, но при конвертации в win ничего хорошего не получается. В общем, если в этом есть строка с МАРСом, то она заменяется на такую же только с со слешем и нулевым символом и файл переименовывается в *.bak, а если нет, то с файлом все окей! |
| Автор: chaos 2.9.2005, 12:29 | ||||||
покажи мне пжалста где это делается вот код
Добавлено @ 12:33 ради эксперимента
выведи это в файл и посмотри хекс |
| Автор: sharq 2.9.2005, 12:46 | ||
| chaos я это все делал Я не стал расписовать про замену с путем к МАРСу, т.к. это ты сделал А вот что выводит doc, когда пытаешься его вывести на экран я не знаю, но судя по коду, там может находиться и путь к МАРСу. Добавлено @ 12:48
|