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 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 href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>>>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>> L<<a 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 href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>
>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>>> L<<a 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 href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
> L<<a 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 href="http://pacman.blog.br">http://pacman.blog.br</a><br><br></div>