Carlos Brando

Nome do Jogo

Extraindo trechos de texto de um arquivo

O problema era o seguinte: Tenho um arquivo de texto com um monte de informações inúteis e precisava ler este arquivo e retirar o texto que me interessa, gravando em outro arquivo.

Para ler um arquivo de texto é fácil: [source:ruby] f = File.open(“arquivo.txt”) begin linhas = f.readlines todas_linhas = linhas.join end f.close [/source]

Pronto agora tenhos o arquivo inteiro na string todas_linhas. O próximo passo é localizar o texto que preciso extrair.

Dentro do bloco begin..end: [source:ruby] retorno = “” todas_linhas.scan /regular_expression/ do |texto|

retorno = "#{retorno}#{texto}\n"

end [/source] Pronto! A variável retorno já contém somente o texto que me interessa.

O método scan varre toda a string procurando por valores que combinem com a regular expression passada. Eu simplesmente pego este valor e separo.

No fim para gravar um novo arquivo… [source:ruby] x = File.new(“retorno.txt”, File::CREAT|File::TRUNC|File::RDWR, 0644) begin

x.puts retorno

end x.close [/source]

Conhece um jeito mais fácil? Comenta aí!

Comments