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

VB5 el programa no respode

Estas en el tema de VB5 el programa no respode en el foro de Visual Basic clásico en Foros del Web. Hola a todos Tengo un programa que exporta archivos txt a xls a traves de un f1book, en algunos archivos se inserta una imagen con ...
  #1 (permalink)  
Antiguo 07/10/2010, 09:02
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
VB5 el programa no respode

Hola a todos

Tengo un programa que exporta archivos txt a xls a traves de un f1book, en algunos archivos se inserta una imagen con un objeto picture, si exporto 64 archivos funciona bien, pero si son más de 64 el programa no responde y no me genera archivo xls.

Saben a que se debe esto, espero me puedan ayudar?

gracias
  #2 (permalink)  
Antiguo 07/10/2010, 14:05
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Me sale un mensaje como el siguiente : our of memory, y lo marca en el picture en donde cargo las imagenes para insertarlas en el f1book.

Alguien sabe como solucíonar esto?

gracias
  #3 (permalink)  
Antiguo 07/10/2010, 15:30
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Hola, por lo que pudiera parecer haces llamadas recursivas y se satura la memoria, pero sin ver el código es muy dificil llegar a alguna conclusión, lo mejor seria que pegases la parte donde generas los archivos a ver si se puede intuir algo.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #4 (permalink)  
Antiguo 08/10/2010, 07:36
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Mensaje Respuesta: VB5 el programa no respode

El programa esta algo largo, en si lo que hago es que leo el archivo txt y voy ubicando la información en celdas, después lo mando a darle formato (colo, tipo de letra, tamaño, etc, etc), y por último si es un archivo que deba llevar gráfica la inserto en el f1book de esta manera:

Libro1.TransactStart
Load Picture2(NGra)
Picture2(NGra).Picture = LoadPicture(Ruta & NomG & ".wmf") 'cargar la imagen en el picture
ID = Libro1.ObjCreatePicture(Libro1.Col, Libro1.Row, Libro1.Col + 3, r2, Picture2(NGra).Picture.Handle, 8, 0, 0) 'inserta imagen en el f1book

Si hay más de 14 archivos que deban llevar gráfica me marca el out of memory.
Intente hacerlo con un solo picture pero solo inserta la gráfica del último archivo.

si le quito la inserción de gráfica solo que genera el archivo y de formato lo hace todo bien, asi que yo pienso que es el picture el que me esta causando ese problema.

Habrá otra opción para insertar la gráfica en el f1book?
  #5 (permalink)  
Antiguo 08/10/2010, 08:20
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Hola, yo creo que el problema se produce porque cargas para cada uno un nuevo objeto Picture2

Load Picture2(NGra)

supongo que NGra es un índice que aumenta y Picture2 es una matriz de Objetos, pero porque no puede ser siempre el mismo, o sea suponiendo que el Picture2 lo dejes como un solo objeto, no una matriz.

Picture2.Picture = LoadPicture(Ruta & NomG & ".wmf") 'cargar la imagen en el picture

Es una idea, pero ¿ porque sobrecargar memoria si despues de esta instruccion sólo lo guardas y ya no lo necesitas ?

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #6 (permalink)  
Antiguo 08/10/2010, 09:09
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Muchas gracias por contestar.

En si el archivo que creo en xls, esta formado por varias hojas en cada hoja pongo la información que me vaya indicando según parametros que me mandan en el archivo txt.

Entonces es un solo archivo con varios hojas, algunas hojas con gráficas.

Si pense en usar un solo picture pero al insertar la imagen solo deja un espacio que indica que va la gráfica pero no se ve, la última hoja que le corresponda gráfica si la pone.
cuando acabo de pasar la información a las hojas del xls guardo el archivo.

Asi que sigo con el mismo problema.

o como puede ir borrando la memoria para que no se sature?
saludos
  #7 (permalink)  
Antiguo 08/10/2010, 14:15
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Hola:

como no se si tal como tienes la estructura del programa montada, ignoro si puedes ir eliminando los elementos creados para volver a crearlos si los necesitas.

Si NGra empieza siempre desde 1 podrías hacer después de usarlos un bucle que los elimine, piensa en este caso que el elemento 0 no puede borrarse

For Borrar = 1 to Ngra
Remove Picture2(Borrar)
Next

Otra opción sería limpiar los Picture despues de usarlos
For Borrar = 1 to NGra
Picture2.Picture = LoadPicture("") ' Creo recordar que así se borra la imagen
Next

Tal vez con esto sea suficiente.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #8 (permalink)  
Antiguo 08/10/2010, 15:18
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Te agradezco muchisimo tu interes.

Ya hice todo lo que mencionaste y lo malo es que al momento de guardar el xls no se ven las gráficas, se borra el picture2(ngra).loadpicture(), y el f1book no mantiene la imagen de la gráfica.

Ya me estoy poniendo de nervios porque no encuentro una solución.

Espero me sigas ayudando, y gracias
  #9 (permalink)  
Antiguo 08/10/2010, 16:48
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Supongo que las pruebas que te indico las pondrás DESPUES de crear el fichero, porque de lo contrario es lógico que no te grabe las imagenes.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #10 (permalink)  
Antiguo 11/10/2010, 10:11
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Hola

pongo el ciclo donde se borran los picture después de grábar el archivo pero me marca out of memory antes de guardar el archivo, cuando se va a crear el picture(17).

Ni siquiera acaba de crear el archivo cuando marca ese error.

Una cosa más cuando es un solo picture funciona bien, pero creo otro picture para manejar otras hojas del mismo archivo, será por eso que no funciona bien?
  #11 (permalink)  
Antiguo 11/10/2010, 10:22
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

No es eso, ya lo probe con un solo picture y marca el mismo error al querer crear el picture(35)
  #12 (permalink)  
Antiguo 11/10/2010, 14:49
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Pero, con la idea que estamos tratando, tienes necesidad del Picture(35) ¿ Cuantas imagenes puedes tener que cargar antes de Grabar ?

No se me ocurre que probar.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #13 (permalink)  
Antiguo 11/10/2010, 15:01
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Si, con el archivo que estoy tratando tiene al menos 38 imagenes.

Estoy haciendo que guarde y después inserte las imagenes, pero no se como activar la hoja desde f1book, tu sabes?
  #14 (permalink)  
Antiguo 11/10/2010, 15:46
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Hola, si debo serte totalmente sincero,m no tengo NI IDEA de lo que es el f1book
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #15 (permalink)  
Antiguo 12/10/2010, 13:33
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Hola, ya resolvi como activar hojas en el f1book se realiza asi: f1book.sheet=numero de hoja

Dividi el programa en varios procedimientos y primero guardo el archivo generado solamente con el formato, después lo vuelvo abrir e inserto las imagenes, parece que funciona, solo que al ejecutarlo la primera vez lo hace bien, pero como que la memoria utilizada se queda y no se libera, entonces al ejecutarlo otra vez marca "memoria insuficiente".

ahora estoy buscando como liberar esa memoria una vez que termina de ejecutarse.
alguna idea?

Y nuevamente muchas gracias por seguir ayudandome
  #16 (permalink)  
Antiguo 12/10/2010, 15:32
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

Hola, siento no poder ayudarte porque sin ver nada del código evidentemente no puedo hacer mas que suposiciones y soy incapaz de intuir donde se pueda producir un error en algo que desconozaco totalmente.

Tal vez alguien que haya utilizado el sistema que usas pueda echarte una mano.

Saludos y suerte.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #17 (permalink)  
Antiguo 18/10/2010, 10:07
 
Fecha de Ingreso: enero-2008
Mensajes: 366
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: VB5 el programa no respode

Hola, por fin ya después de tantas modificaciones al programa, funcionó.

En vez de usar picturebox, se declaran variables tipo objeto y con eso ya no me marca our of memory.

Te agradezco mucho tu ayuda.

  #18 (permalink)  
Antiguo 18/10/2010, 15:28
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: VB5 el programa no respode

De nada, gran parte del mérito es tuyo al haber pedido en otro post la ayuda de como utilizar variables de imagen.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: programa, vb
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 12:20.