:: Visual Foxpro, Foxpro for DOS
Как создать файл в формате DBF-4 (Dbase-4)?
Konstantin_Pavlovich
Автор

Сообщений: 143
Откуда: Москва
Дата регистрации: 21.11.2007
Здравствуйте! Создал в FOXe обычный dbf файл, нужно перевести его в формат DBF-4 (dBase 4), как это сделать? Команда Copy to с нужным параметром (каким?) мне поможет?

Может Copy to имя_нового_файла fox2x ?


------------------
С уважением
Стороженко Константин Павлович




Исправлено 1 раз(а). Последнее : Konstantin_Pavlovich, 11.10.17 13:53
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
Ну можно воспользоваться экспортом

[attachment 28408 Screenshot_9.jpg]


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Konstantin_Pavlovich
Автор

Сообщений: 143
Откуда: Москва
Дата регистрации: 21.11.2007
Спасибо. Только мне его нужно программно создать, какой-то командой из программы.


------------------
С уважением
Стороженко Константин Павлович
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
PaulWist

Сообщений: 14618
Дата регистрации: 01.04.2004
См. хелп:

Export Dialog Box



File Types        Command Equivalent  
 
DBASE IV (DBF)   COPY TO FileName FOX2X


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Если сделать экспорт, как БК предложила, то в командном окне нарисовалось вот так:
COPY TO c:\tmp\xxx.DBF TYPE FOXPLUS
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
Цитата:
COPY TO ваша dbf TYPE FOXPLUS
прорвете эта штука вам создаcт дбфку именно вашего формата? Эту команду рисует экспорт когда вручную делаешь....


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
of63
Если сделать экспорт, как БК предложила, то в командном окне нарисовалось вот так:
COPY TO c:\tmp\xxx.DBF TYPE FOXPLUS
Офа, ты на 1 секунду опередил меня!


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Konstantin_Pavlovich
Автор

Сообщений: 143
Откуда: Москва
Дата регистрации: 21.11.2007
Всем спасибо, попробую fox2x
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
po2

Сообщений: 2864
Откуда: Иркутск
Дата регистрации: 22.12.2001
Удалено.



Исправлено 1 раз(а). Последнее : po2, 11.10.17 14:34
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Konstantin_Pavlovich
Автор

Сообщений: 143
Откуда: Москва
Дата регистрации: 21.11.2007
А есть какая-то разница между Copy to имя_файла type foxplus и fox2x? Я один и тот же DBF скопировал с помощью этих двух параметров (foxplus и fox2x) и получил совершенно одинаковые файлы. ДОСовская команда COMP показала, что различий между ними нет.
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Вообще говоря, foxplus - это вообще формат FoxBASE - предтечи FoxPro for DOS. Разница между форматами foxplus и fox2x может проявиться тогда, когда будут использоваться в структуре таблицы dbf форматы (размеры,типы) полей, поддерживаемых в FoxPro for DOS и не поддерживаемых в FoxBASE.
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Вероятно разницы не заметил, потому что попросту в таблице не было тех полей, которые по разному представлены в этих форматах. Скорее всего в memo будут отличия...
P.S. Насколько я в курсе, Dbase4 гораздо более "богатый" и навороченный формат чем даже формат VFP таблиц - просто там масса всяких разновидностей, или под-форматов используется, и некоторые из них совпадают с простыми/антикварными foxbase/foxplus/foxpro 2.x
Тут кое что есть
www.autopark.ru
Если не будет стоять задача создавать всякие таблицы с .dbt (мемо-поля), её же индексными файлами (которые наверняка ни разу не совместимы с фоксовыми что idx что cdx форматами), или какие-то тамошние "SQL-таблицы", то подойдёт и COPY TO. Иначе - ищи полноценный ODBC драйвер или OLEDB провайдер к этой системе...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Konstantin_Pavlovich
Автор

Сообщений: 143
Откуда: Москва
Дата регистрации: 21.11.2007
Спасибо за ссылку! Сравнил мою базу данных, созданную через COPY TO ... TYPE FOX2X и образец, файлы отличаются только 2-4 байтами, номером версии dBase3 (dBase4), все остальные байты совпадают! Понятно, у клиента своя версия Dbase4, Fox при переводе ставит свои цифры. Так как эти цифры постоянны и не зависят от наполнения базы данных (от числа записей и т.п.), то просто возьму их из образца и на низком уровне, командой Fwrite, вставлю их в свой файл. Я надеюсь, после этого клиентская программа примет мой DBF файл.



Исправлено 1 раз(а). Последнее : Konstantin_Pavlovich, 11.10.17 19:48
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
2-4 байты это число записей в dbf. Так что оно и должно отличаться от образца, если там не ровно столько же записей.
Помимо заголовка ещё есть небольшой нюанс с последним байтом файла. Фокс спокойно относится как к наличию, так и к отсутствию Ctrl+Z в качестве последнего байта - терминатора файла. Возможно что принимающий софт не так лоялен.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Так больше не может продолжаться!

Байт №0 - это ИД файла фокс, или типа того, а далее:
1 - 3 - Дата последнего изменения области данных таблицы (YYMMDD)
4 – 7 - Количество записей в таблице

4-7, а не 2-4 (и вообще, сам не заметил что-ли , что с 2го по 4ый - всего три байта)
Ratings: 0 negative/1 positive
Re: Как создать файл в формате DBF-4 (Dbase-4)?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Не заметил, каюсь Да, при "счёте с единицы" 2-4 это банальный LastUpdate, число записей после него идёт. При счёте с нуля (но это вряд ли) это кусок поля "даты изменения" и кусок поля "числа записей". Всё же полагаю что автор вопроса имел в виду именно байты 1-3, просто посчитал их "не по сишному", нумеруя с единицы а не с нуля


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 39 (Гостей: 39)

© 2000-2024 Fox Club 
Яндекс.Метрика