![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| noder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 18.8.2004 Репутация: нет Всего: нет |
Народ, подскажите как осуществить чтение все текста из одного файла, запись этого текста в переменную и запись этой переменной в другой файл (или несколько файлов).
Я потихоньку разбираюсь с ПЕРЛом, примерно что то похожее уже сделал, только почему то когда я записываю в файл переменную, записывается только последняя строка текста. Покажите элементарный пример как это правильно делается, а то срочно, по работе надо... Спасибо. |
|||
|
||||
| Secandr |
|
||||||||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
всё просто
открыть на чтение:
на запись:
читать:
писать:
А вообще-то всё это есть в манулах! |
||||||||
|
|||||||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 3 Всего: 44 |
Вот один из вариантов копирования одного файла в другой |
|||
|
||||
| GoodBoy |
|
||||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
noder
Смотри, если ты читаешь так:
Если тебе надо ВЕСЬ этот файл записать в другой, то можно вот так:
|
||||||
|
|||||||
| achmed |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
вот способ прочитать весь файл в одну переменную (а не массив)
$oldsep = $/; $/=undef; $data = <F>; $/ = $oldsep; поясняю: переменная $/ это разделитеь при при чтении операторм <>, если его сделать undef, то чтение будет производится пока не кончатся данные в потоке. см. perldoc perlvar |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Вопрос:
есть скрипт опрашивающий директории и записывающий это в файл... работает около 2 часов... надо бы сделать так, что бы в течении этого времени файл можно было смотреть на предмет уже записанных туда результатов, а то делаю это стандартным open(в начале скрипта) print(в цикле) close(в конце) - в результате в файле что-то появляется только когда скрипт полностью отработает и и закроет его... конечно можно прям в теле цикла открывать его дозаписывать и закрывать, но может есть более оптимальные варианты!? заранее спасибо за ответ... |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
$|++;
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
ElectricalStorm
прости... я не так давно за Перлом - что я должен увидеть или в чём смысл!? принтом вывести её на стдаут!? |
|||
|
||||
| ElectricalStorm |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
вот что бы вывод не буферизировать тоесть что бы сразу появлялось сбрасываешь буферизацию
-------------------- Нужно знать инструмент, которым пользуешься |
||||
|
|||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
аааа.... это надо после функции write вставить!? попробовал, что-то не идёт...
Пускаю скрипт, жду пока пойдёт несколько циклов - смотрю в лог - ничего.... появляется что-то только после того как весь скрипт отработает и файл будет close! В чём ошибка!? Это сообщение отредактировал(а) y0sh1 - 30.8.2004, 17:29 |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
use strict;
$| = 1; Далее Ваш код Это сообщение отредактировал(а) ElectricalStorm - 30.8.2004, 17:30 -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
Не идёт...
|
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
будет работать и без use strict;
весь код запостите -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
|
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
$|++ вот это из кода уберите
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
ElectricalStorm
вы же сами его сказала написать!!!??? |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
понимаете $| - это флаг состояния буферизации вывода
так вот если он установлен в 0 (по умолчанию) значит идет буферизированный вывод а если в 1 то нет $| = 1; или(!) не и $|++; все флаг установлен за чем его еще увеличивать ... думайтье о нем как о булеан |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
это я был
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
ну включил небуферизированный вывод - не помогло.
Наверно я что-то туплю. (G) |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
весь код встудию весь весь .. .
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
отправил на почту, что бы не засорять топ...
|
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
ok ща посморю
Добавлено @ 13:20 на до перед open убрать $| = 1; и поставить в начале скрипта $| = 1; и все заработает -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| y0sh1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 26.8.2004 Репутация: нет Всего: нет |
почему!? какая разница где отключать буферизацию!? Перед объявлением переменных и подпрограмм или перед началом основного кода!?
Переставил - не идёт... |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 1 Всего: 9 |
так давай те выяснять что имменно не идет может мы про разные вещи говорим ?
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |