Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Просмотр индексного файла  [new]
as_is
Member

Откуда:
Сообщений: 9
Скажите пожалуста, есть ли возможность просмотреть содержимое файлов cdx и ntx. (т.е. непосредственно содержимое столбца (столбцов) по которым идет индексация)?
21 апр 06, 08:46    [2587297]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
?sys(14,1) &&выражение индекса
?tagcount()
?tag()
21 апр 06, 09:44    [2587445]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
ATAGINFO() - появилась в VFP7
21 апр 06, 10:47    [2587813]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
as_is
Member

Откуда:
Сообщений: 9
Небольшое пояснение - в наличии имеются только сами cdx файлы без таблиц.
21 апр 06, 13:58    [2589387]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Это сложнее. В принципе, конечно, тоже можно. Но придется разбираться со структурой хранения информации в индексных файлах.

Общая идея простая. В индексе хранится пара: значение ключа - физический номер записи. Не значение поля, а значение ключа. Ведь выражение индекса не обязательно совпадает с именем одного поля. Это может быть некая функция.

Вся проблема в том, как именно это хранится. Особенно в мультииндексных файлах (CDX). Описание структуры CDX есть в HELP по FoxPro.

Никаких автоматических средств для этого нет. Придется вручную разбирать структуру файла. Лично я этим не занимался. Если сюда заглянет Igor Korolyov, то он может сказать подробнее. Он даже хотел писать некую процедурку разбора индексного файла, но, похоже, руки так и не дошли. Поищи его топики в данном форуме.
21 апр 06, 14:09    [2589483]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Владимир!

Да нет, утилита то по большей части написана, но не отлажена, потому я и не
выкладывал её в законченном виде, а вот куски кода помнится публиковал...
Также где-то в инете я видел подобную утилиту (не на фоксе правда
написанную) - не уверен правда что она поддерживает все нововведения
последних версий фокса...

Posted via ActualForum NNTP Server 1.3

22 апр 06, 22:51    [2593226]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
karly™
Guest
Мой ответ к сожалению без конкретики, т.к. давно это было..

Нужно было просмотреть содержимое cdx-файла к таблице, созданной из клиппера с поддержкой cdx. Конкретно, интересовал один индексный тег по неизвестной функции.

Сначала я решил пойти по пути brute force, и искать значение ключа для данной строки путем подбора. Т.е. устанавливаешь нужный тег активным, даешь установки set exact off, set near on, начинаешь перебирать все символы от chr(0) до chr(255) и подставлять их в команду seek, анализируя полученный результат.

Проблема оказалась в том, что этот алгоритм работал для простых индексов. А для индекса, созданного в клиппере по функции, фокс возвращал неверный тип выражения - числовой вместо текстового.

Потом я нашел программку в инете, которая вроде бы делала необходимые действия. Но у нее была та же проблема с несовпадением типов.

В результате необходимая функция обнаружилась в той самой библиотеке клиппера, которая позволяет создавать индексы cdx - она возвращала значение индекса для данной строки. Я тогда даже посетовал, что аналогичной функции нет в VFP.

Что за программу я скачал из инета, и какая именно функция в клиппере меня спасла, я увы - уже не помню... Надеюсь, сам факт их существования поможет вам найти решение вашей проблемы ;-)
23 апр 06, 22:57    [2594142]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
as_is
Скажите пожалуста, есть ли возможность просмотреть содержимое файлов cdx и ntx. (т.е. непосредственно содержимое столбца (столбцов) по которым идет индексация)?

Интересно было бы узнать, зачем Вам это надо?
24 апр 06, 09:21    [2594488]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
as_is
Member

Откуда:
Сообщений: 9
Зачем это нужно? Начальство как известно думает за нас... Постоянно терялись данные в старой досовской программе. Из-за сбоев требовалась переиндексация. И вот от руководства поступило указание предоставить содержимое индексного файла, для сравнения с оригиналом. Думали проблема в индексном файле.
Оказывается, при индексации содержимое таблицы восстанавливается из индекса.. Вот так век живи - век учись... И смех и грех. :))

А вообще задачка интересная...
25 апр 06, 11:24    [2599340]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8873
as_is
Постоянно терялись данные в старой досовской программе. Из-за сбоев требовалась переиндексация...

А если предложить руководству немного потратить денег на аппаратные средства и переписать программу под VFP 9.0 (буферизация, транзакции, Web Services...) ? Многие проблемы явно уйдут...

But anway, good luck!
25 апр 06, 13:09    [2600115]     Ответить | Цитировать Сообщить модератору
 Re: Просмотр индексного файла  [new]
w3d
Member

Откуда: Сургут
Сообщений: 681
as_is
Оказывается, при индексации содержимое таблицы восстанавливается из индекса..

И как это было сделано, если не секрет?
25 апр 06, 14:30    [2600583]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить