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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите создать цикл для этого случая, задачка на циклы и регулярные выражения 
:(
    Опции темы
Suppir
Дата 24.11.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Файл $text.txt содежит примерно такие данные (упрощенно):


заголовок
текст
текст
текст
заголовок


заголовок
текст
заголовок
текст
заголовок


заголовок
текст
текст
заголовок
текст
заголовок


------------
В первом случае между двумя заголовками расположен текст. Этот случай нормальный.
Во втором случае заголовок и текст идут чередованием через один. Этот случай нормальный.
В третьем случае  текст с заголовком идут чередованием, но НЕ СОБЛЮДАЕТСЯ условие "через один".

Необходимо найти все третьи случаи по тексту.




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


Опытный
**


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

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



Цитата(Suppir @  25.11.2009,  00:05 Найти цитируемый пост)
Необходимо найти все третьи случаи по тексту.

найти и что сделать с чем ? какой должен быть вывод ?
PM MAIL WWW ICQ Jabber   Вверх
Suppir
Дата 24.11.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



admsasha, необходимо найти в файле строки (номера строк $.), для которых /заголовок/ и /текст/ перемешан, но не не соблюдается чередование "через один".

Это сообщение отредактировал(а) Suppir - 24.11.2009, 19:46
PM MAIL   Вверх
arto
Дата 24.11.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



чем заголовок от текста отличается?
PM MAIL ICQ   Вверх
Suppir
Дата 24.11.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Немножко неясно объяснил, попробую проще представить. есть файл, в нем такая информация:

-------------
а
а
а
bbb
ccccc
ccccc
bbb
a
a
a
a
bbb
ccccc
bbb
ccccc
bbb
a
a
a
a
bbb
ccccc
ccccc
bbb
ccccc
bbb
a
a
a
a
--------------------
и т.д.

необходимо находить третий случай, когда bbb и ccccc идут вперемешку, но не соблюдается чередование "через один".
Как видно, в любом из случаев "bbb" всегда обрамляет "ссссс" сверху и снизу.

Таких случаев может быть много в файле, необходио найти номера этих строк $.

Добавлено через 12 минут и 45 секунд
Т.е., если будет:

bbb
ccccc
ccccc
bbb

то этот фрагмент пропустить.

Если будет:

bbb
cccccc
bbb
cccccc
bbb

то этот фрагмент тоже пропустить.

А если будет:

bbb
cccccc
cccccc
bbb
bbb

то этот момент поймать.

или если будет:

bbb
cccccc
cccccc
bbb
cccccc
bbb

то тоже поймать.

или если будет:

bbb
bbb
cccccc
bbb

то тоже поймать

Это сообщение отредактировал(а) Suppir - 24.11.2009, 20:51
PM MAIL   Вверх
admsasha
Дата 25.11.2009, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не самый лучший вариант, но если никто не ответит, думаю сойдет и это =)

Код

#!/usr/bin/perl

use strict;

my $line=0;
my $step=1;
my $c=1;
my $lineBBB=0;

open FILE, "< test.txt";
while (<FILE>){
    if (/bbb/){
        if ($step==2){
            print "$lineBBB \n" if ($c!=1);
            $step=1;
        }
        if ($step==1){
            $lineBBB=$line;
            $c=0;
            $step=2;
        }
    }

    $step=1 if (/a/);
    $c++ if (/ccccc/);

    $line++;
}
close FILE;

PM MAIL WWW ICQ Jabber   Вверх
Suppir
Дата 25.11.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


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

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


 




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


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

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