Read a configuration file: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 4,242: | Line 4,242: | ||
otherfamily[2]: Harry Barber |
otherfamily[2]: Harry Barber |
||
</pre> |
</pre> |
||
=={{header|SenseTalk}}== |
|||
<lang sensetalk> |
|||
// first create the configuration file for testing |
|||
set source to {{ |
|||
# This is a configuration file in standard configuration file format |
|||
# |
|||
# Lines beginning with a hash or a semicolon are ignored by the application |
|||
# program. Blank lines are also ignored by the application program. |
|||
# This is the fullname parameter |
|||
FULLNAME Foo Barber |
|||
# This is a favourite fruit |
|||
FAVOURITEFRUIT banana |
|||
# This is a boolean that should be set |
|||
NEEDSPEELING |
|||
# This boolean is commented out |
|||
; SEEDSREMOVED |
|||
# Configuration option names are not case sensitive, but configuration parameter |
|||
# data is case sensitive and may be preserved by the application program. |
|||
# An optional equals sign can be used to separate configuration parameter data |
|||
# from the option name. This is dropped by the parser. |
|||
# A configuration option may take multiple parameters separated by commas. |
|||
# Leading and trailing whitespace around parameter names and parameter data fields |
|||
# are ignored by the application program. |
|||
OTHERFAMILY Rhu Barber, Harry Barber |
|||
}} |
|||
put source into file "config.txt" |
|||
// read the configuration file and get a list of just the interesting lines |
|||
set lines to each line of file "config.txt" where char 1 of each isn't in ("#", ";", "") |
|||
set the listFormat's quotes to quote -- be sure to quote values for evaluating |
|||
repeat with each configLine in lines |
|||
put word 1 of configLine into varName |
|||
insert varName into variableNames -- make a list of all config variables |
|||
put (words 2 to last of configLine) split by comma into values |
|||
put trim of each item of values into values -- trim any leading/trailing spaces |
|||
if values is empty then set values to true -- no value means boolean true |
|||
do "set" && varName && "to" && values -- assign value to variable |
|||
end repeat |
|||
repeat with each name in variableNames |
|||
put "Variable" && name && "is" && value(name) |
|||
end repeat |
|||
</lang> |
|||
=={{header|Sidef}}== |
=={{header|Sidef}}== |