Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

Как удалить запись из типизированного файла?   Найти похожие ветки 

 
amo   (2003-12-29 16:06) [0]

Здравствуйте уважаемые мастера! Помогите пожалуйста заблудившемуся в дебрях Delphi ламеру, подскажите как удалить из типизированного файла запись.


 
Anatoly Podgoretsky ©   (2003-12-29 16:13) [1]

Сдвиг


 
amo   (2003-12-29 16:16) [2]

А по подробнее если можно.


 
Anatoly Podgoretsky ©   (2003-12-29 16:18) [3]

Сдвинуть на место удаленой


 
YuRock ©   (2003-12-29 16:19) [4]

Это сделать не просто (не быстро). Для этого есть 2 способа:

1. (плохой): в цикле перезаписывать записи от конца к удаляемой записи:

AssignFile(hFile, "имя файла");
ReSet(hFile);
Seek(hFile, <номер удаляемой записи>);
while not EOF(hFile) do
begin
Read(hFile, DataRecord);
Seek(hFile, FilePos(hFile) - 2);
Write(hFile, DataRecord);
Seek(hFile, FilePos(hFile) + 1);
end;
Seek(hFile, FilePos(hFile) - 1);
Truncate(hFile);
CloseFile(hFile);


2. В DataRecord сделать флажек Deleted, и просто присваивать ему True при удалении (ну и, естественно, ставить фильтр при обработке). Если хочешь - можно написать процедуру упаковки (и вызывать ее иногда), которая удаляет все помеченные на удаление записи. На основе (1) ты это легко напишешь.


 
YuRock ©   (2003-12-29 16:21) [5]

В 1 я имел в виду
Seek(hFile, <номер удаляемой записи> + 1), конечно...


 
amo   (2003-12-29 16:21) [6]

Огромное человеческое спасибо!



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

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
7-37944
Tomkat
2003-10-31 09:05
2004.01.13
Сгорит ли LPT ?


3-37524
OlegM
2003-12-16 10:00
2004.01.13
Добавить изображение в Blob поле


9-37482
15teen
2003-06-30 00:04
2004.01.13
Алгоритм для игры пятнашки


14-37923
MadDiger
2003-12-20 13:21
2004.01.13
Delphi8


1-37669
Rradion
2003-12-26 14:53
2004.01.13
ОБХОД ГРАФА ( в глубину ) - помогите, кто в курсе!