Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как оставить в файле Х первых строк?

Ответить
Настройки темы
Как оставить в файле Х первых строк?
Dan Dan вне форума

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть файлик с таким содержанием:
"
1
2
3
4
5
6
"
Надо, удалить все, кроме первых пяти строк. Как это сделать на perl?

Отправлено: 19:24, 12-10-2002

 

Аватара для Guest

Guest


Профиль | Цитировать


Создать временный файл, скопировать туда первые пять строк, удалить старый файл и переименовать временный фал под именем старого.

Отправлено: 07:37, 14-10-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

Dan Dan вне форума Автор темы

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я пошел на irc и мне там посовевали способ получше
Код: Выделить весь код
 open(RE, "$counter_file");
 @indata = <RE>;
 close(RE);
 open(SAV, ">$counter_file");
 foreach $temp (@indata)
 {
        $counterzapis++;
        if ($counterzapis<=5)
        {
                print SAV $temp;
        }
 }

Отправлено: 16:14, 14-10-2002 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Dan
Совет Guest-а более надежен, к тому же мне приходилось сталкиваться с разным пониманием префикса > (и не только его, кстати) в имени открываемого файла на разных версиях разных перлов для Windows, так что тестируй чтоб хвост не остался.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 16:34, 14-10-2002 | #4

Dan Dan вне форума Автор темы

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


vasketsov
Это будет внутри скрипта, т.е туда никаких параметров внешних не проходит...
А что ненадежного, я не пойму? Вроде как раз все будет нормально. Объясните?

Отправлено: 18:02, 14-10-2002 | #5


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Dan
У тебя файл читается, потом открывается для записи и полностью очищается, и потом ты туда пишешь. А если дописать не успел?

Самый же безопасный и правильный вариант, да и самый простой, почему он сразу в голову не пришел только, это
1) открыть файл с префиксом +< (это открытие для чтения и записи, если файл есть, его содержимое сохраняется, если нет - он создается)
2) искать конец нужной строки.
3) установить конец файла в этом месте (возможно, придется обратить внимание на POSIX).
4) закрыть файл

Добавлено:

А про хвост - это я имел в виду, что в некоторых реализациях файл не очищается.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 13:06, 17-10-2002 | #6

Dan Dan вне форума Автор темы

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
У тебя файл читается, потом открывается для записи и полностью очищается, и потом ты туда пишешь. А если дописать не успел?
Т.е. если сервак зависнет в этот момент?

Отправлено: 15:05, 17-10-2002 | #7


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


Dan
или банальное веерное отключение электроэнергии BY CHUBAIS.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 16:45, 17-10-2002 | #8

Dan Dan вне форума Автор темы

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Но ведь вся IB написана так и ничего...

Вообще-то я сделал не так... У меня сначала (в foreach) все пишется в массив, а потом массив пишется в файл

Отправлено: 14:01, 18-10-2002 | #9


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Dan
Цитата:
Но ведь вся IB написана так и ничего...
Очень даже чего [я этого не говорил (а то самому же править придётся ), но при сеголняшней нагрузке случаются регулярные поглюкивания, ибо Мэтт даже флоком по человечески пользоваться не умеет.]

-------
http://ivank.ru


Отправлено: 22:07, 18-10-2002 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как оставить в файле Х первых строк?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать??? VladZombie Скриптовые языки администрирования Windows 70 08-09-2020 13:28
Интернет - Как оставить поддержку открытия MHT-файлов? _kuk_ Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 12 20-01-2011 18:13
Разное - [решено] Как запретить запись на usb-flash но оставить чтение? Gamover jr Microsoft Windows 2000/XP 7 10-06-2008 01:14
VBS/WSH/JS - Обработка строк в файле с помошью VBS rfcr Программирование и базы данных 3 07-03-2006 22:40
Как оставить только почту Guest Сетевые технологии 2 15-09-2004 22:57




 
Переход