Forum Webscript.Ru

Программирование => Perl => Тема начата: Timur S. от 30 Октября 2002, 17:08:34

Название: Как записать в начало файла данные переменной.
Отправлено: Timur S. от 30 Октября 2002, 17:08:34
Как записать в начало файла данные переменной.
Название: Как записать в дачало файла данные переменной.
Отправлено: mike от 30 Октября 2002, 17:30:35
perldoc -f open
perldoc -f print
perldoc -f close
Название: Как записать в дачало файла данные переменной.
Отправлено: SteelRat от 30 Октября 2002, 17:34:25

open(FILE, " @FILE=;
close(FILE);

open(FILE, ">file");
print FILE "$datastring"."\\n";
print FILE @FILE;
close(FILE);

Этож элементарно.
Если и этого не знаешь, срочно читай доки!
Название: Как записать в дачало файла данные переменной.
Отправлено: Chs от 30 Октября 2002, 23:01:11
Опять по два раза файлы открываем.:))
perldoc -f seek
Название: Как записать в дачало файла данные переменной.
Отправлено: SteelRat от 30 Октября 2002, 23:22:41
Зато на пальцах.
PS: Щас seek попробовал: хрень какая-то:
#!/usr/bin/perl
   $datastring=\'Yo!\'."\\n";
   open(FILE, ">>file");
   seek FILE,0,0;
   print FILE "$datastring"."\\n";
   close(FILE)

Добавила в конец, как и положено...
Ей, как я понял, нельзя при записи пользоваться?
У меня получилось только прочесть данные части файла...
Название: Как записать в дачало файла данные переменной.
Отправлено: КшЫуфксрук от 31 Октября 2002, 01:48:19
Если открывать файл с ">>", то никакой seek уже не поможет: open IN, "+
Название: Как записать в дачало файла данные переменной.
Отправлено: Timur S. от 31 Октября 2002, 15:34:50
Ни в одном случае не работает, мне нужно добавить в начало чайла а не заменить первую строчку. Кто поскажет как это сделать.

У меня работает так:

sysopen (FILE, O_RDWR);
@file = ;
seek FILE,0,0;
unshift (@file, "Запись в начало файла\\n");
print FILE @full;
close(FILE);

Можно ли обойтись без масива. ( для икономии памяти и для работы с большими файлами)
Название: Как записать в дачало файла данные переменной.
Отправлено: mike от 31 Октября 2002, 18:06:24
Цитировать
Можно ли обойтись без масива.

Пиши во временный файл по частям, потом переименуй результирующий.
Название: Как записать в дачало файла данные переменной.
Отправлено: Chs от 31 Октября 2002, 21:52:10
Цитировать
Ни в одном случае не работает, мне нужно добавить в начало чайла а не заменить первую строчку. Кто поскажет как это сделать.

#!/usr/bin/perl

open (FILE, "+seek FILE,0,0;
@file = ;
unshift (@file, "Запись в начало файла\\n");
seek FILE,0,0;
print FILE @file;
close(FILE);