*-*创建表并添加字段
_bstfile="数据_"+_yyyymmdd
CREATE dbf &_bstfile (序号 N(8))
SELECT 字段库
GOTO TOP
DO WHILE !EOF()
IF LEN(ALLTRIM(程序字段)) > 0 AND 是否启用 = "是"
_fN = 程序字段
_fT = 字段类型
*ALTER TABLE &_bstfile ADD &_fN &_fT
ALTER TABLE &_bstfile ADD &_fN C(60)
ENDIF
SKIP
ENDDO
*-*将字段库中不使用的字段序号存入数组arrXH
SELECT 字段库
COUNT TO i FOR LEN(ALLTRIM(程序字段)) = 0 AND 是否启用="否"
DIMENSION arrXH(i)
GOTO TOP
DO WHILE !EOF()
IF LEN(ALLTRIM(程序字段)) = 0 AND 是否启用="否"
AINS(arrXH,1)
arrXH[1]=序号
ENDIF
SKIP
ENDDO
*-*向空表中添加数据
_cData = FILETOSTR(_bst)
_nLines = ALINES(arrData, _cData) &&表的行数
FOR i=2 TO _nLines
ALINES(arrFields, arrData[i], ",")
FOR n=1 TO ALEN(arrXH)
ADEL(arrFields,arrXH[n]) &&删除数据数组中不使用的内容
ENDFOR
AINS(arrFields,1)
arrFields[1]=i-1 &&第一列序号
INSERT INTO &_bstfile FROM ARRAY arrFields
ENDFOR
这样效率提升很多,下一步需要把文本列改为需要的数值型、日期型
_bstfile="数据_"+_yyyymmdd
CREATE dbf &_bstfile (序号 N(8))
SELECT 字段库
GOTO TOP
DO WHILE !EOF()
IF LEN(ALLTRIM(程序字段)) > 0 AND 是否启用 = "是"
_fN = 程序字段
_fT = 字段类型
*ALTER TABLE &_bstfile ADD &_fN &_fT
ALTER TABLE &_bstfile ADD &_fN C(60)
ENDIF
SKIP
ENDDO
*-*将字段库中不使用的字段序号存入数组arrXH
SELECT 字段库
COUNT TO i FOR LEN(ALLTRIM(程序字段)) = 0 AND 是否启用="否"
DIMENSION arrXH(i)
GOTO TOP
DO WHILE !EOF()
IF LEN(ALLTRIM(程序字段)) = 0 AND 是否启用="否"
AINS(arrXH,1)
arrXH[1]=序号
ENDIF
SKIP
ENDDO
*-*向空表中添加数据
_cData = FILETOSTR(_bst)
_nLines = ALINES(arrData, _cData) &&表的行数
FOR i=2 TO _nLines
ALINES(arrFields, arrData[i], ",")
FOR n=1 TO ALEN(arrXH)
ADEL(arrFields,arrXH[n]) &&删除数据数组中不使用的内容
ENDFOR
AINS(arrFields,1)
arrFields[1]=i-1 &&第一列序号
INSERT INTO &_bstfile FROM ARRAY arrFields
ENDFOR
这样效率提升很多,下一步需要把文本列改为需要的数值型、日期型
[此贴子已经被作者于2018-1-30 16:34编辑过]