<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Obrigado Tiago, ficou claro seu exemplo. Mas vou ter que pesquisar mais
sobre isto para tentar "modelar" minha situação e tentar implementar a
solução.<br>
<br>
Em 13-03-2011 22:59, Tiago Peczenyj escreveu:
<blockquote
 cite="mid:AANLkTini62aFa+qxTdQSeVMcQ-6GBczSo1h110UKk_Oh@mail.gmail.com"
 type="cite">Flavio<br>
  <br>
  <div>Imagine que vc quer imprimir todas as linhas entre uma string X
e outra Y. Pode ser o começo e o fim de um StackTrace Java por exemplo.
Vc pode ter uma "flag" $imprime quando encontra X e desliga quando
encontra Y. </div>
  <div><br>
  </div>
  <div>É uma maquina de estados pois vc tem 2 estados definidos:
"dentro" e "fora" do que vc quer imprimir. Quando vc define os estados
e como vc transita de um para o outro (que pode ser algo muito simples
como uma flag booleana).</div>
  <div><br>
  </div>
  <div>Outro exemplo, as vezes vc precisa fazer algo como formatar
arquivos, ex.<br>
  <br>
de <br>
  <br>
<a><br>
<b><br>
<c>valor</c><br>
</b><br>
</a><br>
  <br>
para <br>
  <br>
<a><br>
   <b><br>
        <c>valor</c><br>
   </b><br>
</a><br>
  <br>
(espero que fique bem formatado)
  <div><br>
  </div>
  <div>A forma como vc faz isso é criando uma maquina de estados.
Imagine que a cada <TAG> vc incrementa uma variável $nivel e, a
partir dela, sabemos como adicionar uma quantidade de espaços na frente
das tags. Este é um exemplo bem simples de maquina de estados tambem.</div>
  </div>
  <div><br>
  </div>
  <div><br>
2011/3/13 "Flávio R. Lopes" <<a moz-do-not-send="true"
 href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>>:<br>
> Máquina de Estados?....desculpem minha ignorância, mas nunca ouvi
falar<br>
> sobre isto. Vou pesquisar sobre...<br>
> Por enquanto, como é meio urgente isto, vou dar uma olhada no que
sugeriu o<br>
> Nelson.<br>
><br>
> abraço,<br>
> Flávio<br>
><br>
> Em 13-03-2011 17:09, Thiago escreveu:<br>
>><br>
>> Não sei o tamanho do arquivo, mas uma máquina de estados, como
sugeriu o<br>
>> Blabos soa bem...<br>
>><br>
>> On 13-03-2011 01:13, "Flávio R. Lopes" wrote:<br>
>>><br>
>>> Olá pessoal, tudo bem?<br>
>>> Seguinte, tenho rodando uma aplicação que gera um arquivo
de log no<br>
>>> seguinte formato (e que seguem um padrão):<br>
>>><br>
>>> 12-Mar 22:56 Id 100: Starting......<br>
>>> 12-Mar 22:56 Id 100: blablablablablablablablablabla<br>
>>> 12-Mar 22:56 Id 100: blablablablabla<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> Id:              100<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> Status:              OK<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> 12-Mar 22:57 Id 100: blablablablablablabla<br>
>>> 12-Mar 22:57 Id 100:
blablablablablablablablablablablablabla<br>
>>> 12-Mar 22:57 Id 100: End<br>
>>><br>
>>> 13-Mar 22:10 Id 101: Starting......<br>
>>> 13-Mar 22:10 Id 101: blablablablablablablablablabla<br>
>>> 13-Mar 22:10 Id 101:
blablablablablablablablablablablablabla<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> Id:              101<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> Status:              ERROR<br>
>>> .<br>
>>> .<br>
>>> .<br>
>>> 13-Mar 22:11 Id 101: blablablablablablabla<br>
>>> 13-Mar 22:11 Id 101:
blablablablablablablablablablablablabla<br>
>>> 13-Mar 22:11 Id 101: End<br>
>>><br>
>>><br>
>>> Minha idéia é gravar num arquivo, os blocos (trechos) que
tiveram album<br>
>>> problema (FAIL, WARNING, ERROR) e posteriormente enviar no
meu e-mail.<br>
>>> Tomando o exemplo acima, nas linhas referentes a tarefa
(ID=101)<br>
>>> executada em 13/03, aconteceu algum problema
(Status=ERROR). Então gostaria<br>
>>> de copiar o bloco compreendido deste o início da linha
onde é "startada" a<br>
>>> tarefa (13-Mar 22:10 Id 101: Starting......) até a última
linha desta tarefa<br>
>>> (13-Mar 22:11 Id 101: End)<br>
>>><br>
>>> Tentei buscar algum módulo no CPAN, mas acredito que não
estou fazendo a<br>
>>> busca de forma apropriada.<br>
>>> Alguém pode me dar uma sugestão?<br>
>>><br>
>>> Abraço,<br>
>>> Flávio<br>
>>><br>
>>> =begin disclaimer<br>
>>>  Sao Paulo Perl Mongers: <a moz-do-not-send="true"
 href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>
>>> SaoPaulo-pm mailing list: <a moz-do-not-send="true"
 href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>> L<<a moz-do-not-send="true"
 href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>>> =end disclaimer<br>
>><br>
>> =begin disclaimer<br>
>>  Sao Paulo Perl Mongers: <a moz-do-not-send="true"
 href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>
>> SaoPaulo-pm mailing list: <a moz-do-not-send="true"
 href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>> L<<a moz-do-not-send="true"
 href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>> =end disclaimer<br>
>><br>
><br>
> =begin disclaimer<br>
>  Sao Paulo Perl Mongers: <a moz-do-not-send="true"
 href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>
> SaoPaulo-pm mailing list: <a moz-do-not-send="true"
 href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
> L<<a moz-do-not-send="true"
 href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
><br>
  <br>
  <br>
  <br>
-- <br>
Tiago B. Peczenyj<br>
Linux User #405772<br>
  <br>
  <a moz-do-not-send="true" href="http://pacman.blog.br">http://pacman.blog.br</a><br>
  <br>
  </div>
  <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
=begin disclaimer
   Sao Paulo Perl Mongers: <a class="moz-txt-link-freetext" href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a>
 SaoPaulo-pm mailing list: <a class="moz-txt-link-abbreviated" href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a>
 L<a class="moz-txt-link-rfc2396E" href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"><http://mail.pm.org/mailman/listinfo/saopaulo-pm></a>
=end disclaimer
  </pre>
</blockquote>
<br>
</body>
</html>