Difference between revisions of "$readini"
From Scriptwiki
m (made old code a bit more readable and added $readini2 snippet) |
m |
||
(One intermediate revision by the same user not shown) | |||
Line 62: | Line 62: | ||
} | } | ||
== See Also == | == See Also == | ||
− | [[$ini]] returns the name/Nth position of the specified topic/item in an ini file. | + | * [[$ini]] returns the name/Nth position of the specified topic/item in an ini file. |
− | + | * [[Writeini|/writeini]] to write to an ini file. | |
− | |||
[[Category:File and Directory Identifiers]] | [[Category:File and Directory Identifiers]] | ||
[[Category:Ini]] | [[Category:Ini]] |
Latest revision as of 09:26, 2 July 2007
Returns a single line of text from an ini file
$readini(filename, [np], section, item)
If the n switch is specified then the line read in will not be evaluated and will be treated as plain text.
If the p switch is specified, command | separators are treated as such instead of as plain text.
Example
echo -a My command prefix is: $readini(mirc.ini,text,commandchar)
This example echo's your command prefix to your active window (usually /).
The following example will loop through all item in mirc.ini in the section called mirc.
var %i = 1 ; begin a while-loop through all items in section mirc. $ini(mirc.ini,mirc,0) returns ; total number of items in this section. while (%i <= $ini(mirc.ini,mirc,0)) { ; echo item's name and value echo -a $ini(mirc.ini,mirc,%i) => $readini(mirc.ini,mirc,$ini(mirc.ini,mirc,%i)) ; increase looping-variable by one inc %i }
Here is also a little snippet to find a name of an item by a value
Usage: $readini2(file.ini,topic,value[,N])
N is optional, 0 returns the total number of matched values, 1 returns the first matched values item name.
alias readini2 { ;check if the alias was called as an identifier if ($isid) { var %x = 1,%y ;loop through topics in an ini file while (%x <= $ini($1,$2,0)) { ;check if we have a matching value if ($readini($1,$2,$ini($1,$2,%x)) == $3) { ;see if $4 is null (no N given), then return the first match if ($4 == $null) { return $ini($1,$2,%x) | halt } ;see if $4 is 0 (to find out how many matchinf values there are), then increment a value of %y elseif ($4 == 0) { inc %y } ;see if $4 is a number (find Nth match) elseif ($4 isnum) { ;increment %y, and if the value is same as $4 (Nth value to find) return the Nth match inc %y if (%y == $4) { return $ini($1,$2,%x) | halt } } } inc %x } ;return %y (only if N = 0, other if's halt the script) return %y } }