Ищу сорцы парсера DBF-файлов

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Ёрик
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.01.2005 (Ср) 13:18

Ищу сорцы парсера DBF-файлов

Сообщение Ёрик » 28.04.2005 (Чт) 12:23

Ищу сорцы парсера DBF-файлов. К сожалению, стандартные методы вроде ADO не подходят, ибо в читаемой базе некоторые поля не соответствуют формату dbf (и их нужно поскипать при чтении).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.04.2005 (Чт) 12:52

Если поля не соответствуют формату dbf, почему ты думаешь, что парсер dbf не пошлёт тебя так же, как ADO? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 28.04.2005 (Чт) 12:52

Может это и не DBF?

Вообще у DBF-ов очень простая структура - по F4 в FAR-e все хорошо просматривается. Вот у парадоксовских накрученно...

В общем, в яндексе поиск по словам структура DBF файлов тебе поможет. А парсер уже можно и самому набросать, если оно действительно надо...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Ёрик
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.01.2005 (Ср) 13:18

Сообщение Ёрик » 28.04.2005 (Чт) 13:03

GSerg писал(а):Если поля не соответствуют формату dbf, почему ты думаешь, что парсер dbf не пошлёт тебя так же, как ADO? :)

Парсер конечно же пошлет, но имея сорцы я пропущу нужные (т.е. ненужные) столбцы.

Ёрик
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.01.2005 (Ср) 13:18

Сообщение Ёрик » 28.04.2005 (Чт) 13:04

Andrey Fedorov писал(а):Может это и не DBF?

Вообще у DBF-ов очень простая структура - по F4 в FAR-e все хорошо просматривается. Вот у парадоксовских накрученно...

В общем, в яндексе поиск по словам структура DBF файлов тебе поможет. А парсер уже можно и самому набросать, если оно действительно надо...

Да вроде dbf, просто криво используемый. Структуру я нашел, но я увы ограничен временем, поэтому ищу хоть что-нибудь готовое.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.04.2005 (Чт) 13:15

Не знаю, насколько это полезно... Но можно попытаться извлечь пользу даже из главного носителя синдрома :)
http://basicproduction.nm.ru/BPDBF.rar
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ёрик
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.01.2005 (Ср) 13:18

Сообщение Ёрик » 28.04.2005 (Чт) 13:17

GSerg писал(а):Не знаю, насколько это полезно... Но можно попытаться извлечь пользу даже из главного носителя синдрома :)
http://basicproduction.nm.ru/BPDBF.rar

Спасибо, попробую разобраться!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 28.04.2005 (Чт) 13:30

Могу посоветовать почитать книжку Гюнтера Борна Форматы Данных.

BHV, 1995 год ISBN 5-87685-023-3

Познавательная вещь :)

nouyana
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 29.01.2016 (Пт) 17:42

Re: Ищу сорцы парсера DBF-файлов

Сообщение nouyana » 18.05.2024 (Сб) 16:47

GSerg писал(а):Не знаю, насколько это полезно... Но можно попытаться извлечь пользу даже из главного носителя синдрома :)
http://basicproduction.nm.ru/BPDBF.rar


Обновлённая ссылка на BPDBF.rar

В архиве есть тестовый пример, который создаёт файл readme.dbf. Этот файл не открывается ни при помощи Access, ни при помощи DBF Commander. Смог открыть его только при помощи Excel.

В качестве альтернативы нашёл в сети класс clsDBF. И зеркало на всякий случай. Класс хорошо прокомментирован и работает более стабильно на мой взгляд (сильно не тестировал). При этом класс не использует ни OemToChar, ни CharToOem. То есть вся работа с кодировками "зашита" в коде класса. Пример работы с ним:

Код: Выделить всё
Sub Main()
   Dim dbf As New clsDBF
   With dbf
      Call .CreateNewFile(App.Path & "\test.dbf", .xDBFType_dBASE_III, .xDBFCharsetDOS866, True)
      Call .CreateField("TESTFLD", 10, , 255)
      .SaveNewFile
     
      .MoveFirst
      .AddNew
      .SetFieldValue(0) = "Привет"
      .Update
     
      .MoveFirst
      Debug.Print .GetFieldValue(0)
   End With
   Set dbf = Nothing
End Sub


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 1

    TopList