El programa lee de un txt el listado (que consta de 10 campos separados por ";") de todos los archivos que deberían estar físicamente en el ordenador, va construyendo la base de datos con los archivos encontrados.
La base de datos que se genera al final consta de dos partes que uno al final.
El programa funciona al ejecutarlo la primera vez, pero cuando se ejecuta por segunda vez funciona por un momento y luego el ordenador muestra el mensaje de error: "windows no pudo guardar los datos en myarchivo, se perdieron los datos la posible causa de este error puede ser un error de hardware... intente guardar el archivo en otro sitio"
El ordenador se pone lento y las ventanas se muestran incompletas, se cuelga y tengo que desconectarlo para que se apague.
Creo que el problema podría ser que mi programa consume mucha memoria del sistema ya que si el listado txt es mas pequeño de alrededor de 1,000 lineas (y no como el primero de 30,000) el programa funciona bien, ademas si lo ejecuto con el listado grande, luego reinicio el ordenador y lo vuelvo a ejecutar, no da ningún fallo, también lo he ejecutado en otras maquina y siempre pasa lo mismo.
He estado viendo por allí un scrip para liberar memoria pero no me ha servido.
Por eso agradecería la ayuda de alguien que tenga experiencia con programas en .bat y de como gestiona la memoria, si al terminar un programa hay que liberar la memoria manualmente, aunque yo creo que eso debería gestionarlo el propio windows.
el código en cuestión es este:
Código
;echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /A conta=0
set /A contb=0
echo Reporte de creacion de BD > repo_bd.txt
echo. >> repo_bd.txt
echo. >> repo_bd.txt
)
)
REM uniendo en uni.txt
REM echo %%b
)
REM echo %%b
)
ren uni.txt "Base de datos.xml"
del exi*.txt
echo. >> repo_bd.txt
echo. >> repo_bd.txt
echo. >> repo_bd.txt
echo registros eliminados: >> repo_bd.txt
copy repo_bd.txt + repo1_bd.txt reporte_bd.txt
echo.>> reporte_bd.txt
del repo_bd.txt
del repo1_bd.txt
Gracias de antemano.


 
  




 Autor
 Autor
		


 En línea
									En línea
								







 
						
