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

Вниз

Работа с файлами   Найти похожие ветки 

 
Lony ©   (2004-01-01 17:36) [0]

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


 
default ©   (2004-01-01 18:52) [1]

"строку типизированного файла"
у типизированных файлов нет строк в общепринятом понимании


 
jack128 ©   (2004-01-01 19:07) [2]

var
f: file of TMyType;
Buffer: TMyType;
i : integer;
begin
...
for i := DeleteIndex + 1 to FileSize(f) - 1 do
begin
Seek(f, i);
Read(Buffer);
Seek(f, i - 1);
Write(Buffer);
end;
SetEndOfFile(TFileRec(f).Handle); // не знаю как это на стандартном паскале
end; //нужные проверки сам допишешь
P.S. Производительность можно сказать нуль, но нечего, и так сойдет


 
raidan ©   (2004-01-01 20:01) [3]

Как вариант - очищать эту запись ("строку" в вашем понимании), а после очистки 5,10,50 (сколько угодно) записей пересобрать файл (удалить пустые записи).
ИМХО так побыстрее будет, особенно для крупных файлов :)



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

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

Наверх




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


1-37798
ghg
2003-12-28 11:57
2004.01.13
TPersistent.Assign


14-37938
SergP
2003-12-19 19:49
2004.01.13
NMHTTP. Нужно отправить данные методом POST.


1-37704
Крутыш
2003-12-24 22:17
2004.01.13
Как сделать обращение к MdiChild –форме из другой MdiChild-формы?


14-37895
mfender
2003-12-17 20:06
2004.01.13
Отключение модема по времени.