Corrupción archivo MEM

Post Reply
Loren
Posts: 458
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

        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.
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Corrupción archivo MEM

Post by karinha »

João Santos - São Paulo - Brasil
Loren
Posts: 458
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: 458
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: 1200
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 _ para nuevos datos.

El error, quizá lo podrias capturar como se explica aqui http://forums.fivetechsupport.com/viewt ... pf#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