Hello, y'all! Thanks for the idea, Sheri. I did it too! My function will read from one or more ini files and build a menu, with submenus if you want, from an entire section of the ini file. You can either append the ini-menu to an existing menu or create a whole new one. If the ini is missing, or the section is missing or the key is blank, it compensates.
So I have uploaded to the scripts folder. It comes with a few example functions. It's called "MenuFromINI". Thanks! I hope someone else can use this too. -Brother Gabriel-Marie --- In power-pro@yahoogroups.com, "Sheri" <sheri...@...> wrote: > > --- In power-pro@yahoogroups.com, Brother Gabriel-Marie <brgabriel@> wrote: > > > > Hello, y'all! I want to dynamically build a pp menu from the > > contents of an ini file. Based on the ini below, it should have > > three submenus corresponding to section1, section2 and section3 > > but not section4. When I click on the item in the menu, it should > > open the corresponding file. The menu name should be the same as > > the ini key name. Where do I start? > > Might want your script to transform the ini file into a file menu, save the > file menu, and then show it with menu.showfile(yourfilemenu). > > A file menu of your sample data would look like this: > > @"section1" format startsubmenu > george1=win.debug("somefolder/somefile.ext") > george2=win.debug("somefolder/somefile2.ext") > george3=win.debug("somefolder/somefile3.ext") > format endsubmenu > > @"section2" format startsubmenu > harry1=win.debug("somefolder/somefile4.ext") > harry2=win.debug("somefolder/somefile5.ext") > harry3=win.debug("somefolder/somefile6.ext") > format endsubmenu > > @"section3" format startsubmenu > mike1=win.debug("somefolder/somefile7.ext") > mike2=win.debug("somefolder/somefile8.ext") > mike3=win.debug("somefolder/somefile9.ext") > format endsubmenu > > @"section4" format startsubmenu > item=win.debug("somethingelse") > item1=win.debug("anotherinfo") > format endsubmenu > > To open the strings as files, you would use "do" instead of win.debug. > > The transformation can be done with two regex.pcrereplace's. Let me know if > you want me to post them. :-) > > Another approach would be to process each line in the ini file and use cl > commands to create a command list, insert items, setlabel, and addleft for > each item. A wrinkle would be to process the lines surrounded with brackets > as start or end and startsubmenu (format) commands. At the conclusion you'd > need to append a final format endsubmenu. Then use menu.show to show the > dynamic command list as a menu. > > In your message you said of your sample "but not section4", no idea what that > criteria was about, but if you know you want to specify either which sections > should be included or excluded, it is up your script to provide for that, > regardless of the approach. > > Instead of processing the ini file line by line, you could process it section > by section. The ini plugin has a service to enum_sections and another to > enum_keys in a section. And finally one to get a value for a key in a > section. To individually get each value in each section would add some > overhead, because the file would be re-read each each time a value is > requested. > > Regards, > Sheri >