![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| EvGeniyLand |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.2.2008 Репутация: нет Всего: нет |
Добрый день. У меня такой вопрос. Можно ли простой командой сделать так что бы текст добавлялся в начало файла, а не в конец?
Добавление в конец файла: open (FILE,">>prog/file_name"); print FILE "какой то текст\n"; close (FILE); А сразу же в начало? |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый EvGeniyLand, простой командой не получится. Можно воспользоваться модулем File::Data, функция prepend(), либо руками (грузим содержимое в пямять, пишем в файл то, что нужно в начало, затем остальное содержимое из памяти, либо создаем временный файл, пишем в него, то, что нужно, дописываем небольшими блоками (чтобы не расходовать память) содержимое исходного файла, переименовываем временный файл).
P.S. PerlFAQ Это сообщение отредактировал(а) ginnie - 3.2.2008, 22:55 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| wolter |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 28.1.2008 Репутация: нет Всего: нет |
Нет ничего проще!
создаем новый фаил в него вставлем ту строку которая должна быть вначеле потом добовляем в этот фаил содержимое стараго файла потом старыл удаем а новый переиминовываем именем старого вот и всеновые данные в начале файла Уважаемый мнеб твои проблеммы с перлом ))) Это сообщение отредактировал(а) wolter - 3.2.2008, 22:54 |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
|
|||
|
||||
| Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 2 Всего: 34 |
А чем это не просто?
open (FILE,"<prog/file_name"); my @f = <FILE>; close (FILE); open (FILE,">prog/file_name"); print FILE "какой то текст\n"; print FILE @f; close (FILE); А? Это сообщение отредактировал(а) Itsys - 4.2.2008, 15:16 |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
Itsys, а если файл на 200 метров
|
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Под "просто" я имел в виду не объем кода (который можно и сократить, возпользовавшись внешней функцией, см. пост ginnie), а "усилия", затраченные на эту операцию операционной/файловой системой. С человеческой точки зрения, добавить/убрать строку из начала и из конца гигабайтного файла файла выглядят по сложности одинаковыми, хотя на самом деле для операционной системы ресурсоемкость этих задач очень разная.
|
|||
|
||||
| EvGeniyLand |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.2.2008 Репутация: нет Всего: нет |
Всем большое спасибо !!! Проблема в том, что файлы действительно большие и записывать инфу в память не очень хочется... придётся как ни будь хитрить. )))
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |