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í!