|
|
|
Формат хранения данных Autoincrement-поля (Paradox)
|
|||
|---|---|---|---|
|
#18+
Когда-то попала мне в руки Парадоксовская (DOS,866) db-таблица, в которой 20 полей числового и символьного(строкового) типа, а первое из этих полей - Autoincrement. По крайней мере, именно так его распознает Аксесс после импортирования. Пробовал также импортировать эти же данные в Excel и в VFP. После импортирования данные отображаются корректно, по крайней мере - содержимое первого поля трактуется идентично. Но вот что чтранно. Недавно обратил внимание на то, что в режиме 16-ричного просмотра исходного db-файла содержимое первого поля имеет весьма НЕРЕГУЛЯРНУЮ последовательность (с произвольными перескоками): BF F0, C0 00, C0 08, C0 10, C0 14, ..., C0 20, ...,C0 30, C0 31, ..., C0 40, C0 40 80, C0 41, C0 41 80, C0 42, C0 42 80, ..., C0 F3 C0 F0, ..., C0 F3 DA F0, ..., C0 F6 BD 30. А вот - соответствующие им (после импорта) значения этого поля: 1, 2, 3, 4, 5, ..., 8, ..., 16, 17, ..., 32, 33, 34, 35, 36, 37, ..., 80911, ..., 81327, ..., 92961. Т.е., в исходном 16-ричном варианте прирост между двумя последовательными значениями колеблется: есть разница в 8 единиц, в 4 единицы, в 2, затем в 1, а потом и вовсе разрядность перескакивает. Если последние (самые большые значения) еще хоть как-то похожи на свои 16-ричные прототипы (например, 80911 в 16-ричном виде выглядит как 13 C0 F, а в исходном файле - F3 C0 F0, т.е. разница - E0 00 00, она же сохраняется и для значений ..., 81327, ..., 92961), то для значений Autoincrement-поля с меньшей разрядностью наблюдаются совершенно различные алгоритмы для разных числовых участков. НО: все вышеупомянутые программы-импортеры, словно сговорившись, преподносят всю эту "непоследовательную нерегулярность" в виде вполне регулярной числовой последовательности! Как же они улавливают некий общий алгоритм в этой каше из разных алгоритмов? Я еще допускаю, что самый первый символ C0 в каждом значении служит некой меткой начала отсчета поля, хотя - тогда самое первое значение не вписывается в это правило... Короче, любители головоломок, прикиньте на досуге - в чем тут может быть фишка? Если надо, могу исходный файл выложить. А, может, кто-нибудь 100%-но знает сей загадочный алгоритм? Поделитесь соображениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 22:32 |
|
||
|
|

start [/forum/topic.php?fid=56&msg=34460636&tid=2016174]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 356ms |

| 0 / 0 |
