Monday, December 20, 2010

gnocl::keyFile module completed!

Had some more time this evening and so finished off this module. There's only one item left to resolve but this is not unique to this module -the 'clear' sub-command. The existing Gnocl support funcs are geared towards GObjects which are basically widgets. A GKeyFile or even a Pixbuf for that matter are not widget although they are commands in the same way as a text or button widget. So, a little more thought needs to go into completing this last piece of functionality. But, that doesn't stop the use of the command. Here's a test .ini file from my ScanDocs app.

[Program]
name=ScanDocs
version=0.0.1

[Files]
batchDir=/home/wjgiddings/Desktop/ScanDocs/batches
batchName=default
lastfile={}
outFileName={DUNDES (1984) Sacred Narrative - Readings in the Theory of Myth}
pageSize=125x197
path=/home/wjgiddings/Desktop/ScanDocs

[Scanner]
mode=Binary
resolution=300
format=bw
threshold=80
type=pnm

[Job]
autoscan=0
i=100
scanRate=2

[Process]
deskew=0
composite=0
split=1
clear=1
clearBottom=100
clearCentre=100
clearSides=100
clearTop=0
trim=0
trimBottom=250
trimSides=300
trimTop=0
turn=0

[Unpaper]
unpaper,in_start=1
unpaper,out_start=1


And here's a code snippet of how to read that data and assign it to an application config array placed in the global namespace.


#---------------
# test-keyfile.tcl
#---------------
# William J Giddings
# 20/12/2010
#---------------

#!/bin/sh
#\
exec tclsh "$0" "$@"

package require Gnocl

set kf1 [gnocl::keyFile load scandocs.ini]

foreach group [$kf1 get groups] {
    foreach key  [$kf1 get keys -group $group ] {
        set config($key) [$kf1 get value -group $group -key $key]
    }
}

parray config


When changing key values, how to know which group the key belongs to?
 
set variable autoscan

foreach group [$kf1 get groups] {
    if { [$kf1 has -group $group -key $variable ] } {
        puts "$variable is in group $group"
    }
}




No comments: