Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

3. Lendo, escrevendo em arquivos e entendendo a pilha de execução parte III

if le_rank[1].to_i < pontos_totais
                salva_rank(nome, pontos_totais)
            end
def le_rank()
      conteudo_atual = File.read "rank.txt"
      dados = conteudo_atual.split("\n")
end

\n

\n

Duvida: rank[1].to_i Isto será aplicado ao retorno da funcao ? Ou seja em dados ?, e ele nao é um parametro ? porque nao funciona se fizer le_rank([1].to_i) se estou invocando-a

E quando usar posicionamento de array, le_rank[0] é que estamos na primeira linha, e teria uma coluna este array do arquivo, que vai ate n- numeros 256 né ? (nao me recordo agora) e toda vez que referencio isto, é a linha em questao, correto ? Nao poderia ter elimando a variavel local dados e aplicado tudo em uma só e usa-la ? ex:

\n

conteudo_atual = File.read "rank.txt".split(“\n”)
3 respostas
solução!

Eduardo,

Quanto ao métodoto_i é o seguinte:

  • No método le_rank abaixo, é retornado o conteúdo da variável dados:

    def le_rank
    conteudo_atual = File.read "rank.txt"
     dados = conteudo_atual.split("\n")
    end
  • Do retorno do método (que é um array), queremos pegar a primeira posição, e nela efetuamos a conversão para inteiro:

le_rank[1].to_i

ou ainda

(le_rank[1]).to_i
  • Poderíamos efetuar o código acima da seguinte forma (mais passo-a-passo):
    retorno =  le_rank
    elemento_escolhido = retorno[1]
    valor_convertido = elemento_escolhido.to_i

O método to_i está sendo aplicado ao elemento da posição retornada do array.

Abraço!

Oi Joviane Entendi,

dados = conteudo_atual.split("\n")

Aqui conteudo_atual.split("\n")

Ele vai passar para dados isto abaixo:

conteudo_atual: linha1\nlinha\n

dados:

linha1

linha2

Abçs

Oi Eduardo,

Isso mesmo!

Abraço!