Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

запись из записи? оригинально


Наверх

Титульная страница Поиск, карта сайта Написать письмо