• DIALOG settings.ini identity syntax section locations

    From wasbit@21:1/5 to All on Thu Apr 28 20:55:29 2022
    Every once in a while Dialog gets corrupted which isn't a problem because
    it can easily be reinstalled and then repopulated before the GUI is run as
    long as I've archived a few of the most important custom setup repopulation files such as servers {servers.dat,alldsc.dss},signature {sigs.dat},
    category {cto}, groups {gtl,idg,stg,_sub.idx} & Scripts {ds,dsc} files.

    But that settings.ini file has to be repopulated with the Identities.
    If I'm lucky, the repopulation of the identities works. But that's rare.
    Most of the time the repopulation of identities doesn't take hold.
    Why?

    From experience I've learned the problem is not what is in the section
    between "[Identity0]" and "defstandardheaders" that matters, but the
    problem is that it matters WHERE it's placed inside the settings.ini file.

    [Identity0]
    smtpssl=0
    name=1
    smtpusername=
    smtppassword=
    defsignature=[None]
    emailemail=
    email=
    HELO=
    replytoemailbyemailintro=On %date%, you wrote:\n
    poppasswordsmtp=
    MXDNS=
    pophost=
    excemptfromallcheck=0
    FSMTPCopyToFolder=
    popauthentication=2
    smtpport=25
    UseMX=0
    popauthenticationsmtp=2
    IntrodateFormat=idt
    popportsmtp=110
    fromencoding=-1
    POP3Authenticationtimeout=300000
    poponlyunread=1
    fqdn=
    popusernamesmtp=
    poppassword=
    replyusenetintro=On %date%, %full-name% wrote:\n
    popforsmtpssl=0
    popusedefaultforSMTP=1
    organization=
    replyemailintro=On %date%, in %newsgroups% you wrote:\n
    replyto=
    smtpauthentication=2
    sender=
    popdeletemails=0
    smtphost=
    defheaders=||
    popport=110
    yourname=
    pophostsmtp=
    generatemsgids=1
    popusername=
    popssl=0
    forwardtoemailbyemailintro=On %date%, %full-name% wrote:\n
    defstandardheaders=||

    I can painstakingly reproduce WHERE exactly in the old settings.ini file
    the Identity sections were but I can't figure out what the logic is.

    What is the logic behind the very specific required exact locations of each
    of the Identites inside the Dialog settings.ini file?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Fri Apr 29 20:08:25 2022
    On Thu, 28th Apr 2022 20:55:29 +0200, wasbit wrote:

    Every once in a while Dialog gets corrupted

    It shouldn't. Despite its age, corruption of the setup and/or database of Dialog is /not/ to be expected. Maybe there is some general problem, like
    an unsuitable path of installation (UAC protected folder), an interfering
    AV program, or sth. like that?

    But that settings.ini file has to be repopulated with the Identities.

    You could always replace it with a recent backup, as long as Dialog isn't running. (Which is also important, if you just want to edit sth. in this
    file.)

    If I'm lucky, the repopulation of the identities works. But that's rare.
    Most of the time the repopulation of identities doesn't take hold.
    Why?

    From experience I've learned the problem is not what is in the section between "[Identity0]" and "defstandardheaders" that matters, but the
    problem is that it matters WHERE it's placed inside the settings.ini file.

    Not really, AFAICT. Be careful, though, /not/ to insert a section with its settings in the midst of another section. And check IdentitiesCount inside
    the [General] section. Identity numbers are zero-based. So, if your maximum identity section is [Identity2], then you'd need to set above count to 3.
    Also be sure to keep the "name" values of the identities unaltered and
    without added spaces and the like. If you want to rename an identity, do
    so in the Dialog GUI.

    Apart from this, I do not know of any restrictions.

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sqwertz@21:1/5 to Bernd Rose on Fri Apr 29 17:10:25 2022
    On Fri, 29 Apr 2022 20:08:25 +0200, Bernd Rose wrote:

    On Thu, 28th Apr 2022 20:55:29 +0200, wasbit wrote:

    Every once in a while Dialog gets corrupted

    It shouldn't. Despite its age, corruption of the setup and/or database of Dialog is /not/ to be expected. Maybe there is some general problem, like
    an unsuitable path of installation (UAC protected folder), an interfering
    AV program, or sth. like that?

    This had happened to me during plenty power outages/improper
    shutdowns (while Dialog is idle) and when I've been downloading
    hundreds of thousands of headers.

    -sw

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to Sqwertz on Sat Apr 30 01:18:04 2022
    "Sqwertz" <sqwertzme@gmail.invalid> wrote in message news:1x7gezrtpsz17.dlg@sqwertz.com...

    On Thu, 28th Apr 2022 20:55:29 +0200, wasbit wrote:

    Every once in a while Dialog gets corrupted

    It shouldn't. Despite its age, corruption of the setup and/or database of
    Dialog is /not/ to be expected. Maybe there is some general problem, like
    an unsuitable path of installation (UAC protected folder), an interfering
    AV program, or sth. like that?

    This had happened to me during plenty power outages/improper
    shutdowns (while Dialog is idle) and when I've been downloading
    hundreds of thousands of headers.

    For this question it really doesn't matter why Dialog gets corrupted.
    It only matters that Dialog does get corrupted. I'm not blaming Dialog.

    I would like to post my recovery sequence though, to see if it can be
    improved. Should I post that recovery sequence here?
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to Bernd Rose on Sat Apr 30 01:32:13 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message news:jj9ur27pmzkh.dlg@b.rose.tmpbox.news.arcor.de...

    And check IdentitiesCount inside the [General] section.

    For some reason my brain didn't initially correctly process that you said
    this is a step that I have NOT been doing - & which I have NOT been doing!

    That means it would have been only accidental if this count was correct.
    [General]
    HintCB4=1
    HintCB2=1
    HintCB0=0
    HintCB3=1
    HintCB1=1
    OnlineMode=1
    IdentitiesCount=6
    lastidentity=0
    Automarkread=0
    ArticleColumnHeaderClickedOnce=1
    Hauptschalter=1
    startedonce=1

    I suspect THAT value is the most likely root of my observed problems.
    IdentitiesCount=6
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to Bernd Rose on Sat Apr 30 01:16:15 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message news:jj9ur27pmzkh.dlg@b.rose.tmpbox.news.arcor.de...

    From experience I've learned the problem is not what is in the section
    between "[Identity0]" and "defstandardheaders" that matters, but the
    problem is that it matters WHERE it's placed inside the settings.ini file.

    Not really, AFAICT. Be careful, though, /not/ to insert a section with its settings in the midst of another section. And check IdentitiesCount inside the [General] section. Identity numbers are zero-based. So, if your maximum identity section is [Identity2], then you'd need to set above count to 3. Also be sure to keep the "name" values of the identities unaltered and without added spaces and the like. If you want to rename an identity, do
    so in the Dialog GUI.

    I have years of experience with Dialog so I have a tested sequence to repopulate the setup when Dialog gets corrupted, but I don't understand why
    the "[Identity#]" sections have to be where they are.

    As an example I can have any number of identities which I can put each into separate text files. As the last step of repopulating Dialog if I create an equal number of dummy identities inside the Dialog GUI, and then I close
    Dialog and swap out the separate text files into the settings.ini file with each identity in the exact strange places that they end up in the
    settings.ini files, then it always works.

    Any other recovery method is destined to fail.

    As a telling example, if I insert all the settings inclusions into the [Identity0] spot, only [Identity0] takes effect in the Dialog GUI (where in
    all cases, there is a blank line before & after each [Identity#] section).

    The rest of the [Itentity#] results show up as blanks inside of Dialog.

    Likewise if I insert all the [Identity#] sections in the beginning of the settings.ini file or if I put them in the end, usually only 1 shows up.

    It's easy to test by creating a half dozen identities and then looking at
    the settings.ini file but my question here is what is the logic of where identities go inside the settings.ini file?

    If nobody knows, then my only admonition is to replace them as I do.

    When you have Dialog properly set up, then you archive your identities,
    each going into its own separate text file (0.txt, 1.txt, and so on).

    When you need to rebuild Dialog, as the last step in the file system that results from the installation process, you bring up the GUI for the first
    time and you create dummy identities, one for each file you've archived.

    Then you close the Dialog GUI down and edit the settings.ini file to
    replace each of the dummy identity sections with the archived files.

    That will always work.

    I just don't know why it's required the strange locations of each identity inside the settings.ini file.
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Sat Apr 30 09:33:18 2022
    On Sat, 30th Apr 2022 01:16:15 +0200, wasbit wrote:

    I have a tested sequence to repopulate the setup when Dialog gets
    corrupted

    If I understand correctly, you recreate everything from scratch? (Instead
    of restoring a current backup.)

    I'd rather suggest to keep a full backup of the Dialog folder and its subfolders (with the exception of "data") and replace it, whenever a substantial change in settings (like a new or altered identity) occurred.
    The backup must only be created, when Dialog is not running, of course.

    For the data folder, keep the backups (at least the latest) after running CompactDatabase. Alternatively, you can do a full backup by copying it
    at any time. (Again: Dialog not running, of course.) *Never* mix two
    different states of the data folder!! You'd break the database this way,
    for sure.

    After setup and/or database corruption, you'd get back to the latest
    saved state quite easily. (Without any manual pre-configuration steps,
    like setting up dummy-identities inside the GUI.

    As the last step of repopulating Dialog if I create an equal number of
    dummy identities inside the Dialog GUI

    This step should have also created the correct setting of IdentitiesCount inside the [General] section.

    then I close Dialog and swap out the separate text files [BR: containing
    the backed up identity settings] into the settings.ini file with each identity in the exact strange places that they end up in the
    settings.ini files, then it always works.

    Please note, that reference of an identity (to its folder and so on) in
    the database is /not/ the number in the section name. (Like e.g. "3" for [Identity3]. The number just defines the sort order of the identities
    inside the Dialog GUI. - Although the numbers ought to be continuous
    (starting by 0), overall, and must not be larger than IdentitiesCount
    minus 1.

    The pointer to the database folders is the "name" of the identity. If you pre-create the dummy-identities inside the GUI you /need/ to make their
    names identical to the ones restored from your backup text files to the
    last single character. Else, the connection of the identity to the
    Dialog database is broken and your next crash is bound to happen soon.

    but my question here is what is the logic of where identities go inside
    the settings.ini file?

    IMHO, the section order largely depends on creation/alteration time and therefore is (more-the-less) driven by chance. AFAICT, the placement of
    each section is left to the Windows *.ini-file management functions.

    If a section does not exist, it is inserted top-most by these functions.
    If just a value inside an existing section is altered, the placement of
    the section remains unaltered. Dialog seems(!) to write some settings
    by replacing sections in whole. (= Deleting them and writing them anew.)

    Depending on you altering here and there in the GUI, each of /these/
    sections have a chance to end up top-most at any given moment. Altering existing identities, OTOH, has no such section-reordering effect. The
    latest (by creation date and time) identity will be topmost of all
    identities. But there may be (one or more) arbitrary other sections
    between each pair of identities, because of the process described above.

    Nevertheless, the placement of a certain section inside settings.ini
    shouldn't matter the least to Dialog.

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to wasbit on Sat Apr 30 12:28:07 2022
    "wasbit" <wasbitREMOVE@hotmail.com> wrote in message news:t4j2lf$1kg$1@dont-email.me...

    If I understand correctly, you recreate everything from scratch? (Instead
    of restoring a current backup.)

    Not really. I make a full backup periodically because corruptions are frequent enough and you never know what got corrupted.

    But I only pull out of that full backup the few files that are required for customizations to be recreated (such as a dictionary file).

    To clarify what I do is I periodically make a backup of the whole dialog directory and then when the original gets corrupted, then I delete that
    entire backup and then I re-install a new dialog and copy over the updated executable (like everyone does the first time they install dialog).

    Then I copy back into that new directory the files that I know I customized (such as the server and category files).

    I try not to bring over the old settings.ini because it might have been
    what got corrupted (which was what happened this last time I did it).

    To be clear, I often bring over the backed up settings.ini file, but if the corruption persists, then I have to scrap that settings.ini file and
    re-create it but then I have to add back the identity sections.

    That's what recently happened to me in fact, which is why the question came
    up as I was frustrated by it not being as easy as it could have been had I known about the General section needing to be modified slightly thanks to
    you.

    If you have a better restoration of the system I'm all for it, but it has
    to fix a corrupted settings.ini also for it to be useful.
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to b.rose.tmpbox@arcor.de on Sat Apr 30 12:22:57 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de>" wrote in message news:11kgreixfjb9q$.dlg@b.rose.tmpbox.news.arcor.de...

    If I understand correctly, you recreate everything from scratch? (Instead
    of restoring a current backup.)

    Not really. I make a full backup periodically because corruptions are
    frequent enough and you never know what got corrupted.

    But I only pull out of that full backup the few files that are required for customizations to be recreated (such as a dictionary file).

    But if there's a better method to recover from corruptions, I'll learn it.

    I'd rather suggest to keep a full backup of the Dialog folder and its subfolders (with the exception of "data") and replace it, whenever a substantial change in settings (like a new or altered identity) occurred.

    That might be easier than what I'm doing now but data contains most of the changes over time and settings.ini can get corrupted (which was my most
    recent corruption).

    The backup must only be created, when Dialog is not running, of course.

    Of course.

    For the data folder, keep the backups (at least the latest) after running CompactDatabase.

    I don't really know how compacting affects being able to copy back at a
    later date.

    Therefore I'm afraid to compact because I don't know if that makes it compatible or not but the real problem with copying back the entire data directory is I don't know which files got corrupted and they may be one of those data files that I don't need to copy over. So I let a new dialog installation re-create those data files which I didn't customize.

    How does compacting help in terms of copying back files later?

    Alternatively, you can do a full backup by copying it
    at any time. (Again: Dialog not running, of course.) *Never* mix two different states of the data folder!! You'd break the database this way,
    for sure.

    That's why I'm afraid to compact because I don't know what 'state' that
    leaves things in. I only work with NOT compacted files in Dialog.

    If compacting helps, I don't understand how (other than to make files
    smaller but that's not the issue here).

    After setup and/or database corruption, you'd get back to the latest
    saved state quite easily. (Without any manual pre-configuration steps,
    like setting up dummy-identities inside the GUI.

    But what if the settings.ini file is what got corrupted?

    As the last step of repopulating Dialog if I create an equal number of
    dummy identities inside the Dialog GUI

    This step should have also created the correct setting of IdentitiesCount inside the [General] section.

    I realized my mistake in concluding wrongly that the POSITION of the
    identities mattered. It wasn't the position after all. It was that I was unaware of the GENERAL section in settings.ini which required a manual
    setting of the number of identities. That was all my fault.

    I no longer think identity position was the problem, thanks to you!

    The only reason the dummy creation worked was because that process ALSO
    added the right counter to the GENERAL section.

    Over the years I had come up with a workaround solution that works, but for
    the wrong reasons. :()

    then I close Dialog and swap out the separate text files [BR: containing
    the backed up identity settings] into the settings.ini file with each
    identity in the exact strange places that they end up in the
    settings.ini files, then it always works.

    Please note, that reference of an identity (to its folder and so on) in
    the database is /not/ the number in the section name. (Like e.g. "3" for [Identity3]. The number just defines the sort order of the identities
    inside the Dialog GUI. - Although the numbers ought to be continuous (starting by 0), overall, and must not be larger than IdentitiesCount
    minus 1.

    No problem. If the identity is "tom" "dick" and "harry", then the identity section will be named "Identity0", "Identity1" and "Identity2."

    Below that line will be the assignment to "tom" "dick" and "harry."

    The pointer to the database folders is the "name" of the identity. If you pre-create the dummy-identities inside the GUI you /need/ to make their
    names identical to the ones restored from your backup text files to the
    last single character. Else, the connection of the identity to the
    Dialog database is broken and your next crash is bound to happen soon.

    I don't understand anything in that paragraph because I don't see any
    folders that have anything to do with any identity (or even the number of identities).

    With or without any number of identities, I don't see any difference in the name or number of folders inside the dialog directory.

    But maybe we can just ignore that paragraph because I'm not having problems with adding back identities with my workaround, and I don't expect to have problems when I next add them back since I now know to change the number of identities in the General section.

    but my question here is what is the logic of where identities go inside
    the settings.ini file?

    IMHO, the section order largely depends on creation/alteration time and therefore is (more-the-less) driven by chance. AFAICT, the placement of
    each section is left to the Windows *.ini-file management functions.

    Yes. I am aware of this now. I was wrong before. I didn't know about
    setting the number of identities in the General section until you said it.

    If a section does not exist, it is inserted top-most by these functions.

    I think the order is actually more random than even that since I can do
    nothing but insert identities and they end up in a different order than I inserted them the moment I start Dialog but I think in the end that this doesn't matter anymore now that I know about changing the number of
    identities in the General section (thanks to you).

    If just a value inside an existing section is altered, the placement of
    the section remains unaltered. Dialog seems(!) to write some settings
    by replacing sections in whole. (= Deleting them and writing them anew.)

    Good to know.

    Depending on you altering here and there in the GUI, each of /these/
    sections have a chance to end up top-most at any given moment. Altering existing identities, OTOH, has no such section-reordering effect. The
    latest (by creation date and time) identity will be topmost of all identities. But there may be (one or more) arbitrary other sections
    between each pair of identities, because of the process described above.

    Nevertheless, the placement of a certain section inside settings.ini shouldn't matter the least to Dialog.

    I know that now! Thanks to you.

    What I will look at more closely is if your method of replacing the files
    is better than mine which currently consists of replacing ONLY those files
    that I KNOW I have customized.

    Sometimes I'm sure of which files it is that I've customized, like the cto files which have the name of the category or the group files which have the name of the server.

    Other times I'm not sure which files I've customized, like in the
    dictionary folder where I bring over them all but probably I don't need to bring all over (just my additions).
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to wasbit on Sat Apr 30 12:32:32 2022
    "wasbit" <wasbitREMOVE@hotmail.com> wrote in message news:t4j2v5$3k3$1@dont-email.me...

    To clarify what I do is I periodically make a backup of the whole dialog directory and then when the original gets corrupted, then I delete that entire backup and then I re-install a new dialog and copy over the updated executable (like everyone does the first time they install dialog).

    Sorry.
    I said the wrong word "backup" above so I fix that below for clarity.

    To clarify what I do is I periodically make a backup of the whole dialog directory and then when the original gets corrupted, then I delete that
    entire ORIGINAL and then I re-install a new dialog and copy over the
    updated executable (like everyone does the first time they install dialog).

    After I install a fresh Dialog from scratch, then I copy back from the
    backup archive all the files that I know that I've customized.

    But sometimes the settings.ini is the file that went bad so I had to
    re-create it recently.

    Which is why I asked that question about the Identity order.
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Sat Apr 30 14:44:37 2022
    On Sat, 30th Apr 2022 12:22:57 +0200, wasbit wrote:

    If I understand correctly, you recreate everything from scratch? (Instead
    of restoring a current backup.)

    Not really. I make a full backup periodically because corruptions are frequent enough and you never know what got corrupted.

    But I only pull out of that full backup the few files that are required for customizations to be recreated (such as a dictionary file).

    But if there's a better method to recover from corruptions, I'll learn it.

    40tude Dialog is completely self-contained. Some user scripts have been
    relying on absolute paths and therefore would need adjustment. Apart from
    this, the whole Dialog directory could be copied to whatever location
    (even USB thumb drives) and successfully run from there.

    That said, Dialog /must not/ be installed or copied into an UAC protected folder, like "C:\Program Files\". (It is possible to do so, but requires detailed manual adjustments.) A folder like C:\Portable\ would be okay.

    Because of its portability, you can restore Dialog from a backup copy by
    simply deleting or renaming the folder of the defect installation and
    copying the backup folder with its subfolders to the old and new location.
    Do not mix parts of a backup into either a fresh or faulty installation
    or into a restored backup from another time! Although most files will not
    be problematic, settings.ini might and the whole content of the "data" subfolder /will/ result in faulty internal references.

    data contains most of the changes over time

    Data contains the whole Dialog group and article database. It /of course/ changes continuously over time. CompactDatabase can be used to clear the
    folder of deleted content. (Deleting a message inside Dialog just sets an internal marker in the database, but does not really delete anything.)
    If you encounter problems with articles in a certain group, you can delete
    all articles, unsubscribe and run a CompactDatabase. Afterwards you can re-subscribe and call SampleHeadersFormGroup (Online menu) to refill the
    group from server. I never had the necessity to do so since the beginning, though.

    and settings.ini can get corrupted (which was my most recent corruption).

    Never had this, either. The only situation, where settings.ini is likely
    to get corrupted is by installing Dialog in an UAC protected folder. In
    such a case (if the setup did not receive certain manual adjustments), two settings.ini exist and sometimes cancel each other out. (Reading from one, writing to the other.) One settings.ini would be the one of the Dialog
    folder. The other resides in the VirtualStore inside the "C:\Users" tree.

    For the data folder, keep the backups (at least the latest) after running
    CompactDatabase.

    I don't really know how compacting affects being able to copy back at a
    later date.

    You /never/ *mix* the content of 2 "data" folders. Delete or rename the
    one to be replaced and copy the other from backup. It doesn't matter, if
    the backup has another CompactDatabase state. The various internal pointers
    are self-contained inside "data". You just get an uncompacted state when restoring a copy of "data" created before (or by) CompactDatabase. Run CompactDatabase (again), and the database will (again) become smaller.

    By restoring an older version of "data" you (of course) loose all changes
    to the database that took place after creating the backup. But even if you
    are tempted to save some of these losses by mixing the backup with the most recent version of data (corrupted or not). Do /not/ give in! The probability
    of the database /not/ getting corrupted this way is small. (Although any problems might manifest themselves much later.)

    Therefore I'm afraid to compact because I don't know if that makes it compatible or not but the real problem with copying back the entire data directory is I don't know which files got corrupted and they may be one of those data files that I don't need to copy over.

    If a CompactDatabase runs successfully, the database should be intact.
    (At least intact enough to be used.) Therefore, either the backup of the uncompacted "data_oldXX" folder or a fresh backup copy of the compacted
    "data" folder should be usable in later emergencies.

    If only a certain group has problems, use the selective cleanup process described above.

    Be sure to also save everything else (not only the "data" subfolder),
    whenever you add/change a server, an identity or the like. Otherwise
    you'd loose access to those parts of the database.

    How does compacting help in terms of copying back files later?

    Apart from keeping the backup small, Dialog is not meant to be used as
    archive for huge amounts of messages. (Use Hamster or any other local
    Usenet news server for such a requirement.) The more messages are stored
    inside the Dialog database (deleted or not), the longer takes each lookup.
    Long lookups increase the risk of sth. interfering, like an AV program suspicious of the long read time or certain database contents, a power
    outage, or any other reason.

    Please note, CompactDatabase does not /compress/ the database files in
    any way. It just removes deleted messages from storage and reorders the database structure according to your subscribed servers and groups.

    But what if the settings.ini file is what got corrupted?

    UAC problems with 2 different settings.ini (see above) aside: If Dialog
    worked well before closing, and it did not crash while closing, then your settings.ini should be okay to backup. (And to be restore later on, if
    need should be.)

    If you want to err on the cautious side: Keep /several/ backups from
    different times. Just be sure, these backups match your current server
    and identity settings. Otherwise any current or backup "data" folder
    will not match.

    As the last step of repopulating Dialog if I create an equal number of
    dummy identities inside the Dialog GUI

    This step should have also created the correct setting of IdentitiesCount
    inside the [General] section.

    I realized my mistake in concluding wrongly that the POSITION of the identities mattered. It wasn't the position after all. It was that I was unaware of the GENERAL section in settings.ini which required a manual setting of the number of identities. That was all my fault.

    IdentitiesCount should never be set /manually/. You either restore a
    complete settings.ini matching the current "data" subfolder. Then the IdentitiesCount and the identities themselves (aka their count as well
    as their names) contained inside settings.ini should be okay. Or you
    create new identities inside the GUI. This step not only writes values
    into settings.ini, but also creates files and entries inside files in
    the "data" folder. Both are linked by the /name/ fields of each identity. Defining or altering an identity name, therefore, is /only/ possible in
    the GUI.

    [Pointers from settings.ini into data]
    I don't understand anything in that paragraph because I don't see any
    folders that have anything to do with any identity (or even the number of identities).

    The pointers are not human-readable. The names of the identities appear somewhere inside the file of the whole list of (news)groups and folders
    (= groups.stg). The position in this file is a pointer to the next files,
    where they are linked to (arbitrary) numbers, that link to the numbered database files. Within these files are other numbers, that point into
    the files containing any messages from and to these identities.

    Conclusion: Never mess with single files, but backup the whole Dialog
    folder and all its subfolders. From "data" subfolder you can backup
    later copies (= always the /whole/ subfolder), as long as you didn't
    alter anything from server settings to identities. If you did, create
    a new backup containing everything.

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to Bernd Rose on Sat Apr 30 19:39:55 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message news:4e3uhxg2tbf6$.dlg@b.rose.tmpbox.news.arcor.de...

    40tude Dialog is completely self-contained. Some user scripts have been relying on absolute paths and therefore would need adjustment. Apart from this, the whole Dialog directory could be copied to whatever location
    (even USB thumb drives) and successfully run from there.

    I didn't know that Dialog could be copied without installing. Thank you.

    That said, Dialog /must not/ be installed or copied into an UAC protected folder, like "C:\Program Files\". (It is possible to do so, but requires detailed manual adjustments.) A folder like C:\Portable\ would be okay.

    Mine is in c:\dialog

    Because of its portability, you can restore Dialog from a backup copy by simply deleting or renaming the folder of the defect installation and
    copying the backup folder with its subfolders to the old and new location.

    Good to know. That's easier. Just archive when it's not corrupted.
    And then restore when it is.

    Do not mix parts of a backup into either a fresh or faulty installation
    or into a restored backup from another time! Although most files will not
    be problematic, settings.ini might and the whole content of the "data" subfolder /will/ result in faulty internal references.

    My process has been mixing parts for years but always from an old archive
    into a newly installed Dialog directory using all the old paths again.

    With Dialog not running I return the archive files below in this order
    Servers
    servers.dat
    Sigs
    sigs.dat
    ???
    alldsc.dss
    Groups
    groups.idg
    groups.stg
    groups_sub.id
    Groups per server
    {server}.gtl
    Categories
    cat_{*}.cto
    Addresses
    addrbook.dat
    Mime-Types
    mimetype.txt
    Headers
    xheaders.dat
    Scripts
    {script}.ds
    {script}.cds
    Dictionaries
    {*}.ady
    american.adm
    {*}_sp.adz
    ftr_sp.adz
    Spell.cfg
    Settings
    settings.ini

    I'm not sure which of the dictionaries actually change as I don't know if american.adm is actually updated when new words are manually added by me.

    data contains most of the changes over time

    Data contains the whole Dialog group and article database. It /of course/ changes continuously over time. CompactDatabase can be used to clear the folder of deleted content. (Deleting a message inside Dialog just sets an internal marker in the database, but does not really delete anything.)
    If you encounter problems with articles in a certain group, you can delete all articles, unsubscribe and run a CompactDatabase. Afterwards you can re-subscribe and call SampleHeadersFormGroup (Online menu) to refill the group from server. I never had the necessity to do so since the beginning, though.

    I don't need the grouplist nor any of the actual messages inside the groups since they can be downloaded again from the servers (although I turn off purging so I may lose some of the oldest messages in any given newsgroup).

    and settings.ini can get corrupted (which was my most recent corruption).

    Never had this, either.

    I shouldn't call it a corruption. It's more like I accidentally hit some setting that just screws up everything inside of Dialog. The most recent 'something' was that I couldn't see messages that I knew were there.

    They were hidden somehow.
    It happened all of a sudden so I don't know what caused that.

    It could have been just a setting but when I re-installed Dialog and
    brought over everything, including the settings.ini file, it did it again.

    It only went away when I re-created the settings file from scratch.
    Probably it was some arcane setting I accidentally set somehow.

    The only situation, where settings.ini is likely
    to get corrupted is by installing Dialog in an UAC protected folder.
    In such a case (if the setup did not receive certain manual adjustments), two settings.ini exist and sometimes cancel each other out. (Reading from one, writing to the other.) One settings.ini would be the one of the Dialog folder. The other resides in the VirtualStore inside the "C:\Users" tree.

    It's in C:\dialog.

    For the data folder, keep the backups (at least the latest) after running >>> CompactDatabase.

    I don't really know how compacting affects being able to copy back at a
    later date.

    You /never/ *mix* the content of 2 "data" folders.

    But you have to if "something" inside the data folder got corrupted.
    Don't you?

    Delete or rename the
    one to be replaced and copy the other from backup. It doesn't matter, if
    the backup has another CompactDatabase state. The various internal pointers are self-contained inside "data". You just get an uncompacted state when restoring a copy of "data" created before (or by) CompactDatabase. Run CompactDatabase (again), and the database will (again) become smaller.

    I rarely use compact so that's not a problem for me.

    By restoring an older version of "data" you (of course) loose all changes
    to the database that took place after creating the backup. But even if you are tempted to save some of these losses by mixing the backup with the most recent version of data (corrupted or not). Do /not/ give in! The probability of the database /not/ getting corrupted this way is small. (Although any problems might manifest themselves much later.)

    Something is corrupting Dialog every once in a while.
    Bringing back just some of the data files fixes it.
    I do not know more than that.

    Therefore I'm afraid to compact because I don't know if that makes it
    compatible or not but the real problem with copying back the entire data
    directory is I don't know which files got corrupted and they may be one of >> those data files that I don't need to copy over.

    If a CompactDatabase runs successfully, the database should be intact.
    (At least intact enough to be used.) Therefore, either the backup of the uncompacted "data_oldXX" folder or a fresh backup copy of the compacted "data" folder should be usable in later emergencies.

    If only a certain group has problems, use the selective cleanup process described above.

    Be sure to also save everything else (not only the "data" subfolder), whenever you add/change a server, an identity or the like. Otherwise
    you'd loose access to those parts of the database.

    I archive the entire c:\dialog directory to a flash drive periodically.

    How does compacting help in terms of copying back files later?

    Apart from keeping the backup small, Dialog is not meant to be used as archive for huge amounts of messages. (Use Hamster or any other local
    Usenet news server for such a requirement.) The more messages are stored inside the Dialog database (deleted or not), the longer takes each lookup. Long lookups increase the risk of sth. interfering, like an AV program suspicious of the long read time or certain database contents, a power outage, or any other reason.

    Please note, CompactDatabase does not /compress/ the database files in
    any way. It just removes deleted messages from storage and reorders the database structure according to your subscribed servers and groups.

    Good to know that CompactDatabase is simply Throw-out-the-trashDatabase!

    But what if the settings.ini file is what got corrupted?

    UAC problems with 2 different settings.ini (see above) aside: If Dialog worked well before closing, and it did not crash while closing, then your settings.ini should be okay to backup. (And to be restore later on, if
    need should be.)

    If you want to err on the cautious side: Keep /several/ backups from different times. Just be sure, these backups match your current server
    and identity settings. Otherwise any current or backup "data" folder
    will not match.

    I keep a few archives since they're small enough.
    Maybe a few times a year is when I back it up, just in case.

    As the last step of repopulating Dialog if I create an equal number of >>>> dummy identities inside the Dialog GUI

    This step should have also created the correct setting of IdentitiesCount >>> inside the [General] section.

    I realized my mistake in concluding wrongly that the POSITION of the
    identities mattered. It wasn't the position after all. It was that I was
    unaware of the GENERAL section in settings.ini which required a manual
    setting of the number of identities. That was all my fault.

    IdentitiesCount should never be set /manually/.

    Now you tell me! :()

    You either restore a
    complete settings.ini matching the current "data" subfolder. Then the IdentitiesCount and the identities themselves (aka their count as well
    as their names) contained inside settings.ini should be okay. Or you
    create new identities inside the GUI. This step not only writes values
    into settings.ini, but also creates files and entries inside files in
    the "data" folder. Both are linked by the /name/ fields of each identity. Defining or altering an identity name, therefore, is /only/ possible in
    the GUI.

    That's why my process worked when I created dummy identities of equal
    number as originally using the GUI and then I shut down Dialog and manually edited the settings.ini to include in the same section the real identities.

    But I shouldn't have to do that anymore now that I know I can just include
    the entire set of identities in one step and then just manually change the General section to update the count. Everything should still match.

    [Pointers from settings.ini into data]
    I don't understand anything in that paragraph because I don't see any
    folders that have anything to do with any identity (or even the number of
    identities).

    The pointers are not human-readable. The names of the identities appear somewhere inside the file of the whole list of (news)groups and folders
    (= groups.stg). The position in this file is a pointer to the next files, where they are linked to (arbitrary) numbers, that link to the numbered database files. Within these files are other numbers, that point into
    the files containing any messages from and to these identities.

    Conclusion: Never mess with single files, but backup the whole Dialog
    folder and all its subfolders. From "data" subfolder you can backup
    later copies (= always the /whole/ subfolder), as long as you didn't
    alter anything from server settings to identities. If you did, create
    a new backup containing everything.

    Thanks. See above where I "messed with individual files."
    It works. But maybe only because I was always lucky.

    I'll try the suggestion of copying the entire data directory back at the
    next Dialog corruption but that won't work if the corruption is outside the data directory. But I don't know where the corruption is of course.
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Sat Apr 30 21:04:26 2022
    On Sat, 30th Apr 2022 19:39:55 +0200, wasbit wrote:

    I'm not sure which of the dictionaries actually change as I don't know if american.adm is actually updated when new words are manually added by me.

    It will not be altered. User added words go to the user dictionaries. These should be recognizable by your name. Apart from this: If you look into them you'll see a reference to "Addict Dictionary Compiler" with pre-compiled dictionaries and "Addict User Dictionary" with your own ones right on top.
    Do not edit dictionaries outside Dialog, except with specialized software, though.

    You can edit user dictionaries from any compose window menu inside 40tude Dialog: <Spell check><Settings><Dictionaries button>. Select the one you
    wish to edit and go from there.

    Additional dictionaries can be found here: http://www.addictivesoftware.com/dl-dictionaries.htm

    I don't need the grouplist nor any of the actual messages inside the groups since they can be downloaded again from the servers (although I turn off purging so I may lose some of the oldest messages in any given newsgroup).

    Restoring from a full backup is likely to be much quicker and easier,
    though... ;-)

    and settings.ini can get corrupted (which was my most recent corruption). >>
    Never had this, either.

    I shouldn't call it a corruption. It's more like I accidentally hit some setting that just screws up everything inside of Dialog. The most recent 'something' was that I couldn't see messages that I knew were there.

    They were hidden somehow.
    It happened all of a sudden so I don't know what caused that.

    Most likely you just activated a different "View" by keyboard shortcut.
    The quick access menu is a drop-down list on the upper most left corner
    of the headers pane. (Just left from the newsgroup name. It is attached
    to the plus/minus button, that toggles the filter bar.) You can access
    this menu through the main menu, as well: <Group><Message Views>. If
    in doubt, just hit Ctrl+F1 in such circumstances. This enables the View
    showing /all/ messages.

    You /never/ *mix* the content of 2 "data" folders.

    But you have to if "something" inside the data folder got corrupted.
    Don't you?

    No!!!! Never!!! - You always delete (or rename) the corrupt one and restore
    an older backup of "data" as a whole. Best by copying and not by renaming
    it. If sth. goes wrong later on, you'd still have that backup for further attempts.

    I'll try the suggestion of copying the entire data directory back at the
    next Dialog corruption but that won't work if the corruption is outside the data directory. But I don't know where the corruption is of course.

    What you call "corruption" seems to be just accidentally activated wrong settings. If you do not wish to get more familiar with the functionalities
    of Dialog, you are probably best off, archiving the whole Dialog directory
    with all its subfolders on a more regular basis. You keep the latest two
    or three such backups. And if anything goes wrong again, you just delete
    the whole Dialog folder and copy the latest backup over as a whole.

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to b.rose.tmpbox@arcor.de on Sat Apr 30 22:01:54 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de>" wrote in message news:1brrhxpd0sk6g$.dlg@b.rose.tmpbox.news.arcor.de...

    I'm not sure which of the dictionaries actually change as I don't know if
    american.adm is actually updated when new words are manually added by me.

    It will not be altered. User added words go to the user dictionaries.

    Thanks for all the advice.
    I learned what I didn't know which makes my next backup easier.

    The most recent problem of not seeing message I knew were there is probably what you said but some of the dialog corruptions prevent dialog from
    opening up so they're real.

    Moving ahead I'll try your advice to do that full repopulation.

    Just in case, do you know what is the purpose of alldsc.dss is?
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Sun May 1 00:50:49 2022
    On Sat, 30th Apr 2022 22:01:54 +0200, wasbit wrote:

    Just in case, do you know what is the purpose of alldsc.dss is?

    Each newsgroup is usually accompanied by a textual description. For nsr you probably can read "Discussing software for reading network news (Usenet)." above the message header pane.

    The file alldsc.dss contains the whole list of group names and descriptions
    of all groups carried by all Usenet servers you set up in Dialog. The list
    is condensed, meaning each group appears only once in this file. (No matter
    how many of the servers carry it.)

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to Bernd Rose on Sun May 1 01:04:34 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message news:18tsdrmhthtab$.dlg@b.rose.tmpbox.news.arcor.de...

    The file alldsc.dss contains the whole list of group names and descriptions of all groups carried by all Usenet servers you set up in Dialog.

    That means it's not typically customized by the user.
    At least, I wouldn't have customized it, so I don't need to back it up specifically. Thanks.

    BTW, in switching over to Dialog I noticed I can't get the attribute to
    work the way I am used to it working.

    Using this attribution line
    "%from%" wrote in message %message-id%...\n

    I get this as a resulting attribution
    "Bernd Rose <b.rose.tmpbox@arcor.de> wrote in message"
    <news:18tsdrmhthtab$.dlg@b.rose.tmpbox.news.arcor.de>...

    Not this
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message
    news:18tsdrmhthtab$.dlg@b.rose.tmpbox.news.arcor.de...
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Sun May 1 09:08:44 2022
    On Sun, 1st May 2022 01:04:34 +0200, wasbit wrote:

    BTW, in switching over to Dialog I noticed I can't get the attribute to
    work the way I am used to it working.

    Using this attribution line
    "%from%" wrote in message %message-id%...\n

    I get this as a resulting attribution
    "Bernd Rose <b.rose.tmpbox@arcor.de> wrote in message"
    <news:18tsdrmhthtab$.dlg@b.rose.tmpbox.news.arcor.de>...

    Not this
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message
    news:18tsdrmhthtab$.dlg@b.rose.tmpbox.news.arcor.de...

    From RFC850 - 2.1.7 Message-ID:
    | The angle brackets are considered part of the message ID.

    https://www.freesoft.org/CIE/RFC/850/10.htm

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to All on Sun May 1 16:55:51 2022
    "Bernd Rose <b.rose.tmpbox@arcor.de>" wrote in message <news:16jx91gc46kd6$.dlg@b.rose.tmpbox.news.arcor.de>...

    From RFC850 - 2.1.7 Message-ID:
    | The angle brackets are considered part of the message ID.

    https://www.freesoft.org/CIE/RFC/850/10.htm

    Fair enough. It's not a message-id without the angle brackets.

    Do you know if Dialog can break the %from% & %full-name% apart?
    Sort of like Dialog has all that power to break the date & time & day?

    (If not, I understand. But maybe you've run across that in the past.)
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to wasbit on Sun May 1 17:28:16 2022
    On Sun, 1st May 2022 16:55:51 +0200, wasbit wrote:

    Do you know if Dialog can break the %from% & %full-name% apart?
    Sort of like Dialog has all that power to break the date & time & day?

    The variable %full-name% is the name part of the whole %from% address.
    Apart from this, no further variants of these two variable are available.

    It is theoretically possible to parse and alter the attribution line in
    an OnBeforeSendingMessage script to break down and reformat attribution
    in more detail. But, IMHO, that isn't really worth the effort...

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From wasbit@21:1/5 to Bernd Rose on Sun May 1 18:46:10 2022
    "Bernd Rose" <b.rose.tmpbox@arcor.de> wrote in message <news:19xtwevs1h9t$.dlg@b.rose.tmpbox.news.arcor.de>...

    The variable %full-name% is the name part of the whole %from% address.
    Apart from this, no further variants of these two variable are available.

    I understand as I had looked in the help before I had asked.

    I was hoping there was an existing parsing like the date has
    Year = yyyy or YYYY (or yy or YY)
    Month = MM
    Day = dd or DD
    Hour = hh or HH
    Min = mm
    Sec = ss or SS
    Time = t or T (in AM or PM)
    Diurnal = am/pm and a/p

    Which allows exquisite component separation, as with
    ddd d mmm yyyy 'at' hh:mm:ss

    It is theoretically possible to parse and alter the attribution line in
    an OnBeforeSendingMessage script to break down and reformat attribution
    in more detail. But, IMHO, that isn't really worth the effort...

    Yes. If it's not already there in a variable, it's too much work for too
    little gain. Only if it already had parsing like the date & time does would
    it have been worthwhile.

    Thanks.
    --
    Regards
    wasbit

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sqwertz@21:1/5 to wasbit on Fri May 6 02:07:59 2022
    On Sat, 30 Apr 2022 01:18:04 +0200, wasbit wrote:

    I would like to post my recovery sequence though, to see if it can be improved. Should I post that recovery sequence here?

    I'll tell you mine (although you'll probably denounce it ;-)

    I do a compress every so often, but since I never delete anything,
    that basically just serves a backup - unless Dialog keeps other
    housekeeping info in there that it deletes during that procedure(?)

    Then afterwards I make a ./ini.old directory with of the same name
    as ./data.old[1-9] with a copy my ./40tude Dialog/ base directory.

    If something happens, then I just pull in the most recent ./data.old
    and ./ini.old and do sampling of the last 50K (or so) headers.

    And then I may optionally delete all but the last 2 or 3
    ./data.old's and ./ini.old's

    I've tried to start from fresh before and pull in ALL headers off
    the server (headers are supposedly "free" on Highwinds backends),
    but Dialog fresh install always chokes on the sheer number of
    headers being downloaded even when I set the sockets to 1 (I'm not
    sure if pulling headers uses more than one anyway).

    I don't have a lot of groups I subscribe to anymore, but still -
    Dialog does choke on the sheer number of headers at some point. I
    used to have 13 years of headers and half of those has articles
    attached, but now I'm down to 3 years or so. And there's some gaps.

    -sw

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernd Rose@21:1/5 to Sqwertz on Fri May 6 19:48:19 2022
    On Fri, 6th May 2022 02:07:59 -0500, Sqwertz wrote:

    I do a compress every so often, but since I never delete anything,
    that basically just serves a backup - unless Dialog keeps other
    housekeeping info in there that it deletes during that procedure(?)

    Apart from intermediate draft states of messages you compose, nothing
    really comes to mind. After CompactDatabase your Data folder probably
    has nearly the same size as its latest backup. Numbers of the group
    files are, nevertheless, likely to change with every CompactDatabase
    run. (Apart from a few fixed system groups.) Which makes both folders incompatible and is the reason, that data folders should always be
    swapped as a whole (when restoring a backup) and never be mingled.

    Dialog fresh install always chokes on the sheer number of
    headers being downloaded even when I set the sockets to 1 (I'm not
    sure if pulling headers uses more than one anyway).

    One for each group in parallel until the maximum number of connections configured for the server (and permitted by the server, of course) is
    reached. I.e.: Headers, as well as bodies, can and will be retrieved
    in parallel by Dialog, if above conditions are met.

    Bernd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)