Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пишем прогу для чтения dBase 7 
V
    Опции темы
Drabuna
Дата 18.9.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



Надо открыть файлы dbase 7. Пробовал многими способами ничего его не берет. 
Поэтому нашел http://www.dbase.com/knowledgebase/int/db7_file_fmt.htm

Начал писать программу. Сейчас читает все до 0x0D stored as the Field Descriptor terminator.
Запутался и не могу прочитать сами записи. Программу и файл прикрепил(iamfile.dbf).
Файл открывается DBF Viewer 2000 если что.

Помогите прочитать записи)

Присоединённый файл ( Кол-во скачиваний: 25 )
Присоединённый файл  Dbase7Reader.rar 72,70 Kb
PM MAIL   Вверх
Akina
Дата 18.9.2009, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Ставишь Dbase Runtime и получаешь к нему доступ через BDE.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Drabuna
Дата 18.9.2009, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



С бде проблема. "Недостаточно ресурсов" при чтении файлов в цикле, через АДО/ODBC. Поэтому не катит(
PM MAIL   Вверх
Akina
Дата 18.9.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата(Drabuna @  18.9.2009,  13:58 Найти цитируемый пост)
"Недостаточно ресурсов" при чтении файлов в цикле, через АДО/ODBC. 

Много файлов? так не забывайте их закрывать.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Drabuna
Дата 18.9.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



Я закрываю их - OleDbConnection.Close() а затем OleDbConnection.Dispose(), хотя и не уверен что это закрывает коннект для БДЕ. Файлов много, 50 тысяч.
PM MAIL   Вверх
Akina
Дата 18.9.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Коннект используй ОДИН И ТОТ ЖЕ. На всё про всё. Просто отваливайся от одной таблицы и присасывайся к другой.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Drabuna
Дата 18.9.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



У меня все файлы в разных папках, что делать в таком случае? smile 
PM MAIL   Вверх
Skynin
Дата 18.9.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 1
Всего: 10



Цитата(Drabuna @ 18.9.2009,  13:19)
Файлов много, 50 тысяч.

(net) Maximum open files per session:        16384
ссылка

(local) Windows has a hard coded file descriptor limit of 2048
ссылка

Цитата

У меня все файлы в разных папках, что делать в таком случае?

А какая разница?  smile 

Может вместо "радости" от того что не можете решить элементарную задачу (dbf формату страшно сказать сколько лет, чтобы столкнуться с неразрешимой с ним проблемой) - расскажите зачем Вам нужно 50 тыс файлов открывать одновременно?
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Drabuna
Дата 18.9.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



Разница в том что надо менять connection string.

Задача отнюдь не элементарная. Можете ознакомится со следующими темами, в которых я подробно описал проблему:

1. http://forum.vingrad.ru/forum/act-ST/f-202...7/unread-1.html
2. http://forum.vingrad.ru/forum/topic-272361.html
3. http://forum.vingrad.ru/forum/topic-272794.html

И если вы сможете мне помочь, я буду очень благодарен.

Это сообщение отредактировал(а) Drabuna - 18.9.2009, 18:21
PM MAIL   Вверх
Akina
Дата 19.9.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Ну и меняй... объект только не создавай новый.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Skynin
Дата 19.9.2009, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 1
Всего: 10



Цитата(Drabuna @ 18.9.2009,  18:05)
Задача отнюдь не элементарная. Можете ознакомится со следующими темами

Ознакомился. Элементарней некуда. Нужно просто изменить немножко мышление - не искать сложности а потом всем рассказывать что их нельзя преодолеть.

Например написать собственное чтение дбф файлов, чтобы игнорировать нюансы установки флагов в заголовке различными программами.

Просто лечилки, читалки и создавалки дбф файлов писал на разных языках не раз.

В зависимости от требуемой сложности работы с ними - от 6 ч до недели(если нужна простейшая индексация и связи по полям) на C# с нуля.

Цитата

И если вы сможете мне помочь, я буду очень благодарен.

C BDE никогда не работал.

Я пока не понял задачи - прочесть и перегнать в SQL?
О файлах:
Каковы связи между данными? Структуры таблицы - у каждого файла свои?
Что за вид данных на уровне концепции перегоняем?
И т.д.
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Drabuna
Дата 19.9.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



Да я вот тоже с BDE никогда не работал. Да, задача прочесть и перегнать в Оракл, но с перегоном все ок.

Допустим, что там 50 тысяч таблиц, с одинаковой структурой, и без связей.

Проблема именно с чтением dbase 7, так как 99% файлов это dbase 4-5 и проблем с ними нету. Имеем dbf, надо получить datatable. 
Начал писать читалку(смотрим 1 пост).

2Akina
Делаю один коннекшн, но при смене папки надо закрывать коннекшн, и открывать. А БДЕ их толи криво закрывает, толи не закрывает вообще.
Если читать из одной папки не закрывая и не открывая каждый раз конекшн то все ок.
PM MAIL   Вверх
Ram1reS
Дата 19.9.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 25.4.2008
Где: Москва

Репутация: 3
Всего: 5



Может быть стоит попробовать все dbf в одну папку слить, и одним коннекшоном пройтись, меняя таблицы?
--------------------
 
PM MAIL ICQ   Вверх
Skynin
Дата 19.9.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: 1
Всего: 10



Цитата(Drabuna @ 19.9.2009,  19:03)
Проблема именно с чтением dbase 7, так как 99% файлов это dbase 4-5 и проблем с ними нету. Имеем dbf, надо получить datatable. 

Если проблема с 1% - надо ли писать читалку?

Может подойдет тупой "вариант":
найти программу которой хоть в командной строке можно указать - перегони мне 7ой dBase в dBase IV ?

Задача то ведь - прочесть и перегнать в Оракл, а не "написать читалку dBase 7"

Подвариант - нам нужно писать полновестную читалку, или достаточно узнать - начало данных и количество полей в записи? Или еще нужно название поля (по порядковому номеру не годится)?

Мало того, для файлов с записями фиксированной длины можно вообще написать автоопределитель, в худшем случае полуавтоматический, которому заголовок вообще не нужен будет.

Просто с 9.9.2009 уже мучаетесь как вижу. Значит пора менять подход, если 1% - так и не удается одолеть smile
Цитата(Drabuna @ 19.9.2009,  19:03)

Начал писать читалку(смотрим 1 пост).

Исходники я не смотрел. Своего кода хватает, глаза утомлять smile

Это сообщение отредактировал(а) Skynin - 19.9.2009, 22:54
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Drabuna
Дата 21.9.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



Если скидывать в одну папку, и не переконекчиваться, то все ок.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0990 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.