Corrupción archivo MEM

Corrupción archivo MEM

Postby Loren » Tue Oct 11, 2016 7:14 pm

Buenas noches:

¿ Hay algún método para averiguar previamente si un archivo MEM está corrupto antes de abrirlo ?
El problema lo tengo porque si abro un archivo MEM y está corrupto, a pesar de tener un TRY - CATCH, me genera un error 9001 "archivo corrupto" y aborta sin más. Hay veces que los archivos MEM se corrompen.

Code: Select all  Expand view

        TRY
         restore from ruta additive         && archivo MEM para abrir
         msginfo('hola mundo')
       Catch oError
         msgstop('Error al ABRIR el archivo MEM.','')
       END TRY
 


¿ Alguna solución ? Gracias.
Lorenzo.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España


Re: Corrupción archivo MEM

Postby Loren » Tue Oct 11, 2016 8:10 pm

Karinha, gracias por contestar, pero tu respuesta no aclara nada.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: Corrupción archivo MEM

Postby Loren » Thu Oct 13, 2016 10:53 am

Buenas:

ante el desconocimiento de saber con antelación si un archivo MEM está corrupto antes de abrirlo, he optado por:
Generar un archivo de control con FCREATE antes de abrir el archivo MEM y eliminarlo justo despues de abrir correctamente el MEM. Si hay problemas y salta un GPF, al volver a entrar al programa hay un condicional al principio que busca si existe el archivo de control. En caso afirmativo elimina el MEM corrupto y lo sustituye por una copia previamente realizada.... y listo.
Es una solución por ortodoxa porque para el usuario le supone tener que ver este GPF y tener que volver a entrar en el programa.

Un saludo.
LORENZO.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: Corrupción archivo MEM

Postby hmpaquito » Thu Oct 13, 2016 11:11 am

Hola,

Los .mem los considero mala opcion para almacenar datos. Los abandoné en tiempos de Clipper 5. Mejor usar dbfs con registro unico o bien grabar arrays con datos en memos. Esto ultimo tiene una gran potencia puesto que no es necesario crear nuevos campos para nuevos datos.

El error, quizá lo podrias capturar como se explica aqui http://forums.fivetechsupport.com/viewtopic.php?f=6&t=27204&p=151193&hilit=gpf#p151193

Sólo por si sirve.

Saludos


- EDITADO:

Olvidé comentar que otra opción seria, conociendo la estructura del archivo .mem, abrirlo con FOpen() y "recorrer" su estructura, o al menos las "marcas" principales. Rick Spence en alguno de sus libros de Clipper había descrito la estructura de los archivos .mem.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 109 guests