Bueno, esto parece un poco mas interesante.
Aprenderemos un poco del manejo de ficheros de texto.
La clase File
Buscamos en esta página el objeto File
Vamos a utilizar tres métodos : new, close, gets, puts
con new: Creamos un objeto de la clase File con los parámetros : nombrefichero y tipo de apertura, en otras palabras, abrimos el fichero para lectura o escritura.
#abrimos el fichero entrada.txt para lectura.
fentrada=File.new ("entrada.txt","r")
#los parentesis son opcionales, pero así lo entiendo mejor
#abrimos el fichero salida.txt para escritura.
fsalida=File.new ("salida.txt","w")
con close: Cerramos el fichero
#cerrar los ficheros abiertos antes
fentrada.close
fsalida.close
gets: Este método nos permite leer una linea del fichero (en el retorno). Si el fichero esta agotádo, el retorno es nil
#leer un registro de fentrada en la variable linea
linea=fentrada.gets
puts: Este método nos permite escribir el contenido de un string en el fichero
#escribir el contenido de linea en el fichero de fsalida
fsalida.puts linea
Ejemplo:
------------------------------
# abriendo los ficheros
fentrada=File.new "entrada.txt","r"
fsalida=File.new("salida.txt","w")
#leemos una linea en la variable linea que será alfanumvrica
linea=fentrada.gets
#bucle de lectura/escritura hasta que linea==nil
until linea==nil
# escribiendo en salida.txt
fsalida.puts linea
#leyendo en linea
linea=fentrada.gets
end
#Cerrando ficheros.
fentrada.close
fsalida.close
------------------------------
Ejemplo un poco mas desarrollado:
------------------------------
fentrada=File.new("entrada.txt","r")
fsalida=File.new("salida.txt","w")
#atencion como asignamos linea y controlamos su valor (como en C)
until (linea=fentrada.gets)==nil
fsalida.puts linea
end
fentrada.close
fsalida.close
------------------------------
La Entrada y salida estandard: $stdin $stdout
El ejemplo anterior:
------------------------------
#$stdin y $stdout son de la clase File
until (linea=$stdin.gets)==nil
$stdout.puts linea
end
------------------------------
Podemos probarlo en la consola linux con algo asi como:
$cat entrada.txt | ruby prueba.rb > salida.txt
o bien
$ruby prueba.rb < entrada.txt > salida.txt
Hasta aqui hemos llegado hoy
No hay comentarios:
Publicar un comentario