Вот итоговая процедура:
Код | TRecBody = packed record Name: string[255]; Password: string[255]; Note: string[255]; end;
|
Код | procedure TMainForm.DeleteItem; {полное удалдение записи о пароле} var RecBody: TRecBody; RecFile: file of TRecBody; I,J: integer; begin AssignFile(RecFile,ExtractFilePath(Application.ExeName)+'\Content.rpd'); Reset(RecFile); for J:=0 to ListBox.Count-1 do //элементы отображены в ListBox if ListBox.Selected[J] then // выбрали строку J begin Seek(RecFile,J); Read(RecFile,RecBody); if MessageDlg('Запись будет удалена',mtConfirmation,[mbOk,mbCancel],0) = mrOk then begin I:=J; while not EOF(RecFile) do //до конца файла begin {читаем следующий элемент и записываем в предыдущий...} Seek(RecFile,I+1); if not Eof(RecFile) then begin Read(RecFile,RecBody); Seek(RecFile,I); write(RecFile, RecBody); Inc(I); end; end; seek(RecFile, FileSize(RecFile)-1); Truncate(RecFile); //обрезаем нафиг конец у файла end; CloseFile(RecFile); Exit; end; CloseFile(RecFile); end;
|
|