Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Cuando Se Debe Cerrar Un Archivo De Texto
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Cuando Se Debe Cerrar Un Archivo De Texto 
 
Hola!.

Supongo que es indiferente que sea en gambas o en Python.
Es un tema común.

He terminado una practica en Python que abre dos archivos:
- Uno para leer el contenido del archivo. (modo lectura)
- Otro para escribir en el, una serie de resultados. (modo escritura)

El error que ocurre al final, es que no se graban los datos en el archivo donde pretendemos grabar los resultados.
La solución fue cerrar el archivo que estaba abierto para escribir en el. Aunque se cerraron los dos archivos.

¿ Es necesario siempre cerrar los archivos aunque sean abiertos para lectura ?.

Da entender que debe haber un proceso por el cual no se guarda el archivo hasta que no se cierra este.
No estamos hablando de file.open o file.save, sino de open archivo for modo_que_sea.

Quizás las formas file.open y file.save no necesitan tanta instrucción.
Pero lo de antes era los métodos tradicionales con archivos de texto.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 24 May 2014, 13:12; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Se Debe Cerrar Un Archivo De Texto 
 
Perdóname, tu dices que no funciona una cosa así?
Public Sub Main()

  Dim f1, f2 As File
  Dim b As Byte

  
    f1 = Open "/tmp/a" For Read
    f2 = Open "/tmp/b" For Write
    
    While Not Eof(f1)
      Read #f1, b
      Write #f2, b As Byte
    Wend

   f2.Close
   f1.Close

End

 



 
última edición por vuott el Sabado, 24 May 2014, 14:38; editado 4 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Se Debe Cerrar Un Archivo De Texto 
 
Hola vuott.

Si, si funciona. Como ves, has cerrado los dos archivos al final.
Has cerrado tanto el archivo que se leen los datos y también en el que has escrito datos.

Lo que quiere decir, que un archivo abierto sea para el modo que sea, debe ser cerrado
siempre que se haya acabado su lectura o escritura.  ( Cuando ya no lo necesitamos)

La cuestión es, ¿ se habrían grabado los datos al archivo de escritura (cerrándolo) si no se hubiera cerrado el de lectura ?.  
( Debería ser si). Solo que por norma, se deben cerrar los dos, cuando ya no se necesita leer o escribir en ellos.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Se Debe Cerrar Un Archivo De Texto 
 
Siempre hay que cerrar los archivos que se abren, indistintamente para lectura, escritura ya sean de texto o binarios.

En Python se puede usar junto con la instrucción 'With', que cierra automáticamente el fichero al final, pero en gambas no he probado nunca esa forma...

with open('fichero.txt', 'r') as f:
    datos = f.read()
    # procesar datos


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Se Debe Cerrar Un Archivo De Texto 
 
Jesús:

Vaya, esa forma con With en Python no la conocía.
Si vi esta:

# Especificamos el nombre del archivo
flanders_filename = "FlandersFields.txt"

# Especificamos el modo lectura para open
flanders_file = open(flanders_filename,'r')
 


Y usar los métodos readline() o read() según convenga.
El método read() es lo mas parecido a file.open() de Gambas

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 24 May 2014, 20:42; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cerrar Cuando Se Pierde El Foco guadafan General 5 Miercoles, 20 Agosto 2014, 07:43 Ver último mensaje
Shell
No hay nuevos mensajes Cerrar Conexión. ¿ Cuando ? Shell Bases de Datos 3 Martes, 02 Junio 2015, 09:26 Ver último mensaje
shordi
No hay nuevos mensajes ¿ Cuando Se Debe Crear Un Evento ? Shell General 4 Lunes, 07 Noviembre 2016, 09:25 Ver último mensaje
Shell
No hay nuevos mensajes Gdebi, No Se Ve El Texto Cuando Hay Errores Shell Mundo Linux 9 Miercoles, 31 Enero 2018, 22:48 Ver último mensaje
Grandamakulo
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron