Автор | Сообщение |
|
| постоянный участник
|
Пост N: 2215
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.05.12 13:38. Заголовок: Помогите открыть DBF-файл из Киева....
Всем привет. Прислали мне тут DBF-файл, а современные "смотрелки" вылетают.... http://files.mail.ru/WBLOJS DBedit Pavel Tsarenko - предлагает изменить заголовок и обрезает базу. Открывает только старый DBU на Клипере. Что посоветуете, как работать с такими файлами... У меня много их потом будет...
|
|
|
Ответов - 25
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 226
Зарегистрирован: 11.10.11
|
|
Отправлено: 31.05.12 19:38. Заголовок: Пока товарищ отсутст..
Пока товарищ отсутствует, то я постараюсь за него ответить. Дело в том, что сам программист должен задать значения для этих полей. Если мне память не изменяет, то размер поля для задания длины составляет всего лишь байт. Поэтому когда указывается значение больше 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"
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 31.05.12
|
|
Отправлено: 31.05.12 19:50. Заголовок: Pasha пишет: Ну дай..
Pasha пишет: цитата: | Ну дайте ссылку на доку. Тест для 5.01: dbCreate('test', {{'F1', 'C', 300, 0}}) В результате создается файл с полем f1 размерностью 44 символа, т.е. остаток от деления на 256. Так как и должно быть. Не надо выдумывать того, чего нет. |
| Официальная документация передо мной не на ресурсе в интернете, а в виде банальных книг (на русском!) прилагаемых к лицензионному продукту. Поэтому ссылку на нее дать не могу. А вот где там написано: В описании к команде COPY STRUCTURE EXTENDED есть примечание. Если хотите выложу скан со страницы. И вообще привык говорить правду и подкреплять свои слова документами. Об этом в документации еще упаменается у команд COPY STRUCTURE, CREATE, CREATE FROM, FIELD(), TYPE()
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 31.05.12
|
|
Отправлено: 01.06.12 00:58. Заголовок: Что с ним делать хочешь?
Andrey пишет: цитата: | Всем привет. Прислали мне тут DBF-файл, а современные "смотрелки" вылетают.... http://files.mail.ru/WBLOJS DBedit Pavel Tsarenko - предлагает изменить заголовок и обрезает базу. Открывает только старый DBU на Клипере. Что посоветуете, как работать с такими файлами... У меня много их потом будет... |
| Что с ним делать хочешь? В Клиппере подобный случай обрабатывается используя номера полей. Выглядит это примерно так: //Prog Kiev Пример в Клиппер USE YRP_040512_095354 nField :=FCOUNT() aValField[nField] DO WHILE !EOF() FOR m=1 TO nField //Обработка записи aValField[m] := FIELDGET(m) //Обаботка поля END SKIP ENDDO
|
|
|
|
| постоянный участник
|
Пост N: 2220
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.06.12 11:15. Заголовок: evsob пишет: Что с ..
evsob пишет: Мне нужно открывать подобные "убитые" файлы в своей программе и перебрасывать записи в свою базу. Таких файлов будет много каждый месяц. evsob пишет: цитата: | В Клиппере подобный случай обрабатывается используя номера полей. |
| А если в этих файлах сменят структуру базы ? Или юзера запишут вообще другой DBF... Как тогда отловить такой момент ?
|
|
|
|
| |
Пост N: 128
Зарегистрирован: 17.06.10
|
|
Отправлено: 01.06.12 12:17. Заголовок: а чего, fieldname(nn..
а чего, fieldname(nn) не работает ?
|
|
|
Ответов - 25
, стр:
1
2
All
[только новые]
|
|