Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>below code solved my problem, hope it will help to someone else.. :)</p> <hr> <pre><code>InitializeEnvironment(); Clear(); NSString *filePath = [[NSBundle mainBundle] pathForResource:@"autodemo" ofType:@"clp"]; char *clipsFileChar = (char *)[filePath cStringUsingEncoding:NSASCIIStringEncoding]; IncrementGCLocks(); Load(clipsFileChar); Reset(); Run(-1); DecrementGCLocks(); [self nextUIState]; </code></pre> <hr> <pre><code>- (void)nextUIState { DATA_OBJECT theDO; NSString * evalS = @"(find-all-facts ((?f state-list)) TRUE)"; char *evalStr = (char *)[evalS cStringUsingEncoding:NSASCIIStringEncoding]; int j = EnvEval(GetCurrentEnvironment(), evalStr, &amp;theDO); NSLog(@"j = %d",j); if(factDict) { [factDict release]; factDict = nil; factDict = [[NSMutableDictionary alloc] init]; } id value = [self objectForDataObject:&amp;theDO]; NSLog(@"%@",[value description]); } </code></pre> <hr> <pre><code>-(id) objectForDataObject: (DATA_OBJECT*) arg { switch(arg-&gt;type) { case FACT_ADDRESS: { DATA_OBJECT data = { 0 }; struct fact* aFact = (struct fact*) arg-&gt;value; if(EnvGetFactSlot(GetCurrentEnvironment(),aFact,(char*)[@"current" UTF8String],&amp;data)) { [factDict setObject:[self objectForDataObject: &amp;data] forKey:@"current"]; [factDict retain]; } return factDict; } case SYMBOL: { NSString *str = [NSString stringWithUTF8String: ValueToString(arg-&gt;value)]; if ([str isEqual: @"nil"]) return nil; if ([str hasPrefix: @"&lt;&lt;&lt;"] &amp;&amp; [str hasSuffix: @"&gt;&gt;&gt;"]) { return [self dataFromSymbolString: str]; } return str; } case STRING: { return [NSString stringWithUTF8String: ValueToString(arg-&gt;value)]; } case INTEGER: { return [NSNumber numberWithInt: ValueToInteger(arg-&gt;value)]; } case FLOAT: { return [NSNumber numberWithDouble: ValueToDouble(arg-&gt;value)]; } case EXTERNAL_ADDRESS: { return (id) arg-&gt;value; } case MULTIFIELD: { int i, count = GetpDOLength(arg); NSMutableArray *args = [NSMutableArray arrayWithCapacity: count]; FIELD_PTR fptr = (FIELD_PTR) GetMFPtr(GetpValue(arg),GetpDOBegin(arg)); for(i = 0; i &lt; count; ++i, ++fptr) { DATA_OBJECT dobj; dobj.type = fptr-&gt;type; dobj.value = fptr-&gt;value; [args addObject: [self objectForDataObject: &amp;dobj]]; } return args; } default: return nil; } } </code></pre> <hr> <p>If you find out any other and better way(ofcourse there is), please let me know. :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload