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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нестандартный DBF (String 700) 
:(
    Опции темы
Prontit
  Дата 23.5.2012, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 19.10.2011

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



Добрый день!

Задача элементарная: читать DBF файл, и некоторые строки (по некоторому условию) писать в txt файл. Все бы ничего, но DBF нестандартный, в поле с типом String записано 700 знаков, а по дефолту естественно 255 согласно dBase IV. Вот собственно и проблема, он читает и пишет только 255, а остальные игнорит. Наверное нужно читать это поле как бинарное, потом превращать в String...или еще как-то...

Код

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/;Extended Properties=dBASE IV;User ID=;Password=;"); 
            try
            {
                con.Open();
                OleDbDataAdapter da = new OleDbDataAdapter("select * from 123.DBF", con);
                DataSet ds = new DataSet();
                da.Fill(ds);
                con.Close();
                int i = ds.Tables[0].Rows.Count; 
                statusBar1.Text = String.Format("Всего записей в файле: {0}", i.ToString());
 
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\1.txt", true))
                {
                    for (int n = 1; n < ds.Tables[0].Rows.Count; n++)
                    {
                        file.WriteLine(ds.Tables[0].Rows[n][37].ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                statusBar1.Text = ex.Message.ToString();
            }



Пример DBF файла http://www.fayloobmennik.net/1908753 , проблемный столбец 37
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 23.5.2012, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Prontit @  23.5.2012,  13:47 Найти цитируемый пост)
 а по дефолту естественно 255 согласно dBase IV.

Во-первых, даже 254. Во-вторых, откуда вообще такой DBF взялся? Конечно, он не будет читаться как "неправильный".

Добавлено через 1 минуту и 15 секунд
Цитата(Prontit @  23.5.2012,  13:47 Найти цитируемый пост)
Пример DBF файла

Приложи файл на форум. Порнуху в тырнете я и так могу посмотреть, без участия "fayloobmennik".


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Prontit
Дата 23.5.2012, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 19.10.2011

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



Цитата(Данкинг @  23.5.2012,  13:37 Найти цитируемый пост)
Во-первых, даже 254. Во-вторых, откуда вообще такой DBF взялся? Конечно, он не будет читаться как "неправильный".


то что читать не будет это понятно, а надо чтобы читался.

в Дельфях проблему решил. компонент откопал которому побарабану, читает то что есть. а вот тут пока не знаю как решить проблему...

Это сообщение отредактировал(а) Prontit - 23.5.2012, 14:35

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  111I.DBF 1,25 Kb
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 23.5.2012, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Там же все столбцы нормальной ширины. ad2_prg - так вообще 60.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Prontit
Дата 23.5.2012, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 19.10.2011

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



Цитата(Данкинг @  23.5.2012,  14:58 Найти цитируемый пост)
Там же все столбцы нормальной ширины. ad2_prg - так вообще 60. 


предпоследний столбец смотрите, AD2_TXP. И кстати, не все проги видят то что там 700, смотрите через winDBFview
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 23.5.2012, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Prontit @  23.5.2012,  16:04 Найти цитируемый пост)
предпоследний столбец смотрите, AD2_TXP. 

Он 188.
Цитата(Prontit @  23.5.2012,  16:04 Найти цитируемый пост)
И кстати, не все проги видят то что там 700, смотрите через winDBFview 

Я смотрю той прогой, которая имеет самое непосредственное отношение к формату DBF, т.е. FoxPro. smile Т.е. если кто-то изобрёл свой собственный формат на основе DBF, в котором можно делать текстовые поля длиной 700, то это никак не говорит о том, что данный формат должен открываться стандартными средствами. А так - ну, можно сделать MEMO-поле.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Prontit
Дата 24.5.2012, 06:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 19.10.2011

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



Данкинг, смотри/считай user posted image

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

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  111I.DBF 2,29 Kb
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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