Yo hago lo siguiente :
* SUBIR FACTURAS
*abrir archivo Texto*
LOCAL gcTable, m.ident
* archtxt es la tabla temporal con los campos definidos igual que el archivo tipo texto, para el numérico, definimos campo numérico, para el carácter campo carácter etc
CREATE cursor archtxt (BULTOS N(10),PESO N(10),PESO_N N(10);
,CUBICAJE N(10),cod_prod C(20 ),DESCRIP C(50);
,CANTIDAD N(10),UNIDAD C(3),PRECIO N(10 ,2 ),;
EXTENCION N(10 ,2), id INT(10));
gcTable = GETFILE('txt', 'Buscar archivo factura .txt:', 'Abrir', 1, 'Examinar o crear')
gcTable = ALLTRIM(CHRTRAN(gcTable, ' ', '-'))
DO CASE
CASE 'Untitled' $ gcTable
*CREATE (gcTable)
CASE EMPTY(gcTable)
WAIT WINDOW "No se selecciono archivo" NOWAIT
RETURN
OTHERWISE
IF FILE('&gcTable')
WAIT WINDOW "si existe seleccion de archivo" +gcTable NOWAIT
ELSE
WAIT WINDOW "No exite seleccion de archivo" +gcTable NOWAIT
RETURN
ENDIF
SELECT archtxt
APPEND FROM &gcTable DELIMITED WITH ","
SELECT archtxt
brow
ENDCASE
Espero sirva
JM