我试图用来自 txtfile 的信息替换 phc 表,但我没有在屏幕上获得信息。
re 是我要替换值的表 txtcabecalho 是人们必须选择的导入文件 reciboc 是我为存储 txt 文件中的值而创建的光标,因此我可以在 re 上替换它们并将它们显示到屏幕上sre 是表 re 的屏幕。
Local txtcabecalho
Use re
Delete all
txtcabecalho=getfile("txt")
Create cursor reciboc(rno n(10), rdata d(10), moeda c(3), no n(10), nome c(2), ccusto c(20), intid c(10), clbanco c(20), total float(19), totalmoeda float(19), ndoc n(3))
append from (txtcabecalho) delimited with tab
select reciboc
goto top
scan for !empty(reciboc.rno)
select re
append blank
replace re.rno with reciboc.rno
replace re.rdata with reciboc.rdata
replace re.moeda with reciboc.moeda
replace re.no with reciboc.no
replace re.nome with reciboc.nome
replace re.ccusto with reciboc.ccusto
replace re.intid with reciboc.intid
replace re.clbanco with reciboc.clbanco
replace re.total with reciboc.total
replace re.totalmoeda with reciboc.totalmoeda
replace re.ndoc with reciboc.ndoc
select re
endscan
sre.refresh()
谢谢!
更新
因此,如果我使用我选择的分隔符(例如使用制表符)创建自己的文件,这实际上是有效的。这件事是我需要导入的文件就像使用空格作为空间持有者并且彼此没有分隔符。让我解释得更好。例如前 3 个字段 rno 和 rdata 和 moeda。
txt文件就像22014-12-23EUR
其中2 是 rno,但后面有 9 个空格,就像占位符一样,用于生成 rno(10) 下一个是 2014-12-23,它就在 rno 旁边,没有分隔符,rdata(10) 下一个是moeda wich 是 EUR ,同样没有定界,是 moeda(3)
许多字段将是空白的,并且那些 txt 文件带有占据整个字段长度的空格。基本上,字段长度用作分隔符,当为空时,其填充空格。
你理解对了吗?抱歉,我不是英语本地人。
更新
这是一些txt文件22014-11-27EUR 208 799,00 799,00 00
请记住,在第一个数字 2 之前,有 9 个空格。谢谢!
将用 2014-11-27 填充的 rdata 字段是 rdata d(10)
已编辑
当前代码:
Local txtcabecalho, fileconvert
Use re
zap
txtcabecalho=getfile("txt")
Create cursor reciboc(rno n(10), rdata d(10), moeda c(3), no n(10), nome c(2), ccusto c(20), intid c(10), gg c(20), chq c(20), clbanco c(20), total float(19), totalmoeda float(19), ndoc n(3))
fileconvert = filetostr(txtcabecalho)
chrtran(fileconvert,'-','')
strtofile(fileconvert, txtcabecalho)
append from (txtcabecalho) type sdf
scan
select re
append blank
replace rno with reciboc.rno
replace rdata with reciboc.rdata
replace moeda with reciboc.moeda
replace no with reciboc.no
replace nome with reciboc.nome
replace ccusto with reciboc.ccusto
replace intid with reciboc.intid
replace clbanco with reciboc.clbanco
replace total with reciboc.total
replace totalmoeda with reciboc.totalmoeda
replace ndoc with reciboc.ndoc
select re
endscan
select reciboc
browse title "resultado"
reindex
sre.refresh()
我得到的是这就是我得到的
仍然想弄清楚我真的不知道 aff
例如:第一行应该是:
RNO 2 RDATA 2014-11-27 NO 208
已编辑
实际上这成功了啊
fileconvert = filetostr(txtcabecalho)
fileconvert2 = strtran(fileconvert,'-','')
strtofile(fileconvert2, txtcabecalho)
如果我需要进一步的帮助,我会更新我的问题!十分感谢大家!
已编辑
你们知道从txt文件浮点数转换为游标是否有任何问题?
例如,我得到了 799,20,但我只是显示为 799。数据类型设置为 totalmoeda f(19) 。这一定很简单,但我找不到!