LogProcessor

More Values Techniques
Login

More Values Techniques

Techniques to Extract Values

Extracting multiple values from a line and calling separate programs on each:

In your logpro file create a hook and either an expect (can be any of error, warning, ignore or required).

(hook:add "quadval" "echo \"Value1: #{m1}\";echo \"Value2: #{m2}\";echo \"Value3: #{m3}\";echo \"Value4: #{m4}\"") 

;; Use expect:required to extract some values
(expect:required   in "LogFileBody" = 1 "Quad values" #/First:\s+(\d+)\s+Second:\s+(\d+)\s+Third:\s+(\d+)\s+Fourth:\s+(\d+)/ hook: "quadval")

If the logfile for this example contains this line:

// A case where we are capturing multiple values on a single line and exectuting 
// multiple calls to load them

First: 1 Second: 2 Third: 3 Fourth: 4

Then the output will show the calls to echo in the hook:add line:

LOGPRO Required: Quad values = 1 in section LogFileBody on line 40
NONERR HOOK CALLED: echo "Value1: 1";echo "Value2: 2";echo "Value3: 3";echo "Value4: 4"
Value1: 1
Value2: 2
Value3: 3
Value4: 4
First: 1 Second: 2 Third: 3 Fourth: 4

If you are using megatest to capture results and roll them up you could use a hook specification like this:

megatest -set-values :value #{m1} :expected_value 0 :tol 1 :category extents :variable ll :units km 
(hook:add "qualval" (conc 
     "megatest -set-values :value #{m1} :expected_value 0   :tol 1 :category extents :variable first  :units km;"
     "megatest -set-values :value #{m2} :expected_value 0   :tol 1 :category extents :variable second :units km;"
     "megatest -set-values :value #{m3} :expected_value 100 :tol 1 :category extents :variable third  :units km;"
     "megatest -set-values :value #{m4} :expected_value 100 :tol 1 :category extents :variable fourth :units km"))
Note: "conc" is the string concatenation operator in Chicken Scheme.