powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / перенесение данных из DBF в TXT на низком уровне
11 сообщений из 11, страница 1 из 1
перенесение данных из DBF в TXT на низком уровне
    #39156390
badwolf_alina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем привет)
помогите пожалуйста разобратся как перенести таблицу (DBF) в текстовый файл на низком уровне.я новичок.В интернете в основном инфа только перенесение из одного TXT в другой TXT...поэтому даже незнаю с чего там начать.
вообщем ситуация такая:
дана таблица Ns.dbf (P10 n(10) ,NAMER ch(30),JUD n(10), nd ch(20) ,par n(10)таблица уже существует все данные из неё надо перенести в Ns.txt на низком уровне .
вот что у меня пока есть( основываясь на примере переноса из одного TXT в другой TXT) :
file_name ='d:\lucru\zad5\Ns.dbf'
file_out = 'd:\lucru\zad5\Ns.txt'
IFPOUT=FCREATE(file_out)
* открыть файл
IFP=FOPEN(file_name)
DO WHILE .T.
* прочесть строку
stroka=fgets(ifp)
stroka=stroka+' '
=fputs(ifpout,stroka)
* определение конца файла
if feof(ifp)=.t.
exit
endif
enddo
STORE FSEEK(IFP, 0, 2) TO ifp_size
* закрыть файл
=FCLOSE(ifp)
=FCLOSE(ifpout)
return .t.

результат выводит в 3 длинные строки но не таблицей....
пожалуйста помогите разобратся или скиньте ссылки на инфу)
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39156439
badwolf_alina,

1. Что такое и как ты понимаешь термин "перенести таблицу (DBF) в текстовый файл на низком уровне"? Откуда это требование взялось?
2. С чего взял, что простое копирование бай-в-байт двоичных данных превратит их в текст?
3. Если я правильно понял пункт 1, то все делается намного проще:
Код: sql
1.
2.
use 'd:\lucru\zad5\Ns
copy to 'd:\lucru\zad5\Ns.txt  && тут возможны дополнительные параметры оформления полученного текста, см. хелп  по команде
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39156463
badwolf_alina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. я так понимаю мне надо перенести столбцы из дбф в тxt....
copy ,append from ,select....to file name.txt всё это я делала.
сейчас именно дали задание отобразить данные в тxt на низком уровне....

вот всё что дали по теме(см.пдф) может чем то поможет разобратся....и прояснить ибо я сама не совсем понимаю как оно должно выглядить
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39156482
badwolf_alina,
я так понимаю мне надо перенести столбцы из дбф в тxt....
ну и где там хоть полслова про открытие дбф на низком уровне? Вы зачем сами себе придумываете идиотские задания?
Дбф всяко открывается командой use.
Вот выходной текстовый файл создается "на низком уровне". И ничего в нем не ищется и не определяется. Просто пишется и закрывается.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
use d:\lucru\zad5\Ns.dbf
file_out = 'd:\lucru\zad5\Ns.txt'
IFPOUT=FCREATE(file_out)
scan
* 
 stroka=stroka+' ' && вот тут дописываете в stroka всё необходимое
 =fputs(ifpout,stroka) 
enscan
=FCLOSE(ifpout)
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39156824
badwolf_alina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
более менее разобралась но вот не задача выдаёт ошибку:
select 1
use Nsi
go top
file_out = 'd:Nsi.txt'
IFPOUT=FCREATE(file_out)
ii=0
do while !eof()
r1 = NSI.P10***название столбца
ii=ii+1
=fputs(ifpout,r1)*** ошибка function argument value,type or count is invalid
SKIP
enddo

=FCLOSE(ifpout)
close databases
return
Помогите разобратся что ему не хватает )
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39157027
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strtofile() не проще?
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39157111
badwolf_alinaболее менее разобралась но вот не задача выдаёт ошибку:
select 1
use Nsi
go top
file_out = 'd:Nsi.txt'
IFPOUT=FCREATE(file_out)
ii=0
do while !eof()
r1 = NSI.P10***название столбца
ii=ii+1
=fputs(ifpout,r1)*** ошибка function argument value,type or count is invalid
SKIP
enddo

=FCLOSE(ifpout)
close databases
return
Помогите разобратся что ему не хватает )

Тут же ясным английским языком написано: function argument value,type or count is invalid, то есть значение, тип или число параметров не соответствует ожидаемому функцией.

Вы же сами писали как писать в ТЕКСТОВЫЙ файл:
автор* прочесть строку
stroka= ....
* записать строку
=fputs(ifpout,stroka)


По ходу дела, в NSI.P10 не текст. Значит нужно делать преобразования. В данном случае: число -> текст...
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39157263
badwolf_alina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо ) вы правы поменяла столбец который с текстом выводит нормально)

теперь займусь именно преобразованием того столбца)
спасибо огромное всем)
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39157570
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
r1 =alltr(str(NSI.P10))       ***название столбца 
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39158352
badwolf_alina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сделала через
r1 = CAST(Nsi.p10 as char(2))
тоже сработал .....спасибо)
...
Рейтинг: 0 / 0
перенесение данных из DBF в TXT на низком уровне
    #39158379
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badwolf_alina,

Код: vbnet
1.
2.
3.
4.
5.
ii=0
Scan
   ii=ii+1
   =fputs(ifpout,textm("<<NSI.P10>>"))    *** ошибка function argument value,type or count is invalidSKIP
ends
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / перенесение данных из DBF в TXT на низком уровне
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]