TURBO PASCAL |
Новости
|
Удаление записи
При реализации режима удаления записи нам нужно учесть тот факт, что порядок следования записей в файле и коллекции может быть различным. Поэтому в процедуре DeleteItem организуется цикл поиска в файле удаляемой записи: Procedure DeleteItem; {Удаляет указанный в Location элемент данных} var D: Integer; PStr: PString; s: String; Data: DataType; begin PStr := PS.At(Location){Получаем текущую запись} s := copy(PSr,1,LName) seek(DataFile,0); D := -1;{D - номер записи в файле} repeat{Цикл поиска по совпадению поля Name:} inc(D); read(DataFile,Data); with Data do while Length(Name) < LName do Name := Name+' ' until Data.Name=s; seek(DataFile,pred(FileSize(DataFile))); read(DataFile,Data); {Читаем последнюю запись} seek(DataFile,D); write(DataFile,Data); {Помещаем ее на место удаляемой} seek(DataFile,pred(FileSize(DataFile))); truncate(DataFile); {Удаляем последнюю запись} with РS do D := IndexOf(At(Location)); PS.AtFree(D); {Удаляем строку из коллекции} Draw {Обновляем окно} end; {DeleteItem}
|
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |