| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > чтение и запись в файл |
| Автор: noder 19.8.2004, 08:45 |
| Народ, подскажите как осуществить чтение все текста из одного файла, запись этого текста в переменную и запись этой переменной в другой файл (или несколько файлов). Я потихоньку разбираюсь с ПЕРЛом, примерно что то похожее уже сделал, только почему то когда я записываю в файл переменную, записывается только последняя строка текста. Покажите элементарный пример как это правильно делается, а то срочно, по работе надо... Спасибо. |
| Автор: Secandr 19.8.2004, 08:53 | ||||||||
| всё просто открыть на чтение:
на запись:
читать:
писать:
А вообще-то всё это есть в манулах! |
| Автор: chaos 19.8.2004, 09:18 | ||
Вот один из вариантов копирования одного файла в другой |
| Автор: GoodBoy 19.8.2004, 10:19 | ||||||
| noder Смотри, если ты читаешь так:
Если тебе надо ВЕСЬ этот файл записать в другой, то можно вот так:
|
| Автор: achmed 19.8.2004, 12:39 |
| вот способ прочитать весь файл в одну переменную (а не массив) $oldsep = $/; $/=undef; $data = <F>; $/ = $oldsep; поясняю: переменная $/ это разделитеь при при чтении операторм <>, если его сделать undef, то чтение будет производится пока не кончатся данные в потоке. см. perldoc perlvar |
| Автор: y0sh1 30.8.2004, 13:07 |
| Вопрос: есть скрипт опрашивающий директории и записывающий это в файл... работает около 2 часов... надо бы сделать так, что бы в течении этого времени файл можно было смотреть на предмет уже записанных туда результатов, а то делаю это стандартным open(в начале скрипта) print(в цикле) close(в конце) - в результате в файле что-то появляется только когда скрипт полностью отработает и и закроет его... конечно можно прям в теле цикла открывать его дозаписывать и закрывать, но может есть более оптимальные варианты!? заранее спасибо за ответ... |
| Автор: ElectricalStorm 30.8.2004, 16:43 |
| $|++; |
| Автор: y0sh1 30.8.2004, 17:08 | ||
ElectricalStorm
прости... я не так давно за Перлом - что я должен увидеть или в чём смысл!? принтом вывести её на стдаут!? |
| Автор: ElectricalStorm 30.8.2004, 17:16 | ||||
вот что бы вывод не буферизировать тоесть что бы сразу появлялось сбрасываешь буферизацию
|
| Автор: y0sh1 30.8.2004, 17:27 | ||
аааа.... это надо после функции write вставить!? попробовал, что-то не идёт...
Пускаю скрипт, жду пока пойдёт несколько циклов - смотрю в лог - ничего.... появляется что-то только после того как весь скрипт отработает и файл будет close! В чём ошибка!? |
| Автор: ElectricalStorm 30.8.2004, 17:30 |
| use strict; $| = 1; Далее Ваш код |
| Автор: y0sh1 30.8.2004, 17:39 |
| Не идёт... |
| Автор: ElectricalStorm 30.8.2004, 17:43 |
| будет работать и без use strict; весь код запостите |
| Автор: y0sh1 30.8.2004, 18:24 | ||
|
| Автор: ElectricalStorm 30.8.2004, 19:02 |
| $|++ вот это из кода уберите |
| Автор: y0sh1 31.8.2004, 09:03 | ||
ElectricalStorm
вы же сами его сказала написать!!!??? |
| Автор: Guest 31.8.2004, 09:11 |
| понимаете $| - это флаг состояния буферизации вывода так вот если он установлен в 0 (по умолчанию) значит идет буферизированный вывод а если в 1 то нет $| = 1; или(!) не и $|++; все флаг установлен за чем его еще увеличивать ... думайтье о нем как о булеан |
| Автор: ElectricalStorm 31.8.2004, 09:43 |
| это я был |
| Автор: y0sh1 31.8.2004, 14:49 |
| ну включил небуферизированный вывод - не помогло. Наверно я что-то туплю. (G) |
| Автор: ElectricalStorm 31.8.2004, 17:30 |
| весь код встудию весь весь .. . |
| Автор: y0sh1 31.8.2004, 17:38 |
| отправил на почту, что бы не засорять топ... |
| Автор: ElectricalStorm 1.9.2004, 13:10 |
| ok ща посморю Добавлено @ 13:20 на до перед open убрать $| = 1; и поставить в начале скрипта $| = 1; и все заработает |
| Автор: y0sh1 1.9.2004, 13:27 |
| почему!? какая разница где отключать буферизацию!? Перед объявлением переменных и подпрограмм или перед началом основного кода!? Переставил - не идёт... |
| Автор: ElectricalStorm 1.9.2004, 14:53 |
| так давай те выяснять что имменно не идет может мы про разные вещи говорим ? |