Cuando Se Debe Cerrar Un Archivo De Texto


Objetivo: 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

última edición por Shell el Sabado, 24 May 2014, 13:12; editado 1 vez
Objetivo: 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
Perfil MP  
Objetivo: 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

Objetivo: 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

Perfil MP  
Objetivo: 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

última edición por Shell el Sabado, 24 May 2014, 20:42; editado 1 vez

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.2568s (PHP: -58% SQL: 158%)
Consultas SQL: 31 - Debug off - GZIP Activado