Форум » [x]Harbour » Помогите открыть DBF-файл из Киева.... » Ответить

Помогите открыть DBF-файл из Киева....

Andrey: Всем привет. Прислали мне тут DBF-файл, а современные "смотрелки" вылетают.... http://files.mail.ru/WBLOJS DBedit Pavel Tsarenko - предлагает изменить заголовок и обрезает базу. Открывает только старый DBU на Клипере. Что посоветуете, как работать с такими файлами... У меня много их потом будет...

Ответов - 25, стр: 1 2 All

Сыроежка: Пока товарищ отсутствует, то я постараюсь за него ответить. Дело в том, что сам программист должен задать значения для этих полей. Если мне память не изменяет, то размер поля для задания длины составляет всего лишь байт. Поэтому когда указывается значение больше 255, то очевидно в поле занесется лишь остаток по модулю 256. Что касается документации, то, например, в книге "Руководствоо по применению Clipper 5.0 на ПЭВМ" написано следующее (4-50). "Символьные поля длиной свыше 255 символов. Существует два метода создания символьного поля длиной более 255 знаков: Укажите длину поля, используя поля Field_len и Field_dec согласно следующей формулировке: FIELD->Field_len := <nFieldLength> / 256 FIELD->Field_dec := INT( <nFieldLength> / 256 ) Модифицируйте сттруктуру, изменив длину Field_len до 5, а затем установите действительную длину поля. Это можно выполнить в DBU.EXE"

evsob: Pasha пишет: Ну дайте ссылку на доку. Тест для 5.01: dbCreate('test', {{'F1', 'C', 300, 0}}) В результате создается файл с полем f1 размерностью 44 символа, т.е. остаток от деления на 256. Так как и должно быть. Не надо выдумывать того, чего нет. Официальная документация передо мной не на ресурсе в интернете, а в виде банальных книг (на русском!) прилагаемых к лицензионному продукту. Поэтому ссылку на нее дать не могу. А вот где там написано: В описании к команде COPY STRUCTURE EXTENDED есть примечание. Если хотите выложу скан со страницы. И вообще привык говорить правду и подкреплять свои слова документами. Об этом в документации еще упаменается у команд COPY STRUCTURE, CREATE, CREATE FROM, FIELD(), TYPE()

evsob: Andrey пишет: Всем привет. Прислали мне тут DBF-файл, а современные "смотрелки" вылетают.... http://files.mail.ru/WBLOJS DBedit Pavel Tsarenko - предлагает изменить заголовок и обрезает базу. Открывает только старый DBU на Клипере. Что посоветуете, как работать с такими файлами... У меня много их потом будет... Что с ним делать хочешь? В Клиппере подобный случай обрабатывается используя номера полей. Выглядит это примерно так: //Prog Kiev Пример в Клиппер [pre2]USE YRP_040512_095354 nField :=FCOUNT() aValField[nField] DO WHILE !EOF() FOR m=1 TO nField //Обработка записи aValField[m] := FIELDGET(m) //Обаботка поля END SKIP ENDDO [/pre2]


Andrey: evsob пишет: Что с ним делать хочешь? Мне нужно открывать подобные "убитые" файлы в своей программе и перебрасывать записи в свою базу. Таких файлов будет много каждый месяц. evsob пишет: В Клиппере подобный случай обрабатывается используя номера полей. А если в этих файлах сменят структуру базы ? Или юзера запишут вообще другой DBF... Как тогда отловить такой момент ?

fil: а чего, fieldname(nn) не работает ?



полная версия страницы