OK, i was making one with the same idea, but i can't spare much time on it
anyway, here are my suggestions :

1- Instead of having a "module = x" and module1=, module2=, ... to moduleX=, i use this :

code:

Funtion IniSearchGroup($inifile, $Inigroup)
Dim $nulF

IF Open(9, $inifile,2) = 0
do
$nulF=Ltrim(readline(9))
until lcase($nulF)="["+ lcase($Inigroup) +"]" or @ERROR <> 0
If @error=0
do
Select
case len($nulF)<1

case substr($nulF,1,1)="["

case substr($nulF,1,1)=";"

case 1
redim preserve $IniSearchGroup[ubound($IniSearchGroup)+2]
$IniSearchGroup[ubound($IniSearchGroup)]=$nulF
endselect
$nulF=ltrim(readline(9))
until substr(lcase($nulF),1,1)="[" or @ERROR <> 0
else
'Error
endif
else
'Error
endif
$temp=CLOSE(9)

Endfunction



The function will return something like this in a array :
Array[0]="test1,5"
Array[1]="test2,a"
Array[x-1]="Testx,2"
from this part of an ini file :
code:

[Group to search]
test1,5
test2,a
Testx,2
[end]


The bad part is for a big file, but ini files are generally small

2- Give the "Server" possibility and a DisableForServer parameters.

3- For your Group wildcard, maybe you can use this :
All|GroupA|\\Server\Share\$group$
The $Group will take the value GroupA with the Execute command from Kixtart. You can take $Group, @group or anything you want to distinct the variable from the text
I'm currently implementing this in my script (or must i say debugging it ?)
When the function is working, it can be use elsewhere.

4-Well, nothing more for moment. Anyway, i like your implementation of the ip range.

[This message has been edited by Popovk (edited 03 May 2001).]

_________________________
? getobject(Kixtart.org.Signature)