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

Вниз

удаление записи изи типизированного файла   Найти похожие ветки 

 
Timka   (2002-01-21 08:59) [0]

Прошу подсказать. есть ли возможность убрать(удалиить) запись из типизированного файла, не переписывая файл целиком


 
Vovochka_guest   (2002-01-21 09:05) [1]

Поставить/ввести атрибут у записи что она удалена?


 
Фэ   (2002-01-21 19:59) [2]

Совет - попробуй вырезать нутрь у арбуза его не разрезая.
Если получиться, то и здесь будет надежда.


 
Timka   (2002-01-24 09:02) [3]

если ввести атрибут, усложнится взаимодействие с программами, а что касается жратвы, я ведь могу взять и отгрызть последнюю сосиску из Бухты. может и тут есть способ "отрезать" конец файла?
или как вариант - может есть способ по полю, вставленному в TCHekBox навести соответствие с записью в файле, указав какую-то ф-цию?


 
Alx2   (2002-01-24 09:07) [4]

>Timka © (24.01.02 09:02)
"тут есть способ "отрезать" конец файла?"

Уж что, а способ конец отрезать, кажется, есть везде :)
Посмотрите в Delphi Help procedure Truncate(var F);


 
DMN   (2002-01-24 11:40) [5]

Открываем файл, перемещаемся к последней записи, читаем ее, перемещаемся к удаляемой записи, записываем на ее место последнюю, перемещаемся к последней записи, обрезаем (или кастрируем?) файл. Он на одну запись короче, мы его не перезаписывали, нужную удалили.
Если порядок записей важен, то надо переписывать все записи после удаленной на одну назад, переписав последнюю - обрезаем файл...


 
Фэ   (2002-01-24 11:51) [6]

Особенно впечатлит работа при числе записей несколько сот тысяч


 
DMN   (2002-01-24 12:10) [7]

Правильнее всего, видимо, комбинированный подход: если порядок записей не важен, то смело можно переписывать последнюю взамен удаленной. А если важен - расставлять атрибут "удалено" и время от времени перепаковывать файл, как делается в dBase, например. Есть еще более продвинутый вариант, со страничной организацией файла.


 
Alx2   (2002-01-24 12:13) [8]

На такие масштабы есть специализированные СУБД.
В крайнем случае, спасет индексирование/хэширование.
А решением проблемы скорости в общем случае (для любого количества записей), давно занимаются разработчики движков для БД. И бегать наперегонки с ними, думаю, нет резона.


 
amamed_3071   (2002-01-24 12:23) [9]

използуй
BlockRead
BlockWrite
a потом Truncate


 
Anatoly Podgoretsky   (2002-01-26 23:15) [10]

Фэ © (24.01.02 11:51)
Для таких объемов надо использовать или другие методы хранения или другие подходы к обработке данных, в то же время 100000 записей не очем не говорит, если размер записи маленький, скажем до 100 мегабайт, то можно весь файл хранить в памяти.

Во всяком случае сначало надо поработать над постановкой задачи.


 
Timka   (2002-01-31 08:34) [11]

большое спасибо за Trunc(); теперь даже как-то неловко, типа, где же были мои глаза раньше...



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

Форум: "Основная";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-42752
BillyJeans
2002-01-31 09:33
2002.02.14
Где взять TDBGridEH?


14-42855
Snake
2001-12-24 18:03
2002.02.14
Администрирование Win2000


7-42887
aguliver
2001-11-06 06:52
2002.02.14
Как обработать данные с микрофона в Real-Time


4-42898
M O'Hare
2001-12-13 11:24
2002.02.14
Новый вопрос на старую тему - список всех задач


6-42813
vinni2000
2001-11-23 11:52
2002.02.14
Как соеденить клиента и сервера





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский