|
|
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Есть у меня структура, скажем, такая: Код: plaintext 1. 2. 3. 4. Я додумался только до двух вариантов решения такой задачи: 1. окрыть файл для чтения, считать его содержимое в массив структур guy_t, потом открыть файл на перезапись и записать в него только те, у которых id меньше 5 или больше 15 2. создать временный файл, куда записать те записи, которые должны сохраниться (с id меньше 5 или больше 15), потом заменить этим файлом исходный. Оба решения кажутся несколько громоздкими, может есть более простой путь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 13:29 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Отмечай удаленные и не читай их Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 13:45 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Хм, тоже вариант... Однако все равно придется выполнять сжатие файла одним из вышеуказанных способов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 14:57 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
GlockХм, тоже вариант... Однако все равно придется выполнять сжатие файла одним из вышеуказанных способов. Да, но сжатие выполняется не так часто как удаление... Поэтому, в итоге потери времени на "сжатие" файла будут намного меньше... И еще: если список "полей" структуры еще не окончательный, то я рекомендовал бы добавить еще одно поле: char deleted; для указания факта логического (без сжатия файла) удаления "записи"... Кстати, похожим образом организовано хранение данных в формате dbf-файла: - в заголовке имеем количество записей, описание полей записи (название, тип, длина в символах) + прочая служебная информация - после специального символа, ограничивающего заголовок, расположены сами данные.... Так что, "все уже давно было выдумано"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:06 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
В любом случае, перезапись - не лучший вариант Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:07 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасВ любом случае, перезапись - не лучший вариант Posted via ActualForum NNTP Server 1.3 Но именно так происходит упаковка/сжатие, например dbf файлов... И именно упаковка/сжатие позволяет иногда (когда очень много удаленных записей) повысить скорость работы приложения... Естественно, что упаковка делается нечасто. Например, 1 раз в неделю при интенсивной работе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:12 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Станислав C.Но именно так происходит упаковка/сжатие, например dbf файловя говорю о перезаписи существующего файла. Упаковка дбф происходит именно не так. На самом деле, сначала пишется новый файл, который заменяет старый только в случае успеха операции. Никаких перезаписей в старом файле не происходит - это прямой путь в ад Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:48 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Станислав C.....именно упаковка/сжатие позволяет иногда (когда очень много удаленных записей) повысить скорость работы приложения... Естественно, что упаковка делается нечасто. Например, 1 раз в неделю при интенсивной работе... влияние редкой инфы в Ваших массивах данных - зависит от алгоритмов обработки этих данных. Зная это - можно подсчитать самый НЕ эффективный случай при всех исходных. Потом подумать - как часто сие будет происходить, причины приведшие к этому... Это предпосылки реально прикинуть проблему, если такая будет. по поводу упаковки - так же может приводить а новой аллокации места на диски (всё зависит от логики) - посему это не панацея. Как грамотно её делать - это вот более (на мой взгляд) интересная весчь. А делать её мона и постоянно кстати, в фоновом режиме, тихой сапой...если уж Вам так необходимо. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:49 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Сейчас потихоньку придем к теме создания самописного SQL-сервера Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:51 |
|
||
|
Удаление записи из файла
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас....SQL-сервера .... с использование сервака приложения !!! :) даёшь понедельник ! (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:53 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33376860&tid=2032461]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 347ms |

| 0 / 0 |
