![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
packed record [D7]
Firefly © (2006-05-25 21:35:00)Народ, подскажите, как удалить запись из packed record?
tesseract (2006-05-26 09:21:00) [1]Очередное изобретение DBF?
Почему бы просто не вести счёт удалённым записям. ввести ещё одиy параметр - Deleted, и при сохранении проверять его, Если он стоит, то на его место записываем новые данные, если нет - идём дальше.
Firefly (2006-05-25 23:02:00) [2]
> [9] Sergey Masloff
Попробую так.
> [11] Loginov Dmitry ©
:-))Поизящнее - покрасиВШе.
Еще играет детское желание выпендриться, сделать как-нибудь похитрее)))
В любом случае, всем ответившим - спасибо!
Loginov Dmitry (2006-05-25 22:29:00) [3]Firefly © (25.05.06 22:18) [8]
В том-то и вопрос - как из сохранить на диск только требуемые записи?
В [4] и [6] все уже сказано.
(Думаю, поизящнее = максимально эффективно)?
unknown (2006-05-25 22:26:00) [4]
> Firefly © (25.05.06 22:18) [8]
> неоправданно разрастаться.
Надо просто организовать механизм упаковки - т.е. переписываем
в новый файл данные из старого, за исключением помеченных на
удаление, затем старый файл заменяем новым.
Sergey Masloff (2006-05-25 22:25:00) [5]Firefly © (25.05.06 22:18) [8]
>Файл изначально пихается в поток, сохраняю его тупо:
>MyStream.free;
мда... действительно для сохранения оно как-то того...
>записей файл будет неоправданно разрастаться.
На фига. Новые писать поверх тех что с флагом
Firefly (2006-05-25 22:18:00) [6]
> [5] Джо ©
Надеюсь, вы просто забыли поставить смайлик, ведь я вовремя поправился)))
Файл изначально пихается в поток, сохраняю его тупо:
MyStream.free;
В том-то и вопрос - как из сохранить на диск только требуемые записи?
> Virgo_Style
Можно и так, но при частом добавлении/удалении записей файл будет неоправданно разрастаться.
Джо (2006-05-25 22:03:00) [7]> Я надумал делать так: создать еще один файл, в него переписать
> все рекорды кроме удаляемого, исходный файл грохнуть, новому
> присвоить имя исходного.
Нормальный вариант. Еще один: считать весь файл в память, при его записи на диск не записывать требуемые записи.
Virgo_Style (2006-05-25 22:03:00) [8]Firefly © (25.05.06 21:57) [4]
поизящнее
добавить в запись флаг "удалена"
Джо (2006-05-25 22:01:00) [9]пишем в редакторе
type
TMyRecord = packed record
a: Integer;
end;
Подводим курсор к нужному полю, нажимаем и удерживаем клавишу Del до достижения нужного эффекта.
Firefly (2006-05-25 21:57:00) [10]Извиняюсь.
Не рекорд, а типизированный файл, в который записаны рекорды.
В файле есть 5 рекордов. Нужно удалить, скажем, второй.
Я надумал делать так: создать еще один файл, в него переписать все рекорды кроме удаляемого, исходный файл грохнуть, новому присвоить имя исходного.
Но хотелось бы сделать поизящнее:-))
Desdechado (2006-05-25 21:51:00) [11]record - это тип данных
из переменной какого-либо типа нельзя что-то "удалить"
Firefly (2006-05-25 21:46:00) [12]Неправильно выразился.
Один элемент из record
Desdechado (2006-05-25 21:40:00) [13]запись из записи? оригинально