How to delete record in file

6 отговора 274 прегледа
#1

How to delete record in file

Please,will say more good method

my method is:

procedure del_rec(fname : string;target : longint;rec_size : longint);
type

t_buf=array[1..65520] of byte;

var
f : file;
buf : ^t_buf;
n : integer;

begin
new(buf);
assign(f,fname); { open your file }
reset(f,1);
blockread(f,buf^,sizeof(buf^),n);
close(f);

move(buf^[succ(target)*rec_size],buf^[target*rec_size],n-(target*rec_size));
dec(n,rec_size);
rewrite(f,1);
blockwrite(f,buf^,n);
close(f);
dispose(buf);

end;

Отговор
в отговор на Patilan #2

Re: How to delete record in file

Казва се better, а не more good.

Какво ще стане, ако файла е 65521 байта?

Отговор
в отговор на Hиkoлaй #3

Re: How to delete record in file

Не ми трябва коментар на очевидни неща !
Трябва ми Help !

Отговор
в отговор на Patilan #4

Re: How to delete record in file

Я, знаел и български!

My blade can cut through armor, and still cut a tomato
Отговор
в отговор на Lupi #5

Re: How to delete record in file

Получил е временно просветление.

Я вышел им наперерез!
Отговор
в отговор на Patilan #6

Re: How to delete record in file

Защо се пробваш да използваш език който не знаеш.
Отговор на въпроса ти има ама МОЖЕ БИ ще го получиш като се научиш да питаш на български.

п.с. HELP на български се пише така: ПОМОЩ

Отговор
в отговор на Patilan #7

Re: How to delete record in file

За обикновен файл без допълнителна индексна информация това е единствения начин. Може да се оптимизира, ако записът който искаш да изтриеш е последен - има си функция с която се отрязва дължината на файла.

Отговор