Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl и файлы, дружба на век. HELP, Работа с файлами 
:(
    Опции темы
EvGeniyLand
Дата 3.2.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.2.2008

Репутация: нет
Всего: нет



Добрый день. У меня такой вопрос. Можно ли простой командой сделать так что бы текст добавлялся в начало файла, а не в конец?

Добавление в конец файла:
open (FILE,">>prog/file_name");
print FILE "какой то текст\n";
close (FILE);

А сразу же в начало?
PM MAIL   Вверх
ginnie
Дата 3.2.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



Уважаемый EvGeniyLand, простой командой не получится. Можно воспользоваться модулем File::Data, функция prepend(), либо руками (грузим содержимое в пямять, пишем в файл то, что нужно в начало, затем остальное содержимое из памяти, либо создаем временный файл, пишем в него, то, что нужно, дописываем небольшими блоками (чтобы не расходовать память) содержимое исходного файла, переименовываем временный файл).
P.S. PerlFAQ

Это сообщение отредактировал(а) ginnie - 3.2.2008, 22:55


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
wolter
Дата 3.2.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 28.1.2008

Репутация: нет
Всего: нет



Нет ничего проще! 
создаем новый фаил
в него вставлем ту строку которая должна быть вначеле
потом добовляем в этот фаил содержимое стараго файла
потом старыл удаем
а новый переиминовываем именем старого
вот и всеновые данные в начале файла smile 



Уважаемый мнеб твои проблеммы с перлом )))

Это сообщение отредактировал(а) wolter - 3.2.2008, 22:54
PM MAIL   Вверх
amg
Дата 4.2.2008, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(EvGeniyLand @  3.2.2008,  22:38 Найти цитируемый пост)
Можно ли простой командой сделать так что бы текст добавлялся в начало файла, а не в конец?
Здесь важно понимать, что легко и просто этого не сделать ни в одном языке программирования. Просто ни одна (насколько я знаю) из современных файловых систем не позволяет этого без зачитывания и последующего записывания всего файла.

PM MAIL   Вверх
Itsys
Дата 4.2.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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
PM MAIL WWW Skype   Вверх
shamber
Дата 4.2.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Itsys, а если файл на 200 метров
PM MAIL Jabber   Вверх
amg
Дата 4.2.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(Itsys @  4.2.2008,  15:15 Найти цитируемый пост)
А чем это не просто?
Под "просто" я имел в виду не объем кода (который можно и сократить, возпользовавшись внешней функцией, см. пост ginnie), а "усилия", затраченные на эту операцию операционной/файловой системой. С человеческой точки зрения, добавить/убрать строку из начала и из конца гигабайтного файла файла выглядят по сложности одинаковыми, хотя на самом деле для операционной системы ресурсоемкость этих задач очень разная.
PM MAIL   Вверх
EvGeniyLand
Дата 5.2.2008, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.2.2008

Репутация: нет
Всего: нет



Всем большое спасибо !!! Проблема в том, что файлы действительно большие и записывать инфу в память не очень хочется... придётся как ни будь хитрить. )))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.