= Сообщение: 36911 из 47643 =============================== RU.FIDONET.TODAY = От : Nil A 2:5015/46 28 Aug 23 00:47:40 Кому : Stas Mishchenkov 28 Aug 23 00:47:40 Тема : BaseMsgNum в JAM FGHI : area://RU.FIDONET.TODAY?msgid=2:5015/46+64ebc877 На : area://RU.FIDONET.TODAY?msgid=2:460/5858+64eafc2b = Кодировка сообщения определена как: CP866 ================================== ============================================================================== Hello, Stas!
Sunday August 27 2023 10:12, from Stas Mishchenkov -> Nil A:
SM> Существует два способа удаления сообщений. Один из них тебе не SM> подходит.
Мне подходят оба способа, см. ниже. Мне не подходит то, как пуржилка/упаковщий обрабатывает помеченные к удалению сообщения.
SM> Сделанная мной утилита предназначена для другого. Какой SM> смысл удалять старое сообщение, если размер файлов базы не SM> уменьшается? Просто по тому, что глаза б мои его не видели?
Во-первых, от удалённого сообщения всегда можно вычистить тело сообщения из .JDT. Во-вторых, можно даже вычистить запись о сообщении из .JHR
SM> Тебе нужно, что бы сообщения только помечались, как удалённые, но на SM> самом деле оставались в базе ради сохранения нумерации сообщений. Так SM> умеют ещё геха и фастэха.
Мне надо, довольно просто, чтобы: - Удалённые "слева" сообщения просто добавляли счётчик BaseMsgNum. - Сообщения удалённые после первого неудалённого - должны оставаться в .JDX, и оба значения становились -1. - Можно даже вынести сообщение из .JDT, ведь из .JDX нет ссылки больше. - Надо точно вынести текст сообщения из .JDT. Даже если осталась запись в .JDT, там будет атрибут MSG_DELETED.
Итого. Одно удалённое сообщение в базе начинает занимать 2*ulong = 8 байт, КАРЛ! Просто 8 байт, оставьте дырочку, и у нас будет _абсолютный номер_ сообщения *абсолютным*.
Best Regards, Nil --- GoldED+/LNX 1.1.5 * Origin: Linux 2.6.32-042stab145.3 (2:5015/46)