Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FTN.DEVELOP
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FTN.DEVELOP с датами от 12 Jul 13 20:52:30 до 25 Apr 24 08:46:43, всего сообщений: 2456
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 1737 из 2456 =================================== RU.FTN.DEVELOP =
От   : Nil Alexandrov                   2:5015/46          17 Mar 21 18:31:10
Кому : Alexey Fayans                                       17 Mar 21 18:31:10
Тема : sqpack will reset BaseMsgNum to 1
FGHI : area://RU.FTN.DEVELOP?msgid=2:5015/46+60522b77
На   : area://RU.FTN.DEVELOP?msgid=2:5030/1997@fidonet+6051bc07
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
Hello, Alexey!

Wednesday March 17 2021 11:21, from Alexey Fayans -> Nil Alexandrov:

AF> Сделал feutil pack -quick, встал на первое сообщение, посмотрел
AF> Снова удалил первое сообщение, сделал feutil pack -quick -renumbeer,

Хорошая идея - в sqpack добавить разных параметров, чтобы удовлетворить пуржинг-стратегию самых изысканных. :-)

Например, дефолт будет работать как сейчас - начинать BaseMsgNum с 1 с полной перенумерацией (как feutil pack -renumbeer)
sqpack -rollover (или любое другое понятное название), тогда новый BaseMsgNum будет скорректирован так, чтобы "логический" номер сообщения рос непрерывно.

AF> Так что всё работает именно так, как я и понял из стандарта.
AF> BaseMsgNum всегда равен наименьшему абсолютному номеру сообщения базе,

Про терминологию, JAM стандарт говорит, что

> Message # The physical record number within the index file is used as a
> message number. The lowest message number is one (1) and the highest
> message number is 4294967295 (ffffffffH).

Окей, номер сообщения - это позиция в файле индекса .jdx с шагом 8 байт.

>  basemsgnum;  // Lowest message number in index file

Вот тут, IMHO, формулировка не очень, отсюда многие интерпретируют не корректно.
Считаю, что basemsgnum - это именно базовое значение, которое если прибавить к номеру сообщения (физический номер записи), то получится "логический" номер сообщения.

> ????????.JHR Message headers
> ...
> ulong  MessageNumber;// Message number (1-based)

А вот тут интереснее, в заголовочном файле хранится номер сообщения (я называю логический номер) именно последовательный номер.
-renumbeer видимо должна эти все номера привести к базе 1 во время пуржинга. А если не перенумеровывать, то можно оставить все номера как есть, но подкрутить basemsgnum в зависимости от количества выкинутых сообщений.

AF> а абсолютные номера сообщений не могут быть не
AF> последовательными.

Абсолютные номера всегда последовательные, но можно делать "дырки", причём спецом для этого придумали в индексе .jdx забивать значения -1.

int JAM_DeleteMessage( s_JamBase*        Base_PS,
                       ulong             MsgNo_I )
...
    Index_S.HdrOffset = 0xffffffff;
    Index_S.UserCRC = 0xffffffff;


AF> И если в sqpack отключить сброс BaseMsgNum не
AF> меня остальной логики, получится лажа.

Естественно, надо делать вариант с перенумерацией с сброса в 1цу, или вариант с сохранением логических номеров сообщений с подкручиванием базы на нужное значение.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
* Origin: Киловатт центр первый галина сергей харитон (2:5015/46)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.085072 секунды