![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 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 ) ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Ставишь Dbase Runtime и получаешь к нему доступ через BDE.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 27.3.2008 Где: Киев Репутация: нет Всего: 3 |
С бде проблема. "Недостаточно ресурсов" при чтении файлов в цикле, через АДО/ODBC. Поэтому не катит(
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Много файлов? так не забывайте их закрывать. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 27.3.2008 Где: Киев Репутация: нет Всего: 3 |
Я закрываю их - OleDbConnection.Close() а затем OleDbConnection.Dispose(), хотя и не уверен что это закрывает коннект для БДЕ. Файлов много, 50 тысяч.
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Коннект используй ОДИН И ТОТ ЖЕ. На всё про всё. Просто отваливайся от одной таблицы и присасывайся к другой.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 27.3.2008 Где: Киев Репутация: нет Всего: 3 |
У меня все файлы в разных папках, что делать в таком случае?
![]() |
|||
|
||||
Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 1 Всего: 10 |
(net) Maximum open files per session: 16384 ссылка (local) Windows has a hard coded file descriptor limit of 2048 ссылка
А какая разница? ![]() Может вместо "радости" от того что не можете решить элементарную задачу (dbf формату страшно сказать сколько лет, чтобы столкнуться с неразрешимой с ним проблемой) - расскажите зачем Вам нужно 50 тыс файлов открывать одновременно? |
||||
|
|||||
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Ну и меняй... объект только не создавай новый.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 1 Всего: 10 |
Ознакомился. Элементарней некуда. Нужно просто изменить немножко мышление - не искать сложности а потом всем рассказывать что их нельзя преодолеть. Например написать собственное чтение дбф файлов, чтобы игнорировать нюансы установки флагов в заголовке различными программами. Просто лечилки, читалки и создавалки дбф файлов писал на разных языках не раз. В зависимости от требуемой сложности работы с ними - от 6 ч до недели(если нужна простейшая индексация и связи по полям) на C# с нуля.
C BDE никогда не работал. Я пока не понял задачи - прочесть и перегнать в SQL? О файлах: Каковы связи между данными? Структуры таблицы - у каждого файла свои? Что за вид данных на уровне концепции перегоняем? И т.д. |
||||
|
|||||
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 27.3.2008 Где: Киев Репутация: нет Всего: 3 |
Да я вот тоже с BDE никогда не работал. Да, задача прочесть и перегнать в Оракл, но с перегоном все ок.
Допустим, что там 50 тысяч таблиц, с одинаковой структурой, и без связей. Проблема именно с чтением dbase 7, так как 99% файлов это dbase 4-5 и проблем с ними нету. Имеем dbf, надо получить datatable. Начал писать читалку(смотрим 1 пост). 2Akina Делаю один коннекшн, но при смене папки надо закрывать коннекшн, и открывать. А БДЕ их толи криво закрывает, толи не закрывает вообще. Если читать из одной папки не закрывая и не открывая каждый раз конекшн то все ок. |
|||
|
||||
Ram1reS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 25.4.2008 Где: Москва Репутация: 3 Всего: 5 |
Может быть стоит попробовать все dbf в одну папку слить, и одним коннекшоном пройтись, меняя таблицы?
--------------------
|
|||
|
||||
Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 1 Всего: 10 |
Если проблема с 1% - надо ли писать читалку? Может подойдет тупой "вариант": найти программу которой хоть в командной строке можно указать - перегони мне 7ой dBase в dBase IV ? Задача то ведь - прочесть и перегнать в Оракл, а не "написать читалку dBase 7" Подвариант - нам нужно писать полновестную читалку, или достаточно узнать - начало данных и количество полей в записи? Или еще нужно название поля (по порядковому номеру не годится)? Мало того, для файлов с записями фиксированной длины можно вообще написать автоопределитель, в худшем случае полуавтоматический, которому заголовок вообще не нужен будет. Просто с 9.9.2009 уже мучаетесь как вижу. Значит пора менять подход, если 1% - так и не удается одолеть ![]()
Исходники я не смотрел. Своего кода хватает, глаза утомлять ![]() Это сообщение отредактировал(а) Skynin - 19.9.2009, 22:54 |
||||
|
|||||
Drabuna |
|
|||
![]() Дивелоперчег ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 27.3.2008 Где: Киев Репутация: нет Всего: 3 |
Если скидывать в одну папку, и не переконекчиваться, то все ок.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |