Форум: "Базы";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
ВнизLangId_To_CodePage - Ошибка Left side cannot be assigned to Найти похожие ветки
← →
Juice © (2006-05-03 12:29) [0]Многие из вас наверное работали с TDBF компонентом. Команда
LangId_To_CodePage[0] := 866; должна поменять кодировку. Пишу ее и получаю ошибку компиляции : [Error] Left side cannot be assigned to.
Что за ерунда, ведь раньше это работало? Перекомпилирую даже старые проекты где оно работало и получаю теперь эту ошибку.
← →
Anatoly Podgoretsky © (2006-05-03 12:33) [1]Судя по тому, что оно находится слева, то это не команда.
← →
Juice © (2006-05-03 12:50) [2]А что это ? Это по делу или просто замечание ?
← →
Desdechado © (2006-05-03 13:07) [3]это оператор присваивания
причем - присваивания константе (видимо), откуда и ошибка
← →
Juice © (2006-05-03 15:28) [4]А оператор присваивания назвать командой в данном контексте это разве ошибка ?
А если по делу, то как в таком случае изменить кодировку таблицы? Это действительно константа. Исправил ее в исходниках на 866, пересобрал пакет и ничего не изменилось.
← →
ANB © (2006-05-03 16:31) [5]
> Juice © (03.05.06 15:28) [4]
Кодировка в таблице DBF лежит в заголовке. Исправление константы в модуле горю не поможет. Нужно править заголовок в файле.
← →
Juice © (2006-05-03 17:06) [6]
> Кодировка в таблице DBF лежит в заголовке. Исправление константы
> в модуле горю не поможет. Нужно править заголовок в файле.
>
Я таблицу создавал по CreateTable из FieldDefs. Потом создал пустую таблицу нужной кодировки и просто копировал ее и заполнял данными. И что вы думаете, после открытия Dbf.Codepage = 866, вношу данные - Dbf.Codepage = 866, делаю PAckTable - Dbf.Codepage = 1251 ! Какого ? В довесок в конструкторе датамодуля на котором лежит компонента написал кАманды:) DbfGlobals.DefaultOpenCodePage := 866;
DbfGlobals.DefaultCreateCodePage := 866;
Не помогло. Хрень редкая этот dbf, теперь я понимаю почему его многие так ненавидят.
← →
ANB © (2006-05-03 17:44) [7]
> Не помогло. Хрень редкая этот dbf, теперь я понимаю почему
> его многие так ненавидят.
Не, по сравнению с битривом DBF - это просто конфетка.
Впрочем, прямая правка кодировки в файле занимает строк 10 кода и доли секунды.
← →
Anatoly Podgoretsky © (2006-05-03 20:06) [8]Juice © (03.05.06 17:06) [6]
что такое dbf файл? Только правду.
← →
Juice © (2006-05-04 15:08) [9]
> что такое dbf файл? Только правду.
Файл, где после точечки написано dbf.
Файл базы данных состоит из записи заголовка и записей с данными. В записи заголовка определяется структура базы данных и содержится вся другая информация, относящаяся к базе данных. В файле она начинается с нулевой позиции.
Записи с данными* следуют за заголовком (байты располагаются последовательно) и включают в себя фактическое содержимое полей. Длина записи (в байтах) определяется суммированием указанных длин всех полей. Числа в данном файле размещаются в обратном порядке.
Структура заголовка файла DBFНомер байта Описание значения
00 Типы файлов с данными :
FoxBASE+/dBASE III +, без memo - 0x03
FoxBASE+/dBASE III +, с memo - 0x83
FoxPro/dBASE IV, без memo - 0x03
FoxPro с memo - 0xF5
dBASE IV с memo - 0x8B
01-03 Последнее изменение (ГГММДД)
04-07 Число записей в файле
08-09 Положение первой записи с данными
10-11 Длина одной записи с данными (включая признак удаления)
12-27 Зарезервированы
28 1-есть структ.составной инд.файл (типа .CDX),0-нет
29-31 Зарезервированы
32-n Подзаписи полей
n+1 Признак завершения записи заголовка (0x01)
Cтруктура подзаписи полейБайты Описание
00-10 Название поля (максимально - 10 символов, если меньше 10, тот дополняется пустым символом (0x00))
11 Тип данных :
C - символьное
N - числовое
L - логическое
M - типа memo
D - дата
F - с плавающей точкой
P - шаблон
12-15 Расположение поля внутри записи
16-17 Длина поля в байтах
18-32 Зарезервированы
Примечания по структуре файла с данными.
Данные в файле начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи с данными начинаются с байта, содержащего признак удаления. Если в этот байт занесен пробел в коде ASCII (0х20), то запись не удалялась; если же в первом байте - звездочка (0х2A), то запись удалена. За признаком удаления следуют данные из полей, названия которых находятся в подзаписях полей.
Количество полей определяет число подзаписей полей. В базе данных для каждого поля существует одна подзапись поля.
← →
Desdechado © (2006-05-04 15:29) [10]это попытка обобщения, однако там многого нет, например, признака наличия индексов, в том числе многотэговых
и какой же из DBF у тебя?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c