Вниз
Скачать: CL | DM;

потерялся индекс в фоксе, как быть?   Найти похожие ветки 

← →
DmitryA ©   (2001-12-20 18:29) [10]

Ну, ребята! Вы меня просту умилили!!!

Зачем с черто-то шутить? Вот исходники. Можно попробовать, хотя реально они выглядят несколько иначе (я их рихтовал уже в IN Browser"е). Но должно работать!..

TDBFHeader = record
abBuffer0: array[0..7] of byte;
wHeaderLength: word;
abBuffer1: array[0..17] of byte;
bMDX: byte;
abBuffer2: array[0..2] of byte;
end;

TDBFDesc = record
abBuffer0: array[0..30] of byte;
bMDX: byte;
end;

function DropIndexes(const DBFFileName: string): boolean;
var Header: TDBFHeader;
Desc: TDBFDesc;
iHandle, iDescCount, iDesc: integer;
sFileName: string;
begin
Result := true;

// Кооректируем заголовок
sFileName := DBFFileName + ".DBF";
iHandle := FileOpen(sFileName, fmOpenReadWrite or fmShareDenyNone);
if iHandle = -1 then
begin
Result := false;
exit;
end;

FileRead(iHandle, Header, 32);

Header.bMDX := 0;

FileSeek(iHandle, 0, fsSET);
FileWrite(iHandle, Header, 32);

iDescCount := (Header.wHeaderLength - 33) div 32;
for iDesc := 1 to iDescCount do
begin
FileRead(iHandle, Desc, 32);

Desc.bMDX := 0;

Application.ProcessMessages();

FileSeek(iHandle, iDesc * 32 , fsSET);
FileWrite(iHandle, Desc, 32);
end;

FileClose(iHandle);

// Удаляем индекс, если есть
sFileName := DBFFileName + ".MDX";
if FileExists(sFileName) then SysUtils.DeleteFile(sFileName);
end;

И еще.

Olivka! Если у Вас проблемы, пишитя прямо на мой e-mail: dmitry@lintec.net.ua



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
7-100085
Win
2001-10-20 12:30
2002.01.31
TRegistry


1-100016
jorh
2002-01-15 14:32
2002.01.31
потоки текут


14-100052
evgeg
2001-12-08 15:16
2002.01.31
Какой проект можно считать большим? И кто в таких участвовал?


14-100056
\/\/ \/\/ \/\/
2001-12-02 10:14
2002.01.31
Помогите плииз!!!


1-99991
Анатолий
2002-01-14 21:18
2002.01.31
Выделить маленькие отрезки чисел в большом отрезке чисел?




   Наверх