Então na verdade, nem é um while... seria o if mesmo :P com o while ele faria todo o processo de novo para cada nova linha depois da ocorrencia...
colocaria da 50 ateh o final, depois da 51 até o final, até o final, hehehehe só se rolasse dar um last no while interno e no do leitor (<..>), mas ai ficaria muito viajado na maionese.. rsrs []'s 2011/6/26 Renato Santos <[email protected]> > Hmm > Abrindo um segundo loop dentro do loop [tericamente] gastaria mais processo > que analisar se a linha atual bate ou não [e ainda pode ser verificado > antes...] > mas, > se o intuito for performance, e o texto não for grande [menos de 1mb] > podemos fazer um slurp e jogar tudo numa msema linha e bater uma simples > expressão: > > > $arquivointeiro = do { local ( @ARGV, $/ ) = $file; <> }; > $procura = qr 'o que vc ta procurando'; > > my ($ateofinal) = $arquivointeiro =~ /($procura.+)/; > > > 2011/6/26 Gustavo Telly <[email protected]> > >> acredito que a primeira solução do Renato me parece ser exatamente oque >> você precisa Flávio, >> Se voce quise fazer pelo número da linha, acho que vai ficar mais >> complicado, por que você vai ter que colocar mais coisas no seu >> algoritmo(segundo exemplo do Renato). >> >> E por cima mesmo, os 2 realizam a mesma coisa, de jeito diferente, mas >> acho que pra sua necessidade os primeiro é mais tranquilo :) >> >> Você pode deixa-lo assim: >> >> $encontrou = 0; >> $texto = ''; >> open(.., '<', ..); >> while( <..>) { >> ??? >> if ($_ =~ /algumaregexpr/ ) { >> $encontrou = 1; >> } >> while ($encontrou && !eof()){ #só mudar aqui para ele ir concatenando o >> valor até o fim do arquivo. >> $text .= $_; >> } >> } >> >> $textoAteoFinal = $texto; >> >> >> 2011/6/26 Renato Santos <[email protected]> >> >>> Toda a lógica para abrir o arquivo com perl está aqui: >>> >>> http://sao-paulo.pm.org/artigo/2010/analisedastecnicasparaabrirelerarquivos >>> >>> Toda lógica para fazer o que você quer está aqui: >>> >>> vars >>> a: texto >>> b: numero >>> >>> a esta vazio >>> b é indefinido >>> >>> abrir arquivo >>> enquanto (ler(arquvio)) repita >>> >>> se (linha-atual tem a ocorrencia) entao >>> b têm o valor da linha atual >>> fim-se >>> >>> se (b estiver definido) entao >>> a = a + linha >>> fim-se >>> fim-enquanto >>> >>> todo o valor de "a" neste ponto será o texto entre texto encontrado até >>> final do arquivo. >>> >>> >>> 2011/6/26 "Flávio R. Lopes" <[email protected]> >>> >>>> ** >>>> Putz, desculpe! Escrevi errado! >>>> Supondo que a o número da linha onde há a ocorrência seja a linha 100, >>>> como poderia fazer então para copiar da linha 100 até o final do arquivo? >>>> >>>> >>>> On 26-06-2011 21:28, Gustavo Telly wrote: >>>> >>>> pq da linha 50 se a ocorrência está na 100 ??? >>>> >>>> não entendi muito bem.... >>>> >>>> []'s >>>> >>>> 2011/6/26 "Flávio R. Lopes" <[email protected]> >>>> >>>>> Deixar eu explicar melhor. >>>>> Supondo que o número da linha onde há a ocorrência da palavra seja a >>>>> linha número 100. Como eu faria para copiar/selecionar da linha 50 até o >>>>> final do arquivo? >>>>> >>>>> >>>>> On 26-06-2011 21:19, "Flávio R. Lopes" wrote: >>>>> >>>>> Olá Renato! >>>>> Então, estive pensando também na seguinte hipótese: Eu tenho como obter >>>>> o número da linha onde está a primera ocorrência do valor. Então à partir >>>>> disto, eu copiaria desta linha até o final do arquivo. >>>>> Dá para fazer isto? >>>>> >>>>> On 26-06-2011 20:56, Renato Santos wrote: >>>>> >>>>> vc pode criar uma variavel que tera o valor falso antes do loop do >>>>> arquivo, e mais uma vazia, e quando encontar o texto que está procurando, >>>>> jogue o troque o valor da variavel para outro, e depois verifique se o >>>>> valor >>>>> é o .. ah, que saber: >>>>> >>>>> $encontrou = 0; >>>>> $texto = ''; >>>>> open(.., '<', ..); >>>>> while( <..>) { >>>>> ??? >>>>> if ($_ =~ /algumaregexpr/ ) { >>>>> $encontrou = 1; >>>>> } >>>>> if ($encontrou){ >>>>> $text .= $_; >>>>> } >>>>> } >>>>> >>>>> $textoAteoFinal = $texto; >>>>> >>>>> >>>>> Têm muitas formas, mas está é a mais clara. >>>>> >>>>> 2011/6/26 "Flávio R. Lopes" <[email protected]> >>>>> >>>>>> Olá pessoal! >>>>>> Há alguns dias venho brigando com um script, onde gostaria que este >>>>>> script me ajudasse a selecionar algumas linhas de um arquivo de texto. >>>>>> Preciso selecionar, à partir da ocorrência de uma determinada string, >>>>>> todo o texto até o final do arquivo. >>>>>> >>>>>> Supondo que eu tenha uma linha que inicie com "26-06-2011", como >>>>>> poderia fazer a regex para copiar todo o texto desta linha até o final do >>>>>> arquivo, inclusive esta linha? >>>>>> >>>>>> abraço, >>>>>> Flávio >>>>>> >>>>>> >>>>>> =begin disclaimer >>>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>>> SaoPaulo-pm mailing list: [email protected] >>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>>> =end disclaimer >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Renato Santos >>>>> http://www.renatocron.com/blog/ >>>>> >>>>> >>>>> =begin disclaimer >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> SaoPaulo-pm mailing list: [email protected] >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> <http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> =end disclaimer >>>>> >>>>> >>>>> >>>>> >>>>> =begin disclaimer >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> SaoPaulo-pm mailing list: [email protected] >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> <http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> =end disclaimer >>>>> >>>>> >>>>> >>>>> >>>>> =begin disclaimer >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> SaoPaulo-pm mailing list: [email protected] >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> =end disclaimer >>>>> >>>>> >>>> >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: [email protected] >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> <http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>>> >>>> >>>> >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: [email protected] >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>>> >>> >>> >>> -- >>> Renato Santos >>> http://www.renatocron.com/blog/ >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: [email protected] >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >>> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > > -- > Renato Santos > http://www.renatocron.com/blog/ > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
