When AmiBroker is updating index.txt?

Hi, I'm running AmibBroker 6.20.1 (32 bit) under Windows 10 Professional.

Today I noticed that if I add (manually or with CATEGORYCREATE) or delete (manually) a Watchlist, the index.txt file in my database folder does not change.

Also, if I rearrange Watchlistnames in index.txt, it has no effect on the order in which AmiBroker displays the Watchlists.

Watchlists added yesterday via CATEGORYCREATE are in index.txt, but nothing that I do today with Watchlists from AmiBroker makes any change to index.txt.

Thoughts how I can "re-connect" index.txt to AmiBroker actions.

BTW, my data provider is NorgateData.

Thanks,
David

AmiBroker, while it is running, keeps all changes to watch lists IN RAM, not in files. Any changes are written to files only when AmiBroker is being CLOSED, not at the time when you do add/remove watch lists in AmiBroker.

You should NOT modify any Watch lists files and you should not touch index.txt file. These files must be left untouched and not modified by the user.

Tomasz,

Thanks. I should have noted that I've examined index.txt after creating/deleting watchlists in AmiBroker and then closing Amibroker.

The changes should have then appeared in index.txt, but they did not. Also, I have tried renaming index.txt to index_old.txt, re-opening/closing Amibroker and looking to see if AmiBroker would create a new index.txt, but it did not. And, changes that I make to index.txt when AmiBroker is closed, do not change the sort order of Watchlists in AmiBroker when I re-open it.

On my backup system, index.txt stays exactly in sync with AmiBroker as you have described, and changes in index.txt change the sort order of watchlists in AmiBroker as expected.

What could be amiss on my primary system?

Either:

  • file or the entire folder is marked as "read-only"
  • some other 3rd party program locks it (for example Word and Excel lock file exclusively) - so it you have it open in any other program you have to CLOSE it.
  • antivirus is playing games and blocks access
  • some 3rd party program is rewriting the file
  • you did not properly install AmiBroker and/or folder is being virtualized by Windows - see below:

Make sure that you don't have VirtualStore folder like this:

C:\Users\*current logged in user*\AppData\Local\VirtualStore\Program Files (x86)\AmiBroker

If such folder exists, it means that your AMiBroker was NOT properly installed in first place. Existence of such folder means that writes are redirected by Windows to wrong place (VirtualStore) and they may cause all kinds of troubles including inability to save new content.

To fix that you need to:

  1. Delete Virtual Store folder
    C:\Users\*current logged in user*\AppData\Local\VirtualStore\Program Files (x86)\AmiBroker

  2. Run FULL SETUP of AmiBroker

Clarification: Norgate Data does not modify index.txt at all. We only copy .tls files into the folder and then run the OLE command LoadWatchlists during database maintenance so that the Norgate-supplied watchlists are maintained.

Tomasz, thanks!

Virtual Store is responsible. It does exist on my system and contains .tls files and an index.txt file that correspond exactly to my Watchlist organization inside AmiBroker.

It’s been more than a year since I re-installed AmiBroker 6.20.1 (32-bit) under Windows 10 Professional (64-bit) after a hard drive failure. Even if it was improperly installed, it has been running without a hitch ever since. I noticed this question about index.txt only because I was curious about editing it to re-sort my Watchlists in a major way, as suggested by others in this forum.

Apparently, Windows 10 will automatically set up Virtual Store for any 32-bit program that requires writing to its installation folder. AmiBroker seems to require that ability, for files such as broker.newcharts and PersistVars.bin.

How can I re-install AmiBroker 6.20.1 (32-bit) and bypass Window 10’s insistence on setting up Virtual Store? (I have the 6.20.1 installation package.)

Thanks again,
David

You need to run FULL SETUP. That is crucial point. Running full setup instructs Windows to ALLOW AmiBroker (broker.exe) to write to its OWN "AmiBroker" folder inside "Program Files".

Unlike majority of programs, AmiBroker keeps everything in its OWN SINGLE folder where it was installed. This is super user-friendly as you can just move one folder and everything is copied and system drive is NOT polluted by single file if setup was pointed out to use other partition.

This is in contrast to majority of software (including all MS products) that pollute hundreds of folders in different locations with their data.
You could skip running full setup and just copy files, only if you installed AmiBroker to folder other than "Program Files" (for example other partition). Personally I have programs in other partitions, (NOT C:), because it is much better from usability point of view (backups of system partions are way smaller). Of course Microsoft shitty products don't know how to install in other partitions and ALWAYS pollute C: even if they were pointed out to install to other partition. Visual Studio is paramount example of this nonsense (gigabytes installed to C: drive even if install was told to install to G:)

Microsoft Virtual Store is utterly stupid idea because it creates more problems than it attempts to solve. The effect is that majority of users are unaware of its existence, program by itself works - because it reads/writes virtualized files, but people trying to modify them in original folder don't see any effect. The only way to "fix" it is to run FULL SETUP in first place, so folder is not being redirected to nobody-knows where.

2 Likes

Thanks!

I was unaware of the "FULL SETUP" option. Will take it from here.

David

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.