Forum Webscript.Ru

Программирование => Perl => Тема начата: Yuraz от 05 Октября 2002, 11:17:02

Название: Как txt файл загнать в переменную
Отправлено: Yuraz от 05 Октября 2002, 11:17:02
Далал так, но это наверное долго и не правильно (файлы немного отличаются до и после)

open (HEAD, "message.html");
@head = ;
close (HEAD);
for($i=0;$i<@head;$i++){$message.=$head[$i];}
Название: Как txt файл загнать в переменную
Отправлено: Oak от 05 Октября 2002, 13:52:36
посмотри переменную $/
в ней хранится разделитель строк.
Запихни туда какой-то большой-твердый-знак и тода
$file= прочитает его за 1н раз
Название: Как txt файл загнать в переменную
Отправлено: USE от 05 Октября 2002, 14:34:12

while()
{
    $message .= $_;
}
Название: Как txt файл загнать в переменную
Отправлено: ююю от 05 Октября 2002, 15:38:39
{#начало блоке
undef local $/;# делаем неопределённой переменную $/ локально для данного блока
$var=; #считываем весь фаил в переменную
}# конец блока
#здесь переменная $/ принимает своё прежнее значение

#Тоже самое в чистом виде без комментариев

{
undef local $/;
$var=;
}
Название: Как txt файл загнать в переменную
Отправлено: Ленивый гость от 05 Октября 2002, 15:42:08
или даже так СМЫС комментариев не изменяется

{
local $/;
$var=;
}
Название: Как txt файл загнать в переменную
Отправлено: Yuraz от 05 Октября 2002, 18:10:12
Oak ,
USE ,
ююю ,
Ленивый гость ,
Спасибо всем за помощь.

Ещё вопросец не могу решить, может немного не по теме, но тоже с текстом связан, в общем есть в файле такой текст:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст

Реклама
Это не нужный текст
Конец рекламы

Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст

Реклама
Это не нужный текст Это не нужный текст Это не нужный текст Это не нужный текст Это не нужный текст
Конец рекламы

Одиночная строка в тексте

Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст Это нужный текст
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

В ощем этот файл я запихнул в переменную, и теперь надо вырезать места от слова "Реклама" до слова "Конец рекламы", с находящимся внутри текстом, что у меня и получается этим способом:

$text =~ s/Реклама(.|\\n)*Конец рекламы//g;

только одно но, вырезается от первого слова "Реклама" до последнего "Конец рекламы", а как сделать до близжайшего?

И потом вырезать одиночные строчки, типа строки "Одиночная строка в тексте" , где может так же быть произвольный текст,.... для чего, не могу придумать регулярное выражение. ... Одно условие, что одинокая строка не соприкасается с блоком текста.
Название: Как txt файл загнать в переменную
Отправлено: USE от 05 Октября 2002, 18:15:53
Цитировать
только одно но, вырезается от первого слова "Реклама" до последнего "Конец рекламы", а как сделать до близжайшего?

$text =~ s/Реклама(.|\\n)*[b]?[/b]Конец рекламы//g;
нужно поставить знак вопроса. он и будет говорить регулярному выражению, чтобы брать до первого возможного совпадения.
Название: Как txt файл загнать в переменную
Отправлено: USE от 05 Октября 2002, 18:18:39
Цитировать
Одно условие, что одинокая строка не соприкасается с блоком текста.

приведи приди пример.
Название: Как txt файл загнать в переменную
Отправлено: Yuraz от 05 Октября 2002, 18:55:52
USE чейчас проверю, вот пример к строке:
Блок текста это если более 2х строк, а в одинокой строке - одна строка, потом перевод строки, т.е. символ \\n , т.е. можно проверить \\n\\n  1 строка \\n\\n, значит надо удалить. если так, то не надо (т.е. это уже блок)
\\n\\n  1 строка\\n 2 строка\\n 3 строка \\n\\n
Название: Как txt файл загнать в переменную
Отправлено: Yuraz от 05 Октября 2002, 19:23:04
Цитировать
И потом вырезать одиночные строчки, типа строки "Одиночная строка в тексте


USE , спасибо, пример аналогичный первому, так что не сложно стало, спасибо!
Название: Как txt файл загнать в переменную
Отправлено: USE от 06 Октября 2002, 00:16:47
Цитировать
USE , спасибо, пример аналогичный первому, так что не сложно стало, спасибо!

[off]я рад если смог помочь.[/off]