Olá Ricardo,
No seu código você tentou usar o método 'split' de um objeto da classe Array
(vetor[0] é um array porque você atribuiu assim: vetor[0] = a).
Veja os métodos privados de Array com:
puts Array.private_methods.sort
Veja se o código abaixo serve para esclarecer sua dúvida.
File.readlines("split.txt") .each do |line|
puts line.split("|").join("-")
end
Em vez de mostrar no terminal com 'puts' você pode enviar a linha para um
arquivo na saída.
[]s
On 3/29/07, [EMAIL PROTECTED] <
[EMAIL PROTECTED]> wrote:
Enviar submissões para a lista de discussão Ruby-l para
[email protected]
Para se cadastrar ou descadastrar via WWW, visite o endereço
http://www.listas.unicamp.br/mailman/listinfo/ruby-l
ou, via email, envie uma mensagem com a palavra 'help' no assunto ou
corpo da mensagem para
[EMAIL PROTECTED]
Você poderá entrar em contato com a pessoa que gerencia a lista pelo
endereço
[EMAIL PROTECTED]
Quando responder, por favor edite sua linha Assunto assim ela será
mais específica que "Re: Contents of Ruby-l digest..."
Tópicos de Hoje:
1. uso do método split (Ricardo Almeida)
2. Re: uso do método split (Bira)
----------------------------------------------------------------------
Message: 1
Date: Wed, 28 Mar 2007 11:52:37 -0300
From: "Ricardo Almeida" <[EMAIL PROTECTED]>
Subject: [Ruby-l] uso do método split
To: [email protected]
Message-ID:
<[EMAIL PROTECTED]>
Content-Type: text/plain; charset="iso-8859-1"
Olá pessoal estou tentando usar o método split para tirar do meu arquivo
txt
o simbolo |,
mas aparece este erro private method `split' called for
#<Array:0x48ff2d8>
(NoMethodError.
Meu problema é este:
Ler de um arquivo txt um conteúdo como este 1|2|5|8|9|78|, etc depois
quero
retirar esse '|'
para depois armazenar esse resultado em um array por exemplo.E puder
manipular esse array como um array de inteiros .
Se alguém poder me ajudar ,valeu!!!!!
Ricardo Fernandes.
Obs.: O código em que começei fazer isso é o seguinte:
#File.open("c:\\teste\\teste3.txt","r") do |handle|
# handle.each_line do |linha|
# puts linha
# end
#end
#Funciona imprime arquivo.
a=File.readlines("c:\\teste\\teste3.txt")
vetor = []
vetor=Array.new
#a.split('|').each { |c| vetor << c unless c == "|" }
vetor[0]=a
print vetor
s=vetor[0].split("|")
print s
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL:
http://www.listas.unicamp.br/mailman/private/ruby-l/attachments/20070328/e25f027f/attachment.html
------------------------------
Message: 2
Date: Wed, 28 Mar 2007 13:18:23 -0300
From: Bira <[EMAIL PROTECTED]>
Subject: Re: [Ruby-l] uso do método split
To: " lista de discussão sobre a linguagem de programação Ruby "
<[email protected]>
Message-ID:
<[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
On 3/28/07, Ricardo Almeida <[EMAIL PROTECTED]> wrote:
> a=File.readlines("c:\\teste\\teste3.txt")
O código acima lê todas as linhas do arquivo e as armazena em um Array.
<...>
> #a.split('|').each { |c| vetor << c unless c == "|" }
<...>
> s=vetor[0].split("|")
Nas linhas acima você está tentando chamar o método "split" em um
Array, que não possui este método. O certo seria fazer algo parecido
com isto:
a.each do |linha|
vetor = linha.split("|") #Cria um vetor com os elementos da linha e
sem "|"
vetor.each {|elemento| puts elemento } #imprime cada elemento
end
--
Bira
http://compexplicita.blogspot.com
http://sinfoniaferida.blogspot.com
------------------------------
_______________________________________________
Ruby-l mailing list
[email protected]
http://www.listas.unicamp.br/mailman/listinfo/ruby-l
Fim da Digest Ruby-l, volume 23, assunto 7
******************************************
--
Francisco Ary Martins
http://crabsoft.net
"Os reis deixaram aqui suas coroas e cetros; os heróis suas armas. Mas os
grandes espíritos, cuja glória estava neles e não em coisas externas,
levaram com eles sua grandeza." Shopenhauer
_______________________________________________
Ruby-l mailing list
[email protected]
http://www.listas.unicamp.br/mailman/listinfo/ruby-l