Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

packed record   Найти похожие ветки 

 
Firefly ©   (2006-05-25 21:35) [0]

Народ, подскажите, как удалить запись из packed record?


 
Desdechado ©   (2006-05-25 21:40) [1]

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


 
Firefly ©   (2006-05-25 21:46) [2]

Неправильно выразился.
Один элемент из record


 
Desdechado ©   (2006-05-25 21:51) [3]

record - это тип данных
из переменной какого-либо типа нельзя что-то "удалить"


 
Firefly ©   (2006-05-25 21:57) [4]

Извиняюсь.
Не рекорд, а типизированный файл, в который записаны рекорды.
В файле есть 5 рекордов. Нужно удалить, скажем, второй.
Я надумал делать так: создать еще один файл, в него переписать все рекорды кроме удаляемого, исходный файл грохнуть, новому присвоить имя исходного.
Но хотелось бы сделать поизящнее:-))


 
Джо ©   (2006-05-25 22:01) [5]

пишем в редакторе
type
 TMyRecord = packed record
   a: Integer;
 end;

Подводим курсор к нужному полю, нажимаем и удерживаем клавишу Del до достижения нужного эффекта.


 
Джо ©   (2006-05-25 22:03) [6]

> Я надумал делать так: создать еще один файл, в него переписать
> все рекорды кроме удаляемого, исходный файл грохнуть, новому
> присвоить имя исходного.

Нормальный вариант. Еще один: считать весь файл в память, при его записи на диск не записывать требуемые записи.


 
Virgo_Style ©   (2006-05-25 22:03) [7]

Firefly ©   (25.05.06 21:57) [4]
поизящнее


добавить в запись флаг "удалена"


 
Firefly ©   (2006-05-25 22:18) [8]


> [5] Джо ©

Надеюсь, вы просто забыли поставить смайлик, ведь я вовремя поправился)))
Файл изначально пихается в поток, сохраняю его тупо:
MyStream.free;
В том-то и вопрос - как из сохранить на диск только требуемые записи?

>  Virgo_Style

Можно и так, но при частом добавлении/удалении записей файл будет неоправданно разрастаться.


 
Sergey Masloff   (2006-05-25 22:25) [9]

Firefly ©   (25.05.06 22:18) [8]
>Файл изначально пихается в поток, сохраняю его тупо:
>MyStream.free;
мда... действительно для сохранения оно как-то того...

>записей файл будет неоправданно разрастаться.
На фига. Новые писать поверх тех что с флагом


 
unknown ©   (2006-05-25 22:26) [10]


> Firefly ©   (25.05.06 22:18) [8]
> неоправданно разрастаться.

Надо просто организовать механизм упаковки - т.е. переписываем
в новый файл данные из старого, за исключением помеченных на
удаление, затем старый файл заменяем новым.


 
Loginov Dmitry ©   (2006-05-25 22:29) [11]

Firefly ©   (25.05.06 22:18) [8]
В том-то и вопрос - как из сохранить на диск только требуемые записи?


В [4] и [6] все уже сказано.

(Думаю, поизящнее = максимально эффективно)?


 
Firefly ©   (2006-05-25 23:02) [12]


> [9] Sergey Masloff

Попробую так.

> [11] Loginov Dmitry ©

:-))Поизящнее - покрасиВШе.
Еще играет детское желание выпендриться, сделать как-нибудь похитрее)))

В любом случае, всем ответившим - спасибо!


 
tesseract ©   (2006-05-26 09:21) [13]

Очередное  изобретение DBF?

Почему бы просто не вести счёт удалённым записям. ввести ещё одиy параметр - Deleted, и при сохранении проверять его, Если он стоит, то на его место записываем новые данные, если нет - идём дальше.



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.095 c
15-1147976042
Seldon
2006-05-18 22:14
2006.06.11
плагин к XChat


2-1148566518
cardexc
2006-05-25 18:15
2006.06.11
Исключительная ситуация


2-1148416743
Helen
2006-05-24 00:39
2006.06.11
Кнопка


15-1148064518
Ten10
2006-05-19 22:48
2006.06.11
Численные методы


15-1147334882
TohaNik
2006-05-11 12:08
2006.06.11
ЧМ по хоккею.