![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Предыстория.
У знакомого были изрядные тормоза при открытии Вордовых документов. Системщик сказал что это - следствие запомненного Нетваревым клиентом выведенного из дерева сервера, и дал скрипт, который обрабатывает документ и исправляет ситуацию. Скрипт действительно ситуацию исправляет, но при этом исходный и исправленный файлы не отличаются ни на байт... Сам я в Перле полный ноль, и осваивать его мне не нужно. Однако очень хочется понять в чем все-таки проблема и как именно она вылечена. Кто сможет - объясните суть происходящего. Вот код скрипта:
Заранее спасибо. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
если коротко то вот что он делает
те если я все правельно понял ![]() 1) открывает файл/файлы переданный в командной строке 2) ищет в нем
где $s = \_\\\_\\\_M\_A\_R\_S\_\\ , где _ - 0 символ если находит то делает бак, а файл переданный в коммандной строке перезаписывает, только перед этим каждый символ из строки \_\\\_\\\_M\_A\_R\_S\_\\ (он ее нащел в файле) заменяет на \0 (нулевой) вот вроде и все скорее всего тк \\\\MARS\\ сетевой путь на который ворд лезит и поэтому что то происходит не ладное в момент этого лаза ![]() Добавлено @ 10:26 короче если я правельно все понял то он просто стирает сетевой путь! Это сообщение отредактировал(а) chaos - 2.9.2005, 11:14 |
||||
|
|||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Akina если открыть doc файл на чтение и вывести его содержимое, то выводится что-то, но явно не содержимое (можешь сам попробовать), вроде в кодировке koi, но при конвертации в win ничего хорошего не получается.
В общем, если в этом есть строка с МАРСом, то она заменяется на такую же только с со слешем и нулевым символом и файл переименовывается в *.bak, а если нет, то с файлом все окей! -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
покажи мне пжалста где это делается вот код
Добавлено @ 12:33 ради эксперимента
выведи это в файл и посмотри хекс Это сообщение отредактировал(а) chaos - 2.9.2005, 12:30 |
||||||
|
|||||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
chaos я это все делал
![]() ![]() Я не стал расписовать про замену с путем к МАРСу, т.к. это ты сделал ![]() А вот что выводит doc, когда пытаешься его вывести на экран я не знаю, но судя по коду, там может находиться и путь к МАРСу. Добавлено @ 12:48
![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |