25 Aug 23 13:10, Alexey Fayans -> Stas Mishchenkov:
SM>> Не обязательно. GoldEd же как-то находит при каждом запуске SM>> сообщение, на котором ты остановился в прошлый раз?
AF> Голдед использует для этого lastread,
Это был сарказм. ;)
AF> в котором точно так же хранится номер сообщения (из спеки не ясно, AF> абсолютный или относительный, но, скорее всего, относительный).
Опытным путём выяснено - абсолютный.
AF> И если после пуржинга и упаковки базы нумерация AF> сообщений изменится, то голдед откроет не то сообщение.
По этому в процессе этих торжественных мероприятий lastread необходимо приводить в соответствие.
AF> Поэтому если нужно гарантированно открывать конкретное сообщение по AF> какому-то уникальному ключу, то логичнее всего использовать в качестве AF> ключа MSGID+OADDRESS+DADDRESS,
С одной стороны MSGID должен уже содержать OADDRESS, но это не всегда так, с другой - до сих пор некоторые сообщения и вовсе не содержат MSGID.
AF> а чтобы не искать этот ключ по всему JHR, нужно делать свой индекс AF> MSGID+OADDRESS+DADDRESS:RelativeMessageNumber, AF> чтобы сразу прыгать на нужный заголовок (JHR) по индексу (JDX). И после AF> каждой упаковки базы этот свой индекс перестраивать (что должно занимать AF> менее секунды на современном железе).