Filtering by formula is the most powerful search method. For example, save a memory dump three times. You have three states of the object. This states are M1, M2, M3. The states M1 and M3 have the same bar of life. Filter by formula "(M1<>M2)and(M2<>M3)and(M1=M3)". And you have the address of your life.
Formula is a logical expression that can contain:
Formula can contain any amount of pair of brackets.
The contents of each pairs must be a logical expression.
The result of this expression must be recordsets of addresses and values.
- Other expressions in brackets ()
- Arguments (M1, M2, etc) - States of the object (a memory dump or addresses/values recordsets).
- A set of arguments M[2,4] - States of the object at 2 and 4 steps. For example M1 <> M[2,4] equal like (M1 <> M2) and (M1 <> M4)
- Numerals (100,-15,Ah,11.2) - Two numbers can be only in the expression like 100>=M1>=300
- Text ('Boss',"Good") - only in the expression like M1='Boss'
- Conditions ( "<",">","=" and etc) - for example M1=1, M2>=100, 1<=M3<=2, or for comparison of the states of the object M1>M2, M1<>M2.
- Arithmetical operations ('+','-','*','/','~') - only in the expression like M2>=M1+100. '~' operation is 'minus or plus'. For example, M2=M1~100 equal like (M2=M1+100) or (M2=M1-100).
- Operation AND - Unification of two recordsets of addresses, if the address is found in 1 and 2 expressions.
- Operation OR - Unification of two recordsets of addresses, if the address is found in 1 or 2 expressions.
Remember! Operations AND,OR return only recordsets of addresses.
They must be executed only in the last queue.
For example, 100<=(M1 and M2)<=300 - returns a wrong result,
because recordsets of values are not determined.
Correct formula (100<=M1<=300)and(100<=M2<=300).
Remember! Expressions like M1>M2, M2<>M1 return recordsets of addresses and recordsets of values of the first argument.
For example, result of (M1<>M2)>0 equal like (M1>0)<>M2
Expressions like M1=M2 return correct recordsets of addresses and values, because we have the same values.
For example, result of (M1=M2)>0 equal like (M1>0)=(M2>0)
For example, if you search for the exact value
and you have 3 states with values 15000,14460,15100,
then use this formula (M1=15000)and(M2=14460)and(M3=15100)
For example, if you search in a range
and you have 2 states with values approximately 100 and 300
then use this formula (99<=M1<=101)and(299<=M2<=301)
For example, if you search for the unknown value (bar of life)
and you have 4 states with values approximately 100%,80%,60%,90%,
then use this formula (M1 > M2)and(M1 > M3)and(M1 > M4)and(M2 > M3)and(M2 < M4)and(M3 < M4)
For example, if you search for the coded value
and you have 4 states with a different values
then use this formula
(M1 <> M2)and(M1 <> M3)and(M1 <> M4)and(M2 <> M3)and(M2 <> M4)and(M3 <> M4)
or this construction
(M1 <> M[2,3,4])and(M2 <> M[3,4])and(M3 <> M4)
P.S. I recommend to set "Enable Undo/Redo the filtration" before the search.
Copyright (C) 1996-2010, System SoftLab
Last update of this page: April 30, 2010.