![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
alt2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Есть ли возможность "отмотать" назад позицию при построчном чтении файла, на некоторое количество строк (не байт)?
Искал-искал. Не нашел. |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
запомнить и отмотать
|
|||
|
||||
alt2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Чем отмотать? Перечитать с начала? |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
perldoc -f seek
|
|||
|
||||
alt2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Seek побайтный. Предложение помнить ответ tell для всех пройденных строк (сейчас их 10 млн.) заманчивое, но у меня и другие костыльные решения придумались - менее затратные. Хотелось бы напрямую - перемоткой строк. Если возможно. Это сообщение отредактировал(а) alt2 - 4.12.2012, 17:39 |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
невозможно.
|
|||
|
||||
alt2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
Ясно. Спасибо. |
|||
|
||||
noize |
|
|||
![]() 5.18.2 ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 10.7.2010 Где: СПб Репутация: 3 Всего: 3 |
прочитать весь файл в массив:
my @array = <FILE>; после чего можно работать с нужной строкой строкой. |
|||
|
||||
DurRandir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
Ну если вы уже читаете и как-то разбили на строки - то у вас есть их длина. Храните длину последних N прочитанных строк, надо вернуться назад - вычитаете из текущей позиции n слагаемых, удаляете их из этого списка.
|
|||
|
||||
slavenk |
|
|||
TheAthlete ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
Можете использовать модуль Tie::File. В данном случае строки файла представляются в виде массива, единственное предостережение - изменение значения массива изменяет строку файла, если не был указан модификатор "только чтение" в конструкторе
|
|||
|
||||
alt2 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 8.11.2011 Репутация: нет Всего: нет |
А вот это интересный ход. Спасибо. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |