Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.022 c
15-1147808951
DillerXX
2006-05-16 23:49
2006.06.11
Помогите с вордом :(


4-1142617056
KALqYAN
2006-03-17 20:37
2006.06.11
Open -> My Computer, My Documents, Control Panel...


2-1148801707
Вася
2006-05-28 11:35
2006.06.11
день недели


2-1148808107
antonn
2006-05-28 13:21
2006.06.11
Курсор и Хинт формы


2-1148724673
Id
2006-05-27 14:11
2006.06.11
Параметр "Вычислить как..."





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский