1

在视觉 foxpro 中,我有一个游标,它是 sql 查询的结果,当我使用以下语句将该游标的内容导出到 csv 文件时:

 COPY TO "c:\test.csv" type DELIMITED

所有数据都搞砸了,我没有指定任何分隔符,所以基本上 foxpro 采用默认值,即该游标中的每一列。当我对 xls 文件运行相同的命令时鞠躬,然后将其转换为 csv 文件......它工作得很好:

     COPY TO "c:\test.xls" type XL5

有人遇到过这样的问题,有人还在使用foxpro并做类似的事情吗?

4

2 回答 2

4

您是否尝试过在 COPY TO 命令中使用 TYPE CSV?

于 2012-06-28T20:43:49.347 回答
1

就我个人而言,我从不喜欢内置的 DBF 到 CSV 转换器。他们似乎总是做我不希望他们做的事情。所以我只写了我自己的。这是一些帮助您入门的代码。

LOCAL lnFields

SELECT DBF
lnFieldCount = AFIELDS(laFields)
lnHandle = FOPEN("filename.csv", 1)
ASSERT lnHandle > 0 MESSAGE "Unable to create CSV file"

SCAN
    lcRow = ""
    FOR lnFields = 1 TO lnFieldCount
    IF INLIST(laFields[lnFields,2], 'C', 'M')
            lcRow = lcRow + IIF(EMPTY(lcRow), "", ",") + '"' + ;
                            STRTRAN(EVALUATE(laFields[lnFields,1]),'"', '""') + '"'
        ELSE
            lcRow = lcRow + IIF(EMPTY(lcRow), "", ",") + ;
                            TRANSFORM(EVALUATE(laFields[lnFields,1]))
        ENDIF
    ENDFOR

    FWRITE(lnHandle, lcRow)
ENDSCAN
FCLOSE(lnHandle)
于 2012-08-17T06:31:37.577 回答