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
>


Reply via email to