Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

como cerrar varios archivos aleatorios.

Estas en el tema de como cerrar varios archivos aleatorios. en el foro de Visual Basic clásico en Foros del Web. Hola! Ya se que me direis que con la funcion CLOSE #canal se cierra el archivo abierto, pero mi consulta va mas lejos, ¿Existe alguna ...
  #1 (permalink)  
Antiguo 22/04/2010, 02:19
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años
Puntos: 0
como cerrar varios archivos aleatorios.

Hola!

Ya se que me direis que con la funcion CLOSE #canal se cierra el archivo abierto, pero mi consulta va mas lejos, ¿Existe alguna función que cierre al mismo tiempo todos los archivos abiertos? es para evitar un error que me tiene por el camino de la amargura, casi, casi al suicidio informatico es el famoso error ..

"error 52

el número de registro no es valido"

Y según la ayuda de VB es debido a que hay un archivo abierto y sale este error por lo que como no se cual es el abierto quiero cerrarlos todos los habidos y por haber porsiaca.

Muchas gracias por adelantado.

Un saludo
  #2 (permalink)  
Antiguo 22/04/2010, 03:48
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: como cerrar varios archivos aleatorios.

Hola compañero, al final vendrás a mi rutina, y ya sabes el porque, como he comentado anteriormente la experiencia es un grado y cuando unificas las sentencias de Apertura, Lectura, Grabacion y Cierre tal como te enseñé, después resulta muy fácil cerrar los archivos abiertos, sin tener que preocuparte nuna mas del famoso número de #CANAL

El error te esta diciendo que tu pretendes CERRAR un archivo que supuestamente no está abierto, tal vez lo hayas cerrado en otra linea, tal vez hayas borrado el número de canal, tal vez el numero de Canal no está como variable compartida, como ves son muchos tal vez que de la otra manera desaparecen.

Al salir del programa TODOS los archivos abiertos se cierran, otra opción es End en el UNLOAD del programa

End Finaliza la ejecución inmediatamente. No es estrictamente necesaria, pero se puede colocar en cualquier lugar de un procedimiento para finalizar la ejecución de código, cerrar archivos abiertos con la instrucción Open y borrar variables.


Recuerda que puedes hacer Close #1, #4, #7, etc pero esto no soluciona tu actual problema ya que lo que quiere es cerrar un archivo que no está abierto.

De todos modos tu mensaje indicas el número de registro no es valido y esto es porque estas intentando leer un registro 0 o un registro mas allá de los que tiene el fichero. Sin embargo no me 'suena' que este sea el error 53.





Hablamos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 22/04/2010, 04:25
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años
Puntos: 0
Respuesta: como cerrar varios archivos aleatorios.

Hola erbunson!

Me dejas anodaddado y avergonzado, tienes toda la razon, "sabe mas el diablo por viejo que por diablo", mi intención es desde luego utilizar tus rutinas por dos razones una porque su procedencia ya tiene una garantia y la otra son mas practicas debido a lo primero, pero aunque las entienda he de saber el porque de cada linea para entenderla al 100% y si no me doy de hostias no aprendo, a que en esto me das la razón; por otro lado tambien una vez que las entienda al 100% las quiero aplicar pero con el pleno convencimiento que ya aunque sean tuyas no me sienta que el programita me lo ha hecho otro en vez de yo y asi saber que al menos he aprendido algo y que no me he limitado a copiar y pegar.

Muchas gracias compañero sin tu ayuda estaria aun sin saber como se pone un boton.

Por cierto, cuando sea mas mayor quiero ser como tu, oñe. o como minimo saber la mitad.

Un saludote
  #4 (permalink)  
Antiguo 22/04/2010, 04:50
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: como cerrar varios archivos aleatorios.

Para cerrar todos los archivos abiertos con open creo que te basta con poner Close, sin número de archivo.

Quizá el archivo que intentas abrir ya está abierto y ese es el error que te muestra.
Para abrir un fichero asegurandose de que no hay otro abierto con ese numero se usa la función FreeFile.
NumFichero=FreeFile
De este modo el sistema te asigna a la variable un número de fichero que no se está usando en ese momento. Al cerrar el fichero se libera el número.

Que se dé bien.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #5 (permalink)  
Antiguo 23/04/2010, 01:56
Avatar de XYON126  
Fecha de Ingreso: abril-2006
Mensajes: 272
Antigüedad: 18 años
Puntos: 0
Respuesta: como cerrar varios archivos aleatorios.

Cita:
Iniciado por pkj Ver Mensaje
Para cerrar todos los archivos abiertos con open creo que te basta con poner Close, sin número de archivo.

Quizá el archivo que intentas abrir ya está abierto y ese es el error que te muestra.
Para abrir un fichero asegurandose de que no hay otro abierto con ese numero se usa la función FreeFile.
NumFichero=FreeFile
De este modo el sistema te asigna a la variable un número de fichero que no se está usando en ese momento. Al cerrar el fichero se libera el número.

Que se dé bien.

Hola pkj!

Lo del FreeFile lo tengo muy claro el problema real y que es en principio donde me haceis incapie los dos tú y erbunson, es que posiblemente haya un archivo abierto, sobre esto y teniendo en cuenta que siempre abro archivos con el FreeFile y por eso me pierdo, es que como realizo muchas llamadas a sentencias, que por error y es lo mas seguro, abra mas de una vez el mismo archivo en algun bucle y no haya sido yo capaz de encontrarlo, ya se que es una chapuza pero por eso preguntaba si se podian cerrar todos de golpe sin saber cuantos y cuales estaban abiertos.


Un saludo

Etiquetas: cerrar, aleatoria
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 22:18.