Foros del Web » Programando para Internet » Ruby »

Sobre Cargar Archivos

Estas en el tema de Sobre Cargar Archivos en el foro de Ruby en Foros del Web. Vereis, esque yo soy programador de VB6 y estoy intentando traducir un script, porque es esencial para un proyecto. El script está en Ruby, y ...
  #1 (permalink)  
Antiguo 24/08/2007, 03:10
 
Fecha de Ingreso: marzo-2002
Ubicación: Valencia
Mensajes: 65
Antigüedad: 22 años, 9 meses
Puntos: 2
Sobre Cargar Archivos

Vereis, esque yo soy programador de VB6 y estoy intentando traducir un script, porque es esencial para un proyecto. El script está en Ruby, y me he enganchado en una linea:

Código:
database = File.open(source, 'rb') { |f| Marshal.load f }
La cuestion es que eso lee un archivo, y obtiene una coleccion pues luego el script continua:

Código:
database.each do |script|
  path = dest + script[1] + '.rb'
  path.gsub! ' ', '_' if SPACES_TO_UNDERSCORES
  script_text = Zlib::Inflate.inflate(script[2])
  script_text .gsub! "\r\n", "\n"
  #Aqui script_text contine el script contenido en la clase script[1], que es lo que me interesa:
  File.open(path, 'w')  {|file| file.write(script_text) }
end
Esta segunda parte en VB6 sería un bucle For Each Next, con la función Zlib que ya vería como ponerla. Pero lo que no consigo yo es obtener esa coleccion.

Es decir, lo que pido es que si alguien es tan amable de explicarme como abre el archivo esta linea:

Código:
database = File.open(source, 'rb') { |f| Marshal.load f }
Mas concretamente eso de
Código:
|f| Marshal.load f
, pues lo otro, por similitud a C, creo que es abrir un archivo en lectura y escritura.

En definitiva, para abreviar, mi pregnta es: ¿ Que es lo que hace
Código:
|f| Marshal.load f
? Y si alguien sabe adema´s traducirlo a vb6 seria genial, pero me conformo con que me lo expliqueis un poco.

Gracias de antemano a todos...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:41.