Corrupción archivo MEM

Post Reply
Loren
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Corrupción archivo MEM

Post by Loren »

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


        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

Post by Loren »

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

Post by Loren »

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.
hmpaquito
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Corrupción archivo MEM

Post by hmpaquito »

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.
Post Reply