я пытаюсь заменить таблицу phc информацией из txtfile, но я не получаю информацию на экране.
re — это таблица, которую я хочу заменить значениями. txtcabecalho — это импортированный файл, который люди должны выбрать. 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.
Текстовые файлы имеют вид 22014-12-23EUR
Где 2 — это rno, но позади него 9 пробелов, которые работают как заполнители для больших чисел, образуя rno(10). Далее следует 2014-12-23, который находится рядом с rno без разграничения, что делает rdata(10) Далее идет моэда, которая равна EUR, опять же без разграничения, это моэда(3)
Многие поля будут пустыми, а те файлы txt содержат пробелы, занимающие всю длину полей. В основном длина поля используется в качестве разграничения, а когда оно пусто, оно заполняется пробелами.
Вы правильно поняли? извините, я не носитель английского языка.
Обновить
вот часть текстового файла 22014-11-27EUR 208 799,00 799,00 00
просто имейте в виду, что перед первым номером 2 есть 9 пробелов. Спасибо!
поле rdata, которое будет заполнено 2014-11-27, это 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()
я получаю это то, что я получаю
все еще пытаюсь понять, я действительно не знаю, афф
например: первая строка должна быть:
РНО 2 РДАТА 27.11.2014 № 208
ОТРЕДАКТИРОВАНО
на самом деле это сделало это ахах
fileconvert = filetostr(txtcabecalho)
fileconvert2 = strtran(fileconvert,'-','')
strtofile(fileconvert2, txtcabecalho)
если мне нужна дополнительная помощь, я обновлю свой вопрос! Большое спасибо, ребята!
ОТРЕДАКТИРОВАНО
Ребята, знаете ли вы, есть ли какие-либо проблемы с преобразованием чисел с плавающей запятой в txt-файле в курсоры?
Я получил, например, 799,20, но я просто отображаюсь как 799. Тип данных установлен на totalmoeda f(19) . Это должно быть довольно просто, но я не могу его найти!