Из хелпа:
Код: Выделить всё
Example:
Names FILE,DRIVER('TopSpeed'),PRE(Nam) !Declare a file structure
NameKey KEY(Nam:Name),OPT !Declare name key
NbrNdx INDEX(Nam:Number),OPT !Declare number index
DynNdx INDEX() !Declare a dynamic index
Rec RECORD
Name STRING(20),NAME('Nam:Name')
Number SHORT,NAME('Nam:Number')
END
END
CODE
OPEN(Names,12h) !Open file, exclusive read/write
BUILD(Names) !Build all keys on Names file
BUILD(Nam:NbrNdx) !Build the number index
!Build dynamic index ascending number, ascending name:
BUILD(Nam:DynNdx,'+Nam:Number,+Nam:Name')
BIND('Nam:Name',Nam:Name) !BIND the filter variable
!Build dynamic index of names that start with A:
BUILD(Nam:DynNdx,'+Nam:Name','UPPER(Nam:Name[1]) = A')
UNBIND('Nam:Name') !UNBIND the filter variable
Т.е. файл надо открывать в монопольном режиме. Что при работе в сети малореализуемо. А, если файлы TPS, то, вообще, это делать не надо. Если есть проблемы с файлом, то нужно использовать утилиту TPSFIX.
И, ещё. Давно-давно был шаблон, который файл конвертит в новую структуру с соответствующем сервисом при загрузке программы. Удобно для обновлений.