Показать сообщение отдельно
  #5  
Старый 15.12.2013, 23:55
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от mad-d
P.S. А можно ли как-нибудь реализвать процедуру редактирования и удаления отдельных записей в файле. Если есть мысли, то поделитесь =) Буду нереально рад
http://tempfile.ru/file/3031352
12345123
Редактирование записи: перемещаемся с помощью Seek к записи которую нужно отредактировать, читаем её с помощью Read в переменную-запись (Cars: TCar), выводим данные на форму и даём пользователю возможность изменять. Когда пользователь нажимает "Сохранить" считываем данные с формы в переменную-запись (Cars: TCar), опять перемещаемся к этой же записи с помощью Seek и записываем назад данные с помощью Write.

Удаление записи: если нужно удалить последнюю запись, то всё просто - перемещаемся к ней с помощью Seek и обрезаем файл с помощью Truncate.
Если же нужно удалить не последнюю запись, то чуть сложнее: перемещаемся к последней записи с помощью Seek, читаем содержимое в переменную-запись (Cars: TCar) с помощью Read, перемещаемся с помощью Seek к записи которую нужно удалить и записываем в эту запись содержимое переменной-записи (Cars: TCar) с помощью Write, потом опять перемещаемся к последней записи с помощью Seek и обрезаем файл с помощью Truncate.

p.s. Количество записей которые уже есть в файле можно узнать с помощью FileSize. Если от этого числа отнять единицу, то получим номер последней записи, если это не отрицательное число, то указывая его в процедуре Seek можем переместиться к последней записи.
Ответить с цитированием