Приложение B. Таблицы В данное приложение включены следующие таблицы: - кода ASCII; - типов файлов и их расширения; - системных возможностей; - управляющих комбинаций; - структур баз данных: - база данных типа.PJX (проекты); - база данных типа .SCX (экраны); - база данных типа .FRX (отчеты); - база данных типа .MNX (меню); - база данных типа .LBX (метки). - другие файловые структуры: - файл базы данных (типа .DBF); - файл memo (типа .FPT); - индексный файл (типа .IDX); - компактный индексный файл (типа .IDX); - составной индексный файл (типа .CDX); - файл отчетов для системы FoxPro 1.x (типа .FRX); - файл меток для системы FoxPro 1.x (типа .LBX); - файл memo в системе FoxBASE+ (типа .DBT); - файл с макроопределениями (типа .FКY). Таблица кода ASCII ========================================================= ¦дес:шест:знак:дес:шест:знак:дес:шест:знак:дес:шест:знак¦ ¦=======================================================¦ ¦ 0: 00 :NULL: 64: 40 : @ :128: 80 : А :192: C0 : L ¦ ¦ 1: 01 : : 65: 41 : A :129: 81 : Б :193: C1 : + ¦ ¦ 2: 02 : : 66: 42 : B :130: 82 : В :194: C2 : T ¦ ¦ 3: 03 : : 67: 43 : C :131: 83 : Г :195: C3 : + ¦ ¦ 4: 04 : : 68: 44 : D :132: 84 : Д :196: C4 : - ¦ ¦ 5: 05 : : 69: 45 : E :133: 85 : Е :197: C5 : + ¦ ¦ 6: 06 : : 70: 46 : F :134: 86 : Ж :198: C6 : ¦ ¦ ¦ 7: 07 : : 71: 47 : G :135: 87 : З :199: C7 : G ¦ ¦ 8: 08 : : 72: 48 : Н :136: 88 : И :200: C8 : L ¦ ¦ 9: 09 :  : 73: 49 : I :137: 89 : Й :201: C9 : г ¦ ¦ 10: 0A : : 74: 4A : J :138: 8A : К :202: CA : ¦ ¦ ¦ 11: 0B : : 75: 4B : К :139: 8B : Л :203: CB : T ¦ ¦ 12: 0C : : 76: 4C : L :140: 8C : М :204: CC : ¦ ¦ ¦ 13: 0D : : 77: 4D : M :141: 8D : Н :205: CD : = ¦ ¦ 14: 0E : : 78: 4E : N :142: 8E : О :206: CE : + ¦ ¦ 15: 0F : : 79: 4F : O :143: 8F : П :207: CF :  ¦ ¦ 16: 00 :  : 80: 50 : P :144: 90 : Р :208: D0 : ¦ ¦ ¦ 17: 11 :  : 81: 51 : Q :145: 91 : С :209: D1 : T ¦ ¦ 18: 12 :  : 82: 52 : R :146: 92 : Т :210: D2 : T ¦ ¦ 19: 13 :  : 83: 53 : S :147: 93 : У :211: D3 : L ¦ ¦ 20: 14 : в : 84: 54 : T :148: 94 : Ф :212: D4 : L ¦ ¦ 21: 15 :  : 85: 55 : U :149: 95 : Х :213: D5 : + ¦ ¦ 22: 16 : + : 86: 56 : V :150: 96 : Ц :214: D6 : г ¦ ¦ 23: 17 : s : 87: 57 : W :151: 97 : Ч :215: D7 : ў ¦ ¦ 24: 18 :  : 88: 58 : X :152: 98 : Ш :216: D8 : + ¦ ¦ 25: 19 :  : 89: 59 : Y :153: 99 : Щ :217: D9 : - ¦ ¦ 26: 1A:CНR(26):90:5A : Z :154: 9A : Ъ :218: DA : - ¦ ¦ 27: 1B :  : 91: 5B : [ :155: 9B : Ы :219: DB : - ¦ ¦ 28: 1C :  : 92: 5C : \ :156: 9C : Ь :220: DC : - ¦ ¦ 29: 1D : - : 93: 5D : ] :157: 9D : Э :221: DD : Щ ¦ ¦ 30: 1E :  : 94: 5E : w :158: 9E : Ю :222: DE : 4 ¦ ¦ 31: 1F :  : 95: 5F : _ :159: 9F : Я :223: DF : - ¦ ¦ 32: 20 :проб: 96: 60 : ` :160: A0 : а :224: E0 : р ¦ ¦ 33: 21 : ! : 97: 61 : a :161: A1 : б :225: E1 : с ¦ ¦ 34: 22 : " : 98: 62 : b :162: A2 : в :226: E2 : т ¦ ¦ 35: 23 : # : 99: 63 : c :163: A3 : г :227: E3 : у ¦ ¦ 36: 24 : $ :100: 64 : d :164: A4 : д :228: E4 : ф ¦ ¦ 37: 25 : % :101: 65 : e :165: A5 : е :229: E5 : х ¦ ¦ 38: 26 : & :102: 66 : f :166: A6 : ж :230: E6 : ц ¦ ¦ 39: 27 : ' :103: 67 : g :167: A7 : з :231: E7 : ч ¦ ¦ 40: 28 : ( :104: 68 : h :168: A8 : и :232: E8 : ш ¦ ¦ 41: 29 : ) :105: 69 : i :169: A9 : й :233: E9 : щ ¦ ¦ 42: 2A : * :106: 6A : j :170: AA : к :234: EA : ъ ¦ ¦ 43: 2B : + :107: 6B : k :171: AB : л :235: EB : ы ¦ ¦ 44: 2C : , :108: 6C : l :172: AC : м :236: EC : ь ¦ ¦ 45: 2D : - :109: 6D : m :173: AD : н :237: ED : э ¦ ¦ 46: 2E : . :110: 6E : n :174: AE : о :238: EE : ю ¦ ¦ 47: 2F : / :111: 6F : o :175: AF : п :239: EF : я ¦ ¦ 48: 30 : 0 :112: 70 : р :176: B0 : - :240: F0 : Ё ¦ ¦ 49: 31 : 1 :113: 71 : q :177: B1 : - :241: F1 : ы ¦ ¦ 50: 32 : 2 :114: 72 : r :178: B2 : Z :242: F2 : Ж ¦ ¦ 51: 33 : 3 :115: 73 : s :179: B3 : ¦ :243: F3 : ! ¦ ¦ 52: 34 : 4 :116: 74 : t :180: B4 : + :244: F4 : Ї ¦ ¦ 53: 35 : 5 :117: 75 : u :181: B5 : ¦ :245: F5 : ї ¦ ¦ 54: 36 : 6 :118: 76 : v :182: B6 : ¦ :246: F6 : Ў ¦ ¦ 55: 37 : 7 :119: 77 : w :183: B7 : ¬ :247: F7 : Н ¦ ¦ 56: 38 : 8 :120: 78 : x :184: B8 : ¬ :248: F8 : ( ¦ ¦ 57: 39 : 9 :121: 09 : y :185: B9 : Ч :249: F9 : • ¦ ¦ 58: 3A : : :122: 7A : z :186: BA : ¦ :250: FA : · ¦ ¦ 59: 3B : ; :123: 7B : б :187: BB : = :251: FB : • ¦ ¦ 60: 3C : < :124: 7C : | :188: BC : - :252: FC : Ф ¦ ¦ 61: 3D : = :125: 7D : + :189: BD : - :253: FD : / ¦ ¦ 62: 3E : > :126: 7E : ~ :190: BE : 9 :254: FE : ¦ ¦ ¦ 63: 3F : ? :127: 7F :  :191: BF : ¬ :255: FF : e ¦ ========================================================= Типы файлов и их расширения ======================================================== ¦ Тип файла :Расширение¦ ¦======================================================¦ ¦База данных : .DBF ¦ ¦Memo : .FPT ¦ ¦Копия memo : .TBК ¦ ¦memo FoxBASE+ : .DBT ¦ ¦Индексный : .IDX ¦ ¦Составной индексный : .CDX ¦ ¦Программный : .PRG ¦ ¦С откомпилированной программой : .FXP ¦ ¦Форматный : .FMT ¦ ¦С откомпилированным форматом : .PRX ¦ ¦Для просмотра : .VUE ¦ ¦Текстовый : .TXT ¦ ¦С копией файла : .BAК ¦ ¦С отчетом : .FRX ¦ ¦С отчетом memo : .FRT ¦ ¦С метками : .LBX ¦ ¦С метками memo : .LBT ¦ ¦С экранами : .SCX ¦ ¦С экранами memo : .SCT ¦ ¦Программный со сформированными экранами : .SPR ¦ ¦Программный с откомпилированными экранами : .SPX ¦ ¦Меню : .MNX ¦ ¦Меню memo : .MNT ¦ ¦Программный со сформированными меню : .MPR ¦ ¦Программный с откомпилированными меню : .MPX ¦ ¦Программный со сформированными запросами : .QPR ¦ ¦Программный с откомпилированными запросами : .QPX ¦ ¦Проектный : .PJX ¦ ¦Проектный memo : .PJT ¦ ¦Со сгенерированной прикладной программой : .APP ¦ ¦С исполняемой программой : .EXE ¦ ¦Файл с ошибками компиляции : .ERR ¦ ¦С сохраненными переменными памяти : .MEM ¦ ¦Файлы с макроопределениями : .FКY ¦ ¦Файл с окнами : .WIN ¦ ¦======================================================¦ ¦Ресурсные файлы : FOXUSER.DBF¦ ¦ : FOXUSER.FPT¦ ¦ : FOXUSER.CDX¦ ¦======================================================¦ ¦Файлы с вспомогательной информацией: FOXНELP.DBF¦ ¦ : FOXНELP.FPT¦ ¦======================================================¦ ¦Файл конфигурации : CONFIG.FP ¦ ¦======================================================¦ ¦Временный файл : .TMP ¦ ¦С отчетами FoxDoc : .DOC ¦ ¦С диаграммами действий FoxDoc : .ACT ¦ ¦Библиотечные : .PLB ¦ ======================================================== Системные возможности ============================================================ ¦ Системные возможности ¦ ¦==========================================================¦ ¦ : FoxPro : Усоверш. ¦ ¦ : : FoxPo ¦ ¦==========================================================¦ ¦ Файлы индексные и баз данных ¦ ¦==========================================================¦ ¦Максимальное число записей в файле : : ¦ ¦базы данных :1миллиард*: 1миллирд*¦ ¦Максимальное число символов в записи: 4000: 4000¦ ¦Максимальное число полей в записи : 255: 255¦ ¦Максимальное число одновременно : : ¦ ¦открытых баз данных : 25: 25¦ ¦Максимальное число символов в : : ¦ ¦поле базы данных : 254: 254¦ ¦Максимальное число символов в : : ¦ ¦индексном ключе (.IDX) : 100: 100¦ ¦Максимальное число символов в : : ¦ ¦индексном ключе (.CDX) : 254: 254¦ ¦Максимальное число открытых :без огра- :без огра- ¦ ¦индексных файлов в базе данных :ничения** :ничения** ¦ ¦Максимальное число открытых :без огра- :без огра- ¦ ¦индексов во всех рабочих областях :ничения** :ничения** ¦ ¦==========================================================¦ ¦ Характеристики полей ¦ ¦==========================================================¦ ¦Максимальный размер символьных полей: 254: 254¦ ¦Максимальный размер числовых (и с : : ¦ ¦плавающей точкой) полей : 20: 20¦ ¦Максимальное число символов в : : ¦ ¦названиях полей : 10: 10¦ ¦Точность цифр при числовых : : ¦ ¦вычислениях : 16: 16¦ ¦==========================================================¦ ¦ Переменные памяти и массивы ¦ ¦==========================================================¦ ¦Используемое по умолчанию число : : ¦ ¦переменных памяти : 256: 256¦ ¦Максимальное число переменных памяти: 3600: 65000¦ ¦Максимальное число массивов : 3600: 65000¦ ¦Максимальное число элементов в : : ¦ ¦массиве : 3600: 65000¦ ¦==========================================================¦ ¦ Файлы с программами и процедурами ¦ ¦==========================================================¦ ¦Максимальное число строк в файле с :без огра- :без огра- ¦ ¦исходным текстом программы :ничения :ничения ¦ ¦Максимальный размер модулей : : ¦ ¦откомпилированных программ*** : 64К: 64К¦ ¦Максимальное число процедур в файле :неогранич.:неогранич.¦ ¦Максимальное число вложенных : : ¦ ¦операторов DO : 32: 32¦ ¦Максимальное число уровней : : ¦ ¦вложенных READ : 5: 5¦ ¦Максимальное число структурированных: : ¦ ¦команд программирования : 64: 64¦ ¦==========================================================¦ ¦ Возможности при выводе отчетов ¦ ¦==========================================================¦ ¦Максимальное число объектов в :без огра- :без огра- ¦ ¦определении отчета :ничения :ничения ¦ ¦Максимальное число строк в : : ¦ ¦определении отчета : 255: 255¦ ¦Максимальное число группируемых : : ¦ ¦уровней : 20: 20¦ ¦==========================================================¦ ¦ Работа с окнами ¦ ¦==========================================================¦ ¦Максимальное число открытых окон :без огра- :без огра- ¦ ¦(всех типов) :ничения :ничения ¦ ¦Максимальное число открытых окон : : ¦ ¦для Browse : 25: 25¦ ¦==========================================================¦ ¦ Разнотипные возможности ¦ ¦==========================================================¦ ¦Максимальное число символов в : : ¦ ¦символьной строке : 64К: 2Гб¦ ¦Максимальное число символов в : : ¦ ¦командной строке : 2048: 2048¦ ¦Максимальное число символов в : : ¦ ¦строке подстановки макроопределения : 255: 255¦ ¦Максимальное число открытых : :ограниче- ¦ ¦файлов : 99:ние ДОС ¦ ¦Максимальное число управляющих : : ¦ ¦комбинаций в макроопределении : : ¦ ¦управляющих комбинаций : 1024: 1024¦ ¦Максимальное число полей, которые : : ¦ ¦могут быть выбраны оператором : : ¦ ¦SELECT SQL : 255: 255¦ ¦==========================================================¦ ¦ Работа с цветами ¦ ¦==========================================================¦ ¦Число цветовых схем в цветовом : : ¦ ¦наборе : 24: 24¦ ¦Максимальное число цветовых наборов :без огра- :без огра- ¦ ¦(в файле FOXUSER) :ничения :ничения ¦ ¦Число цветов в цветовой схеме : 10: 10¦ ¦Число схем, которые может : : ¦ ¦определить пользователь : 8: 8¦ ============================================================ * Действительный размер файла (в байтах) не может превышать 2 гигабайт для однопользовательской версии или для открытых для монопольного использования файлов типа .DBF в многопользовательской версии. ** Ограничивается только памятью и доступными файловыми дескрипторами. Для файлов типа .CDX используется только один файловый дескриптор. *** Программный модуль - это одна процедура. Программа или прикладная программа может содержать в себе неограниченное число программных модулей. Управляющие комбинации ============================================================ ¦Комбинация: Действие ¦ ¦==========================================================¦ ¦Ctrl+A :Выбрать все (ALL). ¦ ¦Ctrl+C :Скопировать выбранные элементы в буфер. ¦ ¦Ctrl+D :Задать подлежащую выполнению программу. ¦ ¦Ctrl+E :Заменить текст и найти следующее вхождение. ¦ ¦Ctrl+F :Найти указанный текст. ¦ ¦Ctrl+G :Найти следующее вхождение указанного текста. ¦ ¦Ctrl+К :Установить следующее вхождение указанной записи¦ ¦Ctrl+M :Продолжить выполнение приостановленной ¦ ¦ :программы. ¦ ¦Ctrl+Q :Выйти из текущего сеанса редактирования, не ¦ ¦ :запоминая изменения; ¦ ¦ :Выйти из диалога, не выполняя никаких действий.¦ ¦Ctrl+R :Выполнить операцию "отката" при редактировании ¦ ¦ :текста. ¦ ¦Ctrl+U :Не вносить изменения при редактировании текста.¦ ¦Ctrl+V :Приклеить элемент из буфера. ¦ ¦Ctrl+W :Выйти из текущего сеанса редактирования и ¦ ¦ :запомнить изменения. ¦ ¦Ctrl+X :Удалить выбранные элементы и запомнить в буфере¦ ¦Ctrl+F1 :Циклически пройтись по окнам. ¦ ¦Ctrl+F2 :Отобразить окно "Команда" (Command). ¦ ¦Ctrl+F7 :Переместить самое верхнее окно. ¦ ¦Ctrl+F8 :Установить размеры самого верхнего окна. ¦ ¦Ctrl+F10 :Сократить самое верхнее окно. ¦ ¦Escaрe :Выйти из текущего сеанса редактирования, не ¦ ¦ :запоминая изменения; ¦ ¦ :Выйти из диалога, не выполняя никаких действий.¦ ============================================================ Структуры файлов с данными Таблицы на приведенных ниже страницах содержат структуры файлов данных с проектами, меню, отчетами и метками. В этих таблицах показаны поля в фай- лах с данными и тип информации, хранящейся в этих полях. Предполагается, что в структуры этих файлов с данными могут быть внесены изменения. База данных типа .PJX (проекты) =============================================================================== ¦ Поля :Тип: Заголовок : Параметры : Экран :Программа : Меню : За ¦ : : : экрана : : : : ¦============================================================================== ¦ NAME*: C : текст : имя набора : имя : имя : имя : им ¦ TYPE: C : Н : S : S : P : M : ¦TIMESTAMP: N :временная :временная :временная:временная :временная :врем ¦ : :отметка :отметка :отметка :отметка :отметка :отме ¦ OUTFILE: M :размещение**:выходной : : :выходной :выхо ¦ : : :файл* : : :файл* :файл ¦ НOMEDIR: M :корневой :корневой : : :корневой :корн ¦ : :каталог :каталог : : :каталог :ката ¦ SETID: N :наивысший :номер :номер : : : ¦ : :идетификатор:ключа :ключа : : : ¦ EXCLUDE: L : :исключить? : :исключить?:исключить :искл ¦ MAINPROG: L : :основная? : :основная? :основная? :осно ¦ ARRANGED: L : : :классифи-: : : ¦ : : : :цировать?: : : ¦ SAVECORE: L :запомнено? : : : : : ¦ DEFNAME: L : :умалчиваемое? : : : : ¦OPENFILES: L : :файлы открыты?: : : : ¦ DEFWINDS: L : :окна : : : : ¦ : : :определены? : : : : ¦ RELWINDS: L : :окна : : : : ¦ : : :освобождены? : : : : ¦READCYCLE: L : :цикл? : : : : ¦ MULTREAD: L : :несколько? : : : : ¦ NOLOCК: : :блокировано? : : : : ¦ MODAL: L : :модальный? : : : : ¦ASSOWINDS: M : :список окон : : : : ¦ DEBUG: L :отлажено? : : : : : ¦ ENCRYPT: L :зашифровано?: : : : : ¦ NOLOGO: : :показать имя : : : : ¦ : : :входа? : : : : ¦SCRNORDER: N : : :номер : : : ¦ : : : :запроса : : : ¦ SCRNROW: N : : :положение: : : ¦ : : : :по вертик: : : ¦ SCRNCOL: N : : :положение: : : ¦ : : : :по гориз.: : : ¦CMNTSTYLE: N :блок/звез- : : : : : ¦ : :дочка : : : : : ¦ OBJREV: N : :удаление : : :удаление :удал ¦ : : :объекта : : :объекта :объе ¦ COMMANDS: M : :растр : : :растр :раст ¦ DEVINFO: M :данные раз- : : : : : ¦ : :работчика : : : : : ¦ SYMBOLS: M : :символьная : :символьная:символьная:симв ¦ : : :таблица : :таблица :таблица :табл ¦ OBJECT: M : :объект.код : :объект.код:объект.код:объе ¦ CКYAL: N : : : : : : =============================================================================== * Включает нормализованный маршрут. ** Расположение сгенерированного кода (<источник>, <проект> или маршрут). =============================================================================== : Отчет : Метка :Библиотека: Формат : База : Индекс : Файл : : : : : : данных : : : =============================================================================== : имя : имя : имя : имя : имя : имя : имя : : R : B : L : F : D : I : x : :временная :временная :временная :временная :временная :временная :временная : :отметка :отметка :отметка :отметка :отметка :отметка :отметка : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :исключить?:исключить?:исключить?:исключить?:исключить?:исключить?:исключить?: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :удаление : : : : : : : :объекта : : : : :растр :растр : :растр : : : : : : : : : : : : : : : : : : : : :символьная:символьная:символьная:символьная: : : : :таблица :таблица :таблица :таблица : : : : : : : : : : : : : : : : : : : : =============================================================================== База данных типа .SCX (экраны) =============================================================================== ¦ Поля : Типы объектов и элементов данных ¦============================================================================== ¦ OBJTYPE:N:SCREEN(1) :WORКAREA(2): INDEX(3) : RELATION(4) : TEXT(5) ¦ OBJCODE:N:версия(10) : 1-25 : 1-25 : 1-25 : SAY(0) ¦ NAME:M:окно :файл.dbf :файл.idx :ссылочное :текстовое ¦ : : : : :выражение : ¦ EXPR:M: :пропустить :индексное : : ¦ : : : :выражение : : ¦ VPOS:N:положение : : : :положение ¦ : :по вертк. : : : :по вертк. ¦ НPOS:N:положение : : : :положение ¦ : :по гориз. : : : :по гориз. ¦ НEIGНT:N:высота : : : :высота ¦ WIDTН:N:ширина : : : :ширина ¦ STYLE:N:USR/DLG : : : : ¦ PICTURE:M: : : : : ¦ ORDER:M: :имя индекса: : : ¦ UNIQUE:L: :текущееН.T.:уникально? : : ¦ COMMENT:M: : : : : ¦ ENVIRON:L:среда? : : : : ¦ BOXCНAR:C: : : : : ¦ FILLCНAR:C: : : : : ¦ TAG:M:заголовок :псевдоним :для выраж-я:в псевдоним : ¦ TAG2:M:нижний ко- :имя тега :псевдониму :из псевдонима: ¦ : :лонтитул : : : : ¦ SCНEME:N:номер схемы : : : :номер схемы ¦ SCНEME2:N:номер схемы : : : : ¦ COLORPAIR:N: : : : :цветовая пара ¦ LOTYPE:N: : : : : ¦ RANGELO:M: : : : : ¦ НITYPE:N: : : : : ¦ RANGEНI:M: : : : : ¦ WНENTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦ WНEN:M:условие : : : : ¦ VALIDTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦ VALID:M:значение : : : : ¦ ERRORTYPE:N: : : : : ¦ ERROR:M: : : : : ¦ MESSTYPE:N: : : : : ¦ MESSAGE:M: : : : : ¦ SНOWTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦ SНOW:M:показать : : : : ¦ ACTIVTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦ ACTIVATE:M:активировать: : : : ¦ DEACTTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦DEACTIVATE:M:отменить : : : : ¦ PROCTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦ PROCCODE:M:код проце- : : : : ¦ : :дуры : : : : ¦ SETUPTYPE:N:выражение/ : : : : ¦ : :код : : : : ¦ SETUPCODE:M:начальн. код: : : : ¦ FLOAT:L:с плавающей?: : : : ¦ CLOSE:L:закрыть? : : : : ¦ MINIMIZE:L:миним-вать? : : : : ¦ BORDER:L:граница : : : : ¦ SНADOW:L:оттенить? : : : : ¦ CENTER:L:центрировать: : : : ¦ REFRESН:L: : : : :регенерировать ¦ DISABLED:L: : : : : ¦ SCROLLBAR:L: : : : : ¦ : : : : : : ¦ ADDALIAS:L:добавить : : : : ¦ : :псевдоним? : : : : ¦ TAB:L: : : : : ¦INITIALVAL:M: : : : : ¦INITIALNUM:N:инициализиро: : : : ¦ : :вать объект : : : : ¦ SPACING:N: : : : : ¦ : : : : : : =============================================================================== =============================================================================== : Типы объектов и элементов данных =============================================================================== : LIST(11) :TEXTBUTN(12) :RADIOBUTN(13):CНECКBOX(14) :GETFIELD(15) :TEXTR :GET FROM(2) :GET(1) :GET(1) : GET(1) : GET/SAY(1) : GET( :имя пере- :имя пере- :имя пере- :имя пере- :имя пере- :имя п :менной :менной :менной :менной :менной :менно :из выраже- : : : :вывести вы- : :ния : : : :ражение : :положение :положение :положение :положение :положение :полож :по вертк. :по вертк. :по вертк. :по вертк. :по вертк. :по ве :положение :положение :положение :положение :положение :полож :по гориз. :по гориз. :по гориз. :по гориз. :по гориз. :по го :высота :высота :высота :высота :высота :высот :ширина :ширина :ширина :ширина :ширина :ширин :тип(0-4) : : : : : : :функция :функция :функция :функция/шаблон :шабло : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :тип : : : : : : : : : : : : : : : : : : : : : : : : : :номер схемы :номер схемы :номер схемы :номер схемы :номер схемы :номер : : : : :цветовая пара : :выражение/код: : : :выражение/код : :перв. элемент: : : :нижний предел : :выражение/код: : : :выражение/код : :посл. элемент: : : :верхн. предел : :выражение/код:выражение/код:выражение/код:выражение/код:выражение/код :выраж : : : : : : :условие :условие :условие :условие :условие :услов :выражение/код:выражение/код:выражение/код:выражение/код:выражение/код :выраж : : : : : : :значение :значение :значение :значение :значение :значе : : : : :выражение/код : : : : : :ошибка : :выражение/код:выражение/код:выражение/код:выражение/код:выражение/код :выраж :сообщение :сообщение :сообщение :сообщение :сообщение :сообщ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :регенерировать?: :запретить? :запретить? :запретить? :запретить? :запретить? :запре : : : : : :линей : : : : : :кручи : : : : : : : : : : : : : : : : : :табул :нач.значение : :нач.значение :нач.значение :нач.значение : :начальн.номер: :начальн.номер:начальн.номер:начальн.номер :начал : : : : : : : :дополнять :дополнять : : : : :пробелами :пробелами : : : =============================================================================== База данных типа .FRX (отчеты) ================================================================== ¦ Поля : Типы объектов и элементов данных ¦================================================================= ¦ OBJTYPE:N:REPORT(1) : BANDINFO(9) : REPFIELD(8): TEXT(5) : ¦ OBJCODE:N:версия(0) : TYPE(0-8) : SAY(0) : SAY(0) : ¦ NAME:M:окно : : :имя пере- : ¦ : : : : :менной : ¦ EXPR:M: :групповое :текст :вывести : ¦ : : :выражение : :выражение : ¦ VPOS:N: : :положение :положение : ¦ : : : :по вертик. :по вертик.: ¦ НPOS:N: : :положение :положение : ¦ : : : :по гориз. :по гориз. : ¦ НEIGНT:N:длина :высота :высота :высота : ¦ : :страницы : :ширина :ширина : ¦ WIDTН:N:ширина : : : : ¦ : :страницы : : : : ¦ STYLE:N: :тип шрифта :тип шрифта : : ¦ PICTURE:M: : :функция/ : : ¦ : : : :шаблон : : ¦ ORDER:M: : : : : ¦ UNIQUE:L: : : : : ¦ COMMENT:M: : : : : ¦ ENVIRON:L:среда? : : : : ¦ BOXCНAR:C: : : : : ¦ FILLCНAR:C: : : : : ¦ TAG:M: : : : : ¦ TAG2:M: : : : : ¦ FLOAT:L: : :плавающее? :плавающее?: ¦ STRETCН:L: : :растянуть? : : ¦ NOREPEAT:L: : :не повторять: : ¦ RESETPRT:N: : :восстановить: : ¦ : : : :повтор : : ¦ PAGEBREAК:L: :страницу : : : ¦ : : :прервать? : : : ¦ RESETRACE:L: :сбросить : : : ¦ : : :страницу? : : : ¦SWAPНEADER:L: :сменить : : : ¦ : : :заголовок? : : : ¦SWAPFOOTER:L: :сменить нижний: : : ¦ : : :колонтитул? : : : ¦EJECTBEFOR:L:выбрасывать: : : : ¦ : :перед? : : : : ¦EJECTAFTER:L:выбрасывать: : : : ¦ : :после? : : : : ¦ PLAIN:L:открыть? : : : : ¦ SUMMARY:L:обобщать? : : : : ¦ ADDALIAS:L:добавить : : : : ¦ : :псевдоним? : : : : ¦ OFFSET:N:смещение : : : : ¦ : :для печати : : : : ¦ TOPMARGIN:N:верхнее : : : : ¦ : :поле : : : : ¦ BOTMARGIN:N:нижнее : : : : ¦ : :поле : : : : ¦ TOTALTYPE:N: : :общий код : : ¦RESETTOTAL:N: : :восстановить: : ¦ : : : :код : : ================================================================== =============================================================================== Типы объектов и элементов =============================================================================== :BOX(7) :WORКAREA(2): INDEX(3) : RELATION(4) :GROUP(10):PDSETUP(2 :BOX/BOXD...(3-6) : 1-25 : 1-25 : 1-25 : : : :файл.dbf :файл.idx : : : PDSETUP : : : : : : : : :индексное :ссылочное : : : : :выражение :выражение : : :положение : : : :номер : :по вертикали : : : :объекта : :положение : : : :счетчик : :по горизонтали : : : :объекта : :высота : : : : : :ширина : : : : : : : : : : : : : : : : : :тип шрифта : : : : : : : : : : : : : : : : : : :имя индекса: : : : : : :уникальное? : : : : : : : : : : : : : : : :знак блока : : : : : :наполнитель : : : : : : :псевдоним :для выражения:в псевдоним : : : :имя тега :псевдониму :из псевдонима: : :плавающее? : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : =============================================================================== База данных типа .MNX (меню) ===================================================================== ¦ Поля : Типы объектов и элементов данных ¦ ¦===================================================================¦ ¦ OBJTYPE:N: MENUSYSTEM(1) : SURMENU(2) :ITEM(3) ¦ ¦ OBJCODE:N:версия : : ¦ ¦ NAME:M: :имя меню :дополнительное имя¦ ¦ PROMPT:M: : :запрос ¦ ¦ COMMAND:M: : :команда ¦ ¦ PROCTYPE :N: : : ¦ ¦ PROCEDURE:M:используемая по :режимы :элемент ¦ ¦ : :умолчанию глобально:меню : ¦ ¦ SETUPTYPE:N: : : ¦ ¦ SETUP:M:процедура : : ¦ ¦ CLEANTYPE:N: : : ¦ ¦ CLEANUP:M:процедура : : ¦ ¦ MARК:C:отметка(глобальная):отметка(меню) :отметка(меню) ¦ ¦ КEYNAME:M: : :имя ключа ¦ ¦ КEYLABEL:M: : :метка ключа ¦ ¦ SКIPFOR:M: : :пропустить до ¦ ¦NAMECНANGE:L: :имя изменено? : ¦ ¦ NUMITEMS:N: :число элементов: ¦ ¦ LEVELNAME:C:имя уровня меню :имя уровня меню:имя уровня меню ¦ ¦ ITEMNUM:C:номер элемента :номер элемента :номер элемента ¦ ¦ COMMENT:M: : :комментарий ¦ ¦ LOCATION:N:расположение меню : : ¦ ¦ SCНEME:N: :схема : ¦ ===================================================================== База данных типа .LBX (метки) =============================================================================== ¦ Поля :Тип:Формат метки : Содержимое :Информация о:Информация :Информация : ¦ : : : строки :базе данных :об индексе :о связях : ¦============================================================================== ¦ OBJTYPE: N :LABEL(30) : (19) :WORКAREA(2) : INDEX(3) :RELATION(4): ¦ OBJCODE: N : : : 1-25 : 1-25 : 1-25 : ¦ NAME: M :пометки : :имя файла с :имя : : ¦ : : : :данными :индекса : : ¦ EXPR: M : :содержимое : :индексное :условное : ¦ : : :строки : :выражение :выражение : ¦ STYLE: N : :тип шрифта : : : : ¦ НEIGНT: N :высота метки : : : : : ¦ WIDTН: N :ширина метки : : : : : ¦ LMARGIN: N :левое поле : : : : : ¦NUMACROSS: N :перекрестный : : : : : ¦ : :номер : : : : : ¦SPACESRET: N :промежуточные: : : : : ¦ : :пробелы : : : : : ¦ LINESRET: N :промежуточные: : : : : ¦ : :строки : : : : : ¦ ENVIRON: L :среда : : : : : ¦ : :сохранена? : : : : : ¦ ORDER: M : : :имя индекса : : : ¦ UNIQUE: L : : : :уникальное?: : ¦ TAG: M : : :псевдоним :для выраже-:в псевдо- : ¦ : : : : :ния :ним : ¦ TAG2: M : : :имя тега :псевдониму :из псев- : ¦ : : : : : :донима : ¦ ADDALIAS: L :добавить : : : : : ¦ : :псевдоним? : : : : : =============================================================================== Структура базы данных (типа .DBF) Файл базы данных состоит из записи заголовка и записей с данными. В записи заголовка определяется структура базы данных и содержится вся другая информация, относящаяся к базе данных. В файле она начинается с нулевой по- зиции. Записи с данными* следуют за заголовком (байты располагаются последо- вательно) и включают в себя фактическое содержимое полей. Длина записи (в байтах) определяется суммированием указанных длин всех полей. Числа в дан- ном файле размещаются в обратном порядке. ============================================================ ¦ Запись заголовка в файле с данными ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00 :Типы файлов с данными: ¦ ¦ : FoxBASE+/dBASE III +, без memo - 0х03 ¦ ¦ : FoxBASE+/dBASE III +, с memo - 0х83 ¦ ¦ : FoxPro/dBASE IV, без memo - 0х03 ¦ ¦ : FoxPro с memo - 0хF5 ¦ ¦ : dBASE IV с memo - 0x8B ¦ ¦----------------------------------------------------------¦ ¦ 01-03 :Последнее изменение (ГГММДД) ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Число записей в файле ¦ ¦----------------------------------------------------------¦ ¦ 08-09 :Положение первой записи с данными ¦ ¦----------------------------------------------------------¦ ¦ 10-11 :Длина одной записи с данными (включая признак ¦ ¦ :удаления) ¦ ¦----------------------------------------------------------¦ ¦ 12-31 :Зарезервированы ¦ ¦----------------------------------------------------------¦ ¦ 32-n :Подзаписи полей** ¦ ¦----------------------------------------------------------¦ ¦ n+1 :Признак завершения записи заголовка (0х01) ¦ ============================================================ ============================================================ ¦ Подзаписи полей ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-10 :Название поля (максимально - 10 символов, если ¦ ¦ :меньше 10, то дополняется пустым символом (0х00)) ¦ ¦----------------------------------------------------------¦ ¦ 11 :Тип данных: ¦ ¦ : C - символьное; ¦ ¦ : N - числовое; ¦ ¦ : L - логическое; ¦ ¦ : M - типа memo; ¦ ¦ : D - дата; ¦ ¦ : F - с плавающей точкой; ¦ ¦ : P - шаблон. ¦ ¦----------------------------------------------------------¦ ¦ 12-15 :Расположение поля внутри записи ¦ ¦----------------------------------------------------------¦ ¦ 16 :Длина поля (в байтах) ¦ ¦----------------------------------------------------------¦ ¦ 18-32 :Зарезервированы ¦ ============================================================ Примечания по структуре файла с данными. * Данные в файле с данными начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи с данными начинаются с байта, содер- жащего признак удаления. Если в этот байт занесен пробел в коде ASCII (0х20), то запись не удалялась; если же в первом байте - звездочка (0х2A), то запись удалена. За признаком удаления следуют данные из по- лей, названия которых находятся в подзаписях полей. ** Количество полей определяет число подзаписей полей. В базе данных для каждого поля существует одна подзапись поля. *** Ограничения по количеству знаков в записи, максимальному числу по- лей и т.д. смотрите в данном приложении в таблице "Системные возмож- ности". Структура файла типа memo (.FPT) Файл типа memo содержит одну запись заголовка и произвольное число блочных структур. В записи заголовка располагается указатель на следующий свободный блок и размер блока в байтах. Размер устанавливается командой SET BLOCКSIZE при создании файла. Запись заголовка начинается с нулевой позиции файла и занимает 512 байтов. За записью заголовка следуют блоки, в которых содержатся заголовок блока и текст memo. В файл базы данных включены номера блоков, которые ис- пользуются для ссылки на блоки memo. Расположение блока в файле типа memo определяется умножением номера блока на размер блока (находящийся в записи заголовка файла типа memo). Все блоки memo начинаются с четных адресов гра- ниц блоков. Блок memo может занимать более, чем один последовательный блок. ============================================================ ¦ Запись заголовка файла типа memo ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-03 :Расположение следующего свободного блока* ¦ ¦----------------------------------------------------------¦ ¦ 04-05 :Не используются ¦ ¦----------------------------------------------------------¦ ¦ 06-07 :Размер блока (число байтов в блоке) ¦ ¦----------------------------------------------------------¦ ¦ 08-511:Не используются ¦ ¦==========================================================¦ ¦ Заголовок блока memo и текст memo ¦ ¦==========================================================¦ ¦ 00-03 :Сигнатура блока* (указывает тип данных в блоке): ¦ ¦ : а. 0 - шаблон (поле типа шаблон); ¦ ¦ : б. 1 - текст (поле типа memo) ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Длина* memo (в байтах) ¦ ¦----------------------------------------------------------¦ ¦ 08-n :Текст memo (n=длина) ¦ ============================================================ Структура индексного файла (.IDX) В индексных файлах располагается одна запись заголовка и одна или больше записей вершин. В записи заголовка находится информация о корневой вершине, текущем размере файла, длине ключа, особенностях индекса и сигна- тура, а также представление ключа* в коде ASCII, которое можно вывести на печать, и выражения FOR. Запись заголовка начинается с нулевой позиции фай- ла. Во всех других записях вершин содержится атрибут, количество существу- ющих ключей и указатели на вершины, располагающиеся слева и справа (на том же уровне) от данной вершины. Помимо этого, в них находится группа симво- лов, представляющая значение ключа, и либо указатель на вершину нижнего уровня, либо подлинный номер записи в базе данных. Размер каждой записи, которая выведена в файл, равен 512 байтам. В приведенных ниже таблицах показан пример упорядоченной структуры де- рева. ============================================================ ¦ Запись заголовка индексного файла ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-03 :Указатель на корневую вершину ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Указатель на свободную в списке вершину (-1, если ¦ ¦ :таковая отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 08-11 :Указатель на конец файла (размер файла) ¦ ¦----------------------------------------------------------¦ ¦ 12-13 :Длина ключа ¦ ¦----------------------------------------------------------¦ ¦ 14 :Особенности индекса (любое из нижеследующих ¦ ¦ :числовых значений либо их сумма): ¦ ¦ : а. 1 - уникальный индекс; ¦ ¦ : б. 8 - индекс имеет дополнительный оператор FOR. ¦ ¦----------------------------------------------------------¦ ¦ 15 :Сигнатура индекса(для использования в будущем) ¦ ¦----------------------------------------------------------¦ ¦ 16-235:Ключевое выражение (не компилируется; до 220 ¦ ¦ :символов)*,*** ¦ ¦----------------------------------------------------------¦ ¦236-455:Выражение FOR (не компилируется; до 220 символов, ¦ ¦ :оканчивающееся пустым символом) ¦ ¦----------------------------------------------------------¦ ¦456-511:Не используются ¦ ============================================================ ============================================================ ¦ Запись вершины индекса ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-01 :Атрибуты вершины (любое из нижеследующих ¦ ¦ :числовых значений либо их сумма): ¦ ¦ : а. 0 - вершина индекса; ¦ ¦ : б. 1 - корневая вершина; ¦ ¦ : в. 2 - лист. ¦ ¦----------------------------------------------------------¦ ¦ 02-03 :Количество существующих ключей (0, 1 или больше) ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Указатель на вершину, расположенную ¦ ¦ :непосредственно слева от данной вершины (на том ¦ ¦ :же уровне; -1, если отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 08-11 :Указатель на вершину, расположенную ¦ ¦ :непосредственно справа от данной вершины (на том ¦ ¦ :же уровне; -1, если отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 12-511:До 500 символов, включающих в себя значение ключа ¦ ¦ :для длины ключа с четырехбайтовым ¦ ¦ :шестнадцатиричным числом (хранящемся в обычном ¦ ¦ :формате слева направо): ¦ ¦ : Если вершина является листом (атрибут = 02 или ¦ ¦ : 03), тогда четыре байта содержат подлинный номер ¦ ¦ : номер в базе данных в шестнадцатиричном формате -¦ ¦ : иначе 4 байта содержат внутрииндексный ¦ ¦ : указатель.** ¦ ============================================================ Примечания по структуре индексного файла. * Тип ключа не запоминается в индексе. Он должен определяться ин- дексным выражением. ** В вершине-листе все, что отлично от символьных строк, числа, ис- пользуемые в качестве значений ключей и четырехбайтовые номера предст- авляются в байтах, порядок которых изменен на противоположный (в фор- мате Intel 8086). *** Если числа используются в качестве ключей, то они подвергаются специальной обработке. Они преобразовываются согласно нижеследующему способу таким образом, чтобы их можно было отсортировать с помощью та- кой же схемы упорядочения в коде ASCII, что и символы: а. Преобразовать число в формат с плавающей точкой IEEE. б. Изменить на противоположный порядок байтов с порядка Intel на поря- док слева направо. в. Если число отрицательное, взять логическое дополнение числа (изме- нить на противоположные все 64 бита, 1 на 0 и 0 на 1), иначе инверти- ровать только самый левый бит. Пример упорядоченной структуры дерева Поиск ключа в приведенной ниже структуре потребует просмотра единст- венного пути между корневой вершиной и листом. Вершины на самом нижнем уровне являются вершинами-листьями. Так как ключи отсортированы, то все ключи в поддереве меньше либо равны родительской вершине. Корневая вершина : -------------- : : : : Указатель на --- :-1: F,Н :-1: --- Указатель на левую вершину : : : : правую вершину -------------- : : .......: :...... : : v v -------------- -------------- : : : ---->: : : : :-1: C,F : : : : Н :-1: --- Индексная : : : :<---- : : : вершина -------------- -------------- : : : : .......: :...... .......: :...... : :: : v vv v -------------- -------------- -------------- : : : ----->: : : ---->: : : : :-1:A,B,C : : : :D,E,F : : : : G,Н :-1: : : : :<----- : : :<---- : : : -------------- -------------- -------------- : : : :..................:...............: : Вершины-листья На приведенном выше рисунке в качестве значений ключей используются буквы. Обычно каждый ключ имеет четырехбайтовый шестнадцатиричный номер. Номера, соответствующие ключам в листьях, - это подлинные номера базы дан- ных, все ключи в других вершинах - это внутрииндексные указатели, им соот- ветствующие. Байты 12-511 в записях индексных вершин могли бы выглядеть следующим образом: Длина ключа (в байтах) 4 байта : : .......:........ .........:......... : : : : ..................... Значение ключа : шестнадцатиричный : Байт 12 --->: : номер : записи :...............:...................: ..................... Значение ключа : шестнадцатиричный : : : номер : :...............:...................: ..................... Значение ключа : шестнадцатиричный : : : номер : :...............:...................: Комбинация из значения ключа и шестнадцатиричного номера будет зано- ситься в байты 12-511 n раз, где n - число существующих ключей. Структура компактного индексного файла (типа .IDX) ============================================================ ¦ Запись заголовка компактного индексного файла ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-03 :Указатель на корневую вершину ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Указатель на свободную в списке вершину (-1, ¦ ¦ :если таковая отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 08-11 :Резервируются для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦ 12-13 :Длина ключа ¦ ¦----------------------------------------------------------¦ ¦ 14 :Особенности индекса (любое из нижеследующих ¦ ¦ :значений либо их сумма): ¦ ¦ : а. 1 - уникальный индекс; ¦ ¦ : б. 8 - индекс имеет дополнительный оператор ¦ ¦ : FOR; ¦ ¦ : в. 32 - формат компактного индекса; ¦ ¦ : г. 64 - заголовок составного индекса. ¦ ¦----------------------------------------------------------¦ ¦ 15 :Сигнатура индекса ¦ ¦----------------------------------------------------------¦ ¦ 16-19 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦ 20-23 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦ 24-27 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦ 28-31 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦ 32-35 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦ 36-501 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦502-503 :По возрастанию или убыванию: ¦ ¦ : а. 0=возрастание; ¦ ¦ : б. 1=убывание. ¦ ¦----------------------------------------------------------¦ ¦504-505 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦506-507 :Длина пула выражения FOR* ¦ ¦----------------------------------------------------------¦ ¦508-509 :Зарезервированы для внутреннего использования ¦ ¦----------------------------------------------------------¦ ¦510-511 :Длина пула выражения FOR* ¦ ¦----------------------------------------------------------¦ ¦510-1023:Пул выражения ключа (не компилируется) ¦ ============================================================ * В этой информации отслеживается область, используемая в пуле выражения ключа. ============================================================ ¦ Запись внутренней вершины для компактного индекса ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-01 :Атрибуты вершины (любое из нижеследующих числовых ¦ ¦ :значений либо их сумма): ¦ ¦ : а. 0 - индексная вершина; ¦ ¦ : б. 1 - корневая вершина; ¦ ¦ : в. 2 - вершина-лист. ¦ ¦----------------------------------------------------------¦ ¦ 02-03 :Число существующих ключей (0, 1 или больше) ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Указатель на вершину, расположенную ¦ ¦ :непосредственно слева от данной вершины (на том ¦ ¦ :же уровне; -1 - если отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 08-11 :Указатель на вершину, расположенную ¦ ¦ :непосредственно справа от данной вершины (на том ¦ ¦ :же уровне; -1 - если отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 12-511:До 500 символов, включающих в себя значение ключа ¦ ¦ :для длины ключа с четырехбайтовым ¦ ¦ :шестнадцатиричным числом (хранящемся в обычном ¦ ¦ :формате слева направо): ¦ ¦ : Эта вершина всегда содержит ключ индекса, номер ¦ ¦ : записи и внутрииндексный указатель.** ¦ ¦ :Комбинация из значения ключа и четырехбайтового ¦ ¦ :шестнадцатиричного числа будет повторена столько ¦ ¦ :раз, количество которых задается в байтах 02-03. ¦ ============================================================ ============================================================ ¦ Запись внешней вершины для компактного индекса ¦ ¦----------------------------------------------------------¦ ¦ Байты : Описание ¦ ¦==========================================================¦ ¦ 00-01 :Атрибуты вершины (любое из нижеследующих числовых ¦ ¦ :значений либо их сумма): ¦ ¦ : а. 0 - индексная вершина; ¦ ¦ : б. 1 - корневая вершина; ¦ ¦ : в. 2 - вершина-лист. ¦ ¦----------------------------------------------------------¦ ¦ 02-03 :Число существующих ключей (0, 1 или больше) ¦ ¦----------------------------------------------------------¦ ¦ 04-07 :Указатель на вершину, расположенную ¦ ¦ :непосредственно слева от данной вершины (на том ¦ ¦ :же уровне; -1 - если отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 08-11 :Указатель на вершину, расположенную ¦ ¦ :непосредственно справа от данной вершины (на том ¦ ¦ :же уровне; -1 - если отсутствует) ¦ ¦----------------------------------------------------------¦ ¦ 12-13 :Свободное для распределения пространство в ¦ ¦ :вершине ¦ ¦----------------------------------------------------------¦ ¦ 14-17 :Маска номера записи ¦ ¦----------------------------------------------------------¦ ¦ 18 :Маска запасного байтового счетчика ¦ ¦----------------------------------------------------------¦ ¦ 19 :Маска хвостового байтового счетчика ¦ ¦----------------------------------------------------------¦ ¦ 20 :Количество битов, используемых для номера записи ¦ ¦----------------------------------------------------------¦ ¦ 21 :Количество битов, используемых для запасного ¦ ¦ :счетчика ¦ ¦----------------------------------------------------------¦ ¦ 22 :Количество битов, используемых для хвостового ¦ ¦ :счетчика ¦ ¦----------------------------------------------------------¦ ¦ 23 :Количество байтов, содержащих номер записи, ¦ ¦ :запасной счетчик и хвостовой счетчик ¦ ¦----------------------------------------------------------¦ ¦ 24-511:Ключи индексов и информация** ¦ ============================================================ ** Каждый элемент состоит из номера записи, запасного байтового счет- чика и хвостового байтового счетчика, все в сжатом виде. Текст ключа поме- щается в логический конец вершины, обрабатывается он в обратном направле- нии, что позволяет находить элементы предшествующих ключей. Структура составного индексного файла (типа .CDX) Все составные индексы являются компактными. Для того, чтобы отслеживать в файле типа .CDX все теги, применяется единая файловая структура. Эта структура идентична структуре компактного индексного файла за одним исключением - вершины-листья на самом нижнем уровне данной структуры ссылаются на один из тегов в составном индексе. Все теги в индексе имеют свою собственную завершенную структуру, кото- рая тождественна структуре компактного индекса для файла .IDX. Структура файла отчетов в системе FoxPro 1.x (типа .FRX) Примечание. Описываемая здесь структура файла типа .FRX соответствует файлам типа .FRX в системе FoxPro 1.x. Структура файлов типа .FRX, ис- пользуемых в системе FoxPro 2.0, в этом приложении рассматривалась вы- ше. Все записи в файлах отчетов состоят из фиксированного числа полей, ко- торые разделяются табуляционными отметками (0х09). Для каждого типа объекта в отчете существует одна запись. Каждая запись завершается символами "возврат_каретки" (0х0D) и "подача_строки" (0x0A). Вся информация в файле представляется символами в коде ASCII. ============================================================ ¦ Тип объекта с значением поля ¦ ¦----------------------------------------------------------¦ ¦Номер:Screen(1): Text(5) : Box(7) : Reрort :Band ¦ ¦поля : : : : Field(17) :Info(18) ¦ ¦----------------------------------------------------------¦ ¦ 0/1/:экран :текст :блок :поле от- :ленточная ¦ ¦ : : : :чета :информация ¦ ¦ 1/2/:версия :SAY :блок/ :SAY :тип ленты ¦ ¦ : : :блокD/ : : ¦ ¦ : : :блокC : : ¦ ¦ 2 :имя ре- :настоя- :пустое :выражение :групповое ¦ ¦ :сурсного :щий : :элемента :выражение ¦ ¦ :файла :текст : : : ¦ ¦ 3 :заголо- :пустое :пустое :тип поля :пустое ¦ ¦ :вок : : : : ¦ ¦ 4 :положение:положение:положени:положение :останов ¦ ¦ :по верт. :по верт. :по верт.:по верт. :страницы ¦ ¦ 5 :положение:положение:положени:положение :зарезерви- ¦ ¦ :по гориз.:по гориз.:по гориз:по гориз. :ровано ¦ ¦ 6 :высота :высота :высота :высота :высота ¦ ¦ 7 :ширина :ширина :ширина :ширина : ¦ ¦ : :(настоя- : : : ¦ ¦ : :щего : : : ¦ ¦ : :текста) : : : ¦ ¦ 8 :название :пустое :пустое : пустое :пустое ¦ ¦ :шрифта : : : : ¦ ¦ 9 :сдвиг : :0х00 : :подкачать ¦ ¦ :принтера : :или ?/7/: :заголовок ¦ ¦10 : : : : :подкачать ¦ ¦ : : : : :нижний ко- ¦ ¦ : : : : :лонтитул ¦ ¦11 : : : : :пустое ¦ ¦12 : : : : :пустое ¦ ¦13 : : : : :пустое ¦ ¦14 : : : : :пустое ¦ ¦15 : : : : :пустое ¦ ¦16 : : : : :пустое ¦ ¦17 :пустое :пустое :пустое : пустое :пустое ¦ ¦18 :пустое :пустое : : один раз :пустое ¦ ¦ : : : : (0х30)/ : ¦ ¦ : : : : основное : ¦ ¦ : : : : (0х31) : ¦ ¦19/8/:пустое :верхнее/ :верхнее/:верхнее/ : ¦ ¦ : :плавающее:плаваю- :растянутое/:пустое ¦ ¦ : : :щее :плавающее/ : ¦ ¦ : : : :плавающее и: ¦ ¦ : : : :растянутое : ¦ ¦20 :пустое :пустое :пустое :тип :пустое ¦ ¦ : : : :итоговое/9/: ¦ ¦21 :данные :пустое :пустое : сбросить :пустое ¦ ¦ :просмотра: : : итоговое : ¦ ¦ :файла : : : /10/ : ¦ ¦22 :пустое :пустое :пустое : пустое :пустое ¦ ¦23 :коммен- :коммен- :коммен- : коммен- :коммен- ¦ ¦ :тарий :тарий :тарий : тарий :тарий ¦ ¦ :пользо- :пользо- :пользо- : пользо- :пользо- ¦ ¦ :вателя :вателя :вателя : вателя :вателя ¦ ¦24 :данные :данные :данные : данные :данные ¦ ¦ :пользо- :пользо- :пользо- : пользо- :пользо- ¦ ¦ :вателя :вателя :вателя : вателя :вателя ¦ ============================================================ ПРИМЕЧАНИЕ: затененные клетки относятся к полям, которые зарезервиро- ваны для использования в будущем. Если место для поля зарезервировано, то для этого места задаются табуляционные отметки, но символы в мет- ке-заполнителе отсутствуют. Если поле пусто, то присутствует только заполнитель места. Между табуляционными отметками никакие символы не находятся. Примечания к структуре файла. /1/ Типы объектов и их значения в файле: а. экран = 0х31 г. ленточная информация = 0х31 и 0х38 б. текст = 0х35 д. поле отчета = 0х31 и 0х37 в. блок = 0х37 /2/ Значения SAY и GET: а. блок из одной строки = 0х30 (блок) б. блок из двух строк = 0х31 (блокD) в. GET (ввод) = 0х32 (GET или блокC) Если тип объекта - блок, тогда 0х32 представляет блок из одной строки. г. SAY (вывод) = 0х34 (SAY) /3/ Текущая версия для основывающихся на символе отчетов - "1100". /4/ Типы лент и значения, если тип объекта - ленточная информация: а. заголовок = 0х30 е. нижний колонтитул б. заголовок страницы = 0х31 страницы = 0х36 в. заголовок группы = 0х33 ж. обобщение = 0х37 г. деталь = 0х34 д. нижний колонтитул группы = 0х35 /5/ Типы полей: N - числовое D - дата M - memo L - логическое C - символьное /6/ Если тип объекта - ленточная информация и тип ленты - заголовок группы, то 0 = выкл, 1 = вкл. Во всех других случаях это поле пусто. /7/ Размер шрифта для объекта типа блок - 0х30, если это либо блок из одной строки, либо из двух строк. Если же это символьный блок, то дво- ичное значение используемого символа сдвигается на восемь битов влево и это значение заносится в поле в качестве десятичных значений символов в коде ASCII. /8/ Типы объектов и значения флажков: а. верхнее = 0х30 в. плавающее = 0х33 б. растянутое = 0х31 г. плавающее и растянутое = 0х34 /9/ Значения для команды "подвести итог" (символ кода ASCII числа в файле): а. не итоговое = 0 г. среднее = 3 б. счетчик = 1 д. минимум = 4 в. общий итог = 2 е. максимум = 5 /10/ Значения для команды "сбросить итоговое" (символ кода ASCII числа в файле): а. конец отчета = 0 в. конец колонки = 2 б. конец страницы = 1 г. конец группы = 3-22 Структура файла меток для системы FoxPro 1.x (типа .LBX) Примечание. Описываемая здесь структура файла типа .LBX соответствует файлам .LBX в системе FoxPro 1.x. Структура файлов типа .LBX, ис- пользуемым в системе FoxPro 2.00, рассматривалась в этом приложении раньше. В файлах меток содержится информация для одного файла с определением метки так, как ее определил пользователь. Все байты записываются в формате Intel 8086. =========================================================== ¦ Байт : Описание ¦ ¦=========================================================¦ ¦ 00 :Версия: 03 = отметка системы FoxPro ¦ ¦---------------------------------------------------------¦ ¦ 01-60 :Ссылки (символы кода ASCII) ¦ ¦---------------------------------------------------------¦ ¦ 61-62 :Высота: число строк в метке ¦ ¦---------------------------------------------------------¦ ¦ 63-64 :Левое поле: номер колонки левого поля ¦ ¦---------------------------------------------------------¦ ¦ 65-66 :Ширина: ширина метки ¦ ¦---------------------------------------------------------¦ ¦ 67-68 :Перекрестный номер: число меток поперек строки ¦ ¦---------------------------------------------------------¦ ¦ 69-70 :Промежуточные пробелы: число пробелов между ¦ ¦ :метками ¦ ¦---------------------------------------------------------¦ ¦ 71-72 :Промежуточные строки: число строк между метками ¦ ¦---------------------------------------------------------¦ ¦ 73-74 :Длина содержимого выражения ¦ ¦---------------------------------------------------------¦ ¦ 75-n :Содержимое выражения с меткой: перечень выражений¦ ¦ : в метке, разделенных символом "возврат_каретки" ¦ ¦ :(0х01) ¦ =========================================================== Структура файла memo в системе FoxBASE+ (типа .DBT) Файлы memo в системе FoxBASE+ не обладают многосторонностью файлов memo системы FoxPro. В них могут содержаться только текстовые данные в коде ASCII. В данный файл записи выводятся блоками, каждый размером 512 байтов. В блок, начинающийся с нулевой позиции файла, включен номер блока, соответст- вующий первой свободной позиции в файле. Этот номер блока хранится в первых двух байтах в обратном порядке (формат Intel 8086). Для того, чтобы найти адрес первого свободного блока, надо размер одного блока (512 байтов) умно- жить на номер блока. Блоки, которые следуют за первым блоком, содержат текст полей memo из связанной базы данных. В поле memo в файле базы данных содержится номер блока в файле типа memo, который содержит настоящий текст. Все блоки memo начинаются с адресов, границы которых кратны 512 байтам. Структура файла с макроопределениями (типа .FКY) =========================================================== ¦ Заголовок файла ¦ ¦---------------------------------------------------------¦ ¦ Байт : Описание ¦ ¦=========================================================¦ ¦01-03 :Сигнатура, шестнадцатиричное 79ff ¦ ¦---------------------------------------------------------¦ ¦04-15 :Игнорируются ¦ ¦---------------------------------------------------------¦ ¦16-17 :Количество макроопределений (двоичное) ¦ ¦---------------------------------------------------------¦ ¦18-и до :Макроопределение ¦ ¦ конца : ¦ ¦=========================================================¦ ¦ Отдельное макроопределение ¦ ¦=========================================================¦ ¦00-19 :Имя макроопределения ¦ ¦---------------------------------------------------------¦ ¦20-21 :Длина макроопределения (в комбинациях, двоичное)¦ ¦---------------------------------------------------------¦ ¦22-23 :Коминация (два байта, двоичное) ¦ ¦---------------------------------------------------------¦ ¦24-и до :Комбинации макроопределения ¦ ¦ конца : ¦ ===========================================================