Hay que mirar varias cosas:
1) El fichero SIN INDICE ¿ se puede abrir ?
2) Si no se puede abrir entonces hay que mirar el tamaño del fichero cuando ocupa en disco duro, si tiene campos memos o registros borrados es buena idea hacer un pack de la tabla, y luego un Copy to otroarchivo.dbf para reciclar el espacio ocupado por los campos memos y que esta desperdiciado.
3) Si el fichero esta en una unidad remota NO CONSTRUYAS EL INDICE DESDE UN PUESTO DE TRABAJO RECONSTRUYELO EN EL SERVIDOR. ¿ porque ?
Porque los DBFs se copian a las estaciones de trabajo, y una operacion de indexacion, hace en realidad un DO WHILE NOT EOF() analizando cada uno de los registros para crear el indice, y luego el fichero NTX se va actualizando REGISTRO POR REGISTRO si lo haces desde un puesto de trabajo, la operacion de copiado del puesto al servidor se realiza 6 millones de veces, razón por la cual viene la demora en la generacion del indice.
Ejecuta el DBU en el servidor y genera el indice ahí y veras que la regeneracion demora mucho menos que haciendolo desde un puesto, eso si de que va a demorar, va a demorar pero no tanto como 7 horas.
Si fuera Clipper 5.x o (x)Harbour te recomendaría usar Advantage Database Server, y entonces si te garantizo que el indice lo hace en menos de 5 minutos
HUMMMMMM ahora que lo pienso, si podrias generar ese indice mas rapido, usando el servidor local de ADS. haz lo siguiente:
Entra en
http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=12&Product=8
Ahi podras descargar el Advantage Data Architech, mejor conocido como ARC, es una especie de DBU visual gratuito, instalalo en tu ordenador.
Desde el menu pon:
File / Open Table
Seleccion la tabla que quieras abrir y no olvides indicar que es del tipo DBFNTX. MUY IMPORTANTE marcar en el tipo de servidor LOCAL, y dale al boton de aceptar.
Aparecera una ventana con una rejilla con todo los datos de tabla, luego con el ratón da click derecho sobre cualquier renglón y aparece un menú, selecciona la ultima opcion que es PROPERTIES.
Aparece otra ventana con un folder, el primero tiene la estructura de la tabla, esa no la toques, selecciona la segunda pestaña que dice ADDITONAL INDEX DEFINITION.
Presiona el boton de ADD INDEX, se te pedira darle un nombre al indice (es el nombre del fichero.NTX o lo que pones en el INDEX ON ..... TO <fichero>, luego selecciona el campo sobre el cual quieres generar el indice donde dice INDEX FIELD OR EXPRESSION y listo,
Dale al boton de OK y el indice debe generarse muy rapido, digamos en unos 3 o 4 minutos.
El indice generado es un NTX 100% compatible con Clipper deberá funcionar sin problemas.
Dejanos saber si te funciona