Read a configuration file: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 2,753: | Line 2,753: | ||
</pre> |
</pre> |
||
=={{header|Nanoquery}}== |
|||
<lang nanoquery>import Nanoquery.IO |
|||
import dict |
|||
def get_config(fname) |
|||
f = new(File).open(fname) |
|||
lines = split(f.readAll(), "\n") |
|||
values = new(Dict) |
|||
for line in lines |
|||
line = trim(line) |
|||
if len(line) > 0 |
|||
if not (line .startswith. "#") or (line .startswith. ";") |
|||
tokens = split(line, " ") |
|||
if len(tokens) = 1 |
|||
values.add(upper(tokens[0]), true) |
|||
else |
|||
parameters = list() |
|||
parameter = "" |
|||
for i in range(1, len(tokens) - 1) |
|||
parameter += tokens[i] + " " |
|||
if parameter .endswith. ", " |
|||
parameter = parameter.substring(0, len(parameter) - 2) |
|||
parameters.append(trim(parameter)) |
|||
parameter = "" |
|||
end |
|||
end |
|||
parameters.append(trim(parameter)) |
|||
if len(parameters) > 1 |
|||
values.add(upper(tokens[0]), parameters) |
|||
else |
|||
values.add(upper(tokens[0]), parameters[0]) |
|||
end |
|||
end |
|||
end |
|||
end |
|||
end |
|||
return values |
|||
end |
|||
println get_config(args[2])</lang> |
|||
{{out}} |
|||
<pre>[[FULLNAME : Foo Barber], [FAVOURITEFRUIT : banana], [NEEDSPEELING : true], [OTHERFAMILY : [Rhu Barber, Harry Barber]]]</pre> |
|||
=={{header|OCaml}}== |
=={{header|OCaml}}== |
||