📄 clipslibwrap_old.cpp
字号:
Author : Mark Tomlinson
Desc. : Accessor function for CLIPS Reset
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSReset(void)
{
INITCHK(false)
Reset();
return true;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSNextFactString(string* FactString)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetNextFact(); places returned fact
into string parameter.
Returns : true if it succeeded, and false on failure - or if
no more facts exist.
****************************************************************************/
bool CCLIPSWrap::CLIPSNextFactString(CString& FactString, void *pFact)
{
INITCHK(false)
CLEARMBUF
if(pFact != NULL) {
factPtr= (struct fact *)GetNextFact(pFact);
}
else {
factPtr= (struct fact *)GetNextFact(factPtr);
}
if(factPtr) { //place fact into string buffer
GetFactPPForm(m_buf,MAX_FACT_LEN,factPtr);
FactString = m_buf;
return true;
}
return false;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSRun(int numIterations)
Author : Mark Tomlinson
Desc. : Accessor function for CLIPS Run(). Passes in numIterations
parameter to CLIPS, (-1 by default).
Returns : Number of iterations performed, (Run() - return value) or
-1 on error
****************************************************************************/
long int CCLIPSWrap::CLIPSRun(long int numIterations)
{
long int ret;
INITCHK(-1L)
Running = true;
ret = Run(numIterations);
Running = false;
if(CBfunctPtr != NULL) {
CBfunctPtr(false);
}
return ret;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSLoad(CString& scriptFile)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS Load(), will attempt to load
the file specified by scriptFile parameter.
Returns : Enumerated value for success or failure
****************************************************************************/
int CCLIPSWrap::CLIPSLoad(CString& scriptFile)
{
int retval,j,i;
OFSTRUCT of;
INITCHK(READ_NOT_INIT);
if(scriptFile.IsEmpty()) {
retval = -2;
}
else {
SETMBUF((LPCSTR)scriptFile)
if(OpenFile(m_buf,&of,OF_EXIST) == HFILE_ERROR)
return BAD_LOAD_NAME;
j = strlen(m_buf);
//insure we convert backslash to forwardslash
for(i = 0;i < j;i++) {
if(m_buf[i] == '\\') {
m_buf[i] = '/';
}
}
retval = Load(m_buf);
}
switch(retval) {
case 0: {
return READ_FAIL;
}
case 1: {
return READ_OK;
}
case -1: {
return PARSE_FAIL;
}
case -2: {
return BAD_LOAD_NAME;
}
}
return READ_FAIL;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSGetNumberOfFacts(void)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS GetNumberOfFacts()
Returns : The number of facts in the workspace, -1 on error
****************************************************************************/
long int CCLIPSWrap::CLIPSGetNumberOfFacts(void)
{
INITCHK(-1L)
return GetNumberOfFacts();
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSExit(void)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS ExitCLIPS(), this will end
CLIPS and unload the DLL this will also terminate
the calling process.
Returns : none
****************************************************************************/
void CCLIPSWrap::CLIPSExit(int retVal)
{
ExitCLIPS(retVal);
return;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSClear(void)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS Clear(), this will clear
CLIPS workspace.
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSClear(void)
{
INITCHK(false)
Clear();
return true;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSBSave(CString& FileName)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS BSave(), this will save
a binary image of the CLIPS environment.
Returns : true on success, false on error
****************************************************************************/
int CCLIPSWrap::CLIPSBSave(CString& BinName)
{
int retval,i;
INITCHK(SAVE_NOT_INIT);
if(BinName.IsEmpty()) {
retval = -2;
}
else {
SETMBUF((LPCSTR)BinName)
//insure we convert backslash to forwardslash
for(i = 0;i < (int)strlen(m_buf);i++) {
if(m_buf[i] == '\\') {
m_buf[i] = '/';
}
}
retval = Bsave(m_buf);
}
switch(retval) {
case 0: {
return SAVE_FAIL;
}
case 1: {
return SAVE_OK;
}
case -2: {
return BAD_SAVE_NAME;
}
}
return SAVE_FAIL;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSBLoad(CString& BinFile)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS Bload(), will attempt to load
a binary image of the CLIPS environment. [with the 16 bit
DLL, due to a Borland compiler bug, do not attempt to Bload
a file in which any object set is greater than 64k]
Returns : Enumerated value for success or failure
****************************************************************************/
int CCLIPSWrap::CLIPSBLoad(CString& BinFile)
{
int retval;
int i;
OFSTRUCT of;
INITCHK(READ_NOT_INIT);
if(BinFile.IsEmpty()) {
retval = -2;
}
else {
SETMBUF((LPCSTR)BinFile)
if(OpenFile(m_buf,&of,OF_EXIST) == HFILE_ERROR)
return BAD_LOAD_NAME;
//insure we convert backslash to forwardslash
for(i = 0;i < (int)strlen(m_buf);i++) {
if(m_buf[i] == '\\') {
m_buf[i] = '/';
}
}
retval = Bload(m_buf);
}
switch(retval) {
case 0: {
return READ_FAIL;
}
case 1: {
return READ_OK;
}
case -2: {
return BAD_LOAD_NAME;
}
}
return READ_FAIL;
}
/***************************************************************************
Function : CCLIPSWrap::CLIPSRetract(void *Fact)
Author : Mark Tomlinson
Desc. : Accessor function for CLIPS Retract command, will retract
a fact in the CLIPS environment.
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSRetract(void *Fact)
{
INITCHK(false)
if((Fact == NULL) &&
(factPtr == NULL)) {
return false;
}
if(Fact == NULL) {
return BOOLCHK(Retract(factPtr));
}
return BOOLCHK(Retract(Fact));
}
/***************************************************************************
Function : CCLIPSWrap::CLIPSWatch(CString& Item)
Author : Mark Tomlinson
Desc. : Accessor function for CLIPS Watch command, will set a
watch on Item.
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSWatch(CString& Item)
{
INITCHK(false)
if(Item.IsEmpty()) {
return false;
}
SETMBUF((LPCSTR)Item)
return BOOLCHK(Watch(m_buf));
}
/***************************************************************************
Function : CCLIPSWrap::CLIPSUnWatch(CString& Item)
Author : Mark Tomlinson
Desc. : Accessor function for CLIPS Unwatch command, will remove
a watch on Item.
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSUnWatch(CString& Item)
{
INITCHK(false)
if(Item.IsEmpty()) {
return false;
}
SETMBUF((LPCSTR)Item)
return BOOLCHK(Unwatch(m_buf));
}
/***************************************************************************
Function : CCLIPSWrap::CLIPSMatches(void *Rule)
Author : Mark Tomlinson
Desc. : Accessor function for CLIPS Matches command, this appears
to always return CLIPS_true, as the optput from this command
is routed to WDISPLAY or WERROR. We return false if CLIPS is
not initalized or if the Rule pointer is NULL.
Returns : true on success, false on error
****************************************************************************/
bool CCLIPSWrap::CLIPSMatches(void *Rule)
{
INITCHK(false)
if((Rule == NULL) &&
(rulePtr == NULL)) {
return false;
}
if(Rule != NULL) {
return BOOLCHK(Matches(Rule, NULL));
}
else {
return BOOLCHK(Matches(rulePtr, NULL));
}
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSSaveFacts(CString& FileName, bool Visable)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS SaveFacts(), will save
either LOCAL facts or VISIBLE facts based upon Visable
parameter
Returns : Enumerated value for success or failure
****************************************************************************/
int CCLIPSWrap::CLIPSSaveFacts(CString& FileName, bool Visable)
{
int retval,j,i;
INITCHK(SAVE_NOT_INIT);
if(FileName.IsEmpty()) {
retval = -2;
}
else {
SETMBUF((LPCSTR)FileName)
j = strlen(m_buf);
//insure we convert backslash to forwardslash
for(i = 0;i < j;i++) {
if(m_buf[i] == '\\') {
m_buf[i] = '/';
}
}
if(Visable) {
retval = SaveFacts(m_buf,VISIBLE_SAVE,NULL);
}
else {
retval = SaveFacts(m_buf,LOCAL_SAVE,NULL);
}
}
switch(retval) {
case 0: {
return SAVE_FAIL;
}
case 1: {
return SAVE_OK;
}
case -2: {
return BAD_SAVE_NAME;
}
}
return SAVE_FAIL;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSLoadFacts(CString& FileName)
Author : Mark Tomlinson
Desc. : Accessor function to CLIPS LoadFacts, will attempt to load
a set of Facts into CLIPS
Returns : Enumerated value for success or failure
****************************************************************************/
int CCLIPSWrap::CLIPSLoadFacts(CString& FileName)
{
int retval,j,i;
OFSTRUCT of;
INITCHK(READ_NOT_INIT);
if(FileName.IsEmpty()) {
retval = -2;
}
else {
SETMBUF((LPCSTR)FileName)
if(OpenFile(m_buf,&of,OF_EXIST) == HFILE_ERROR)
return BAD_LOAD_NAME;
j = strlen(m_buf);
//insure we convert backslash to forwardslash
for(i = 0;i < j;i++) {
if(m_buf[i] == '\\') {
m_buf[i] = '/';
}
}
retval = LoadFacts(m_buf);
}
switch(retval) {
case 0: {
return READ_FAIL;
}
case 1: {
return READ_OK;
}
case -2: {
return BAD_LOAD_NAME;
}
}
return READ_FAIL;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSNextFact(void)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetNextFact(); places returned fact
into factPtr
Returns : true if it succeeded, and false on failure - or if
no more facts exist.
Notes : you can't pass in a NULL fact pointer. To start with
the first fact you must set factPtr member to NULL and
then call this function.
****************************************************************************/
bool CCLIPSWrap::CLIPSNextFact(void *pFact)
{
INITCHK(false)
if(pFact != NULL) {
factPtr = (struct fact *)GetNextFact(pFact);
}
else {
factPtr = (struct fact *)GetNextFact(factPtr);
}
if(factPtr) {
return true;
}
return false;
}
/****************************************************************************
Function : CCLIPSWrap::CLIPSFactString(CString& Data, void *pFact)
Author : Mark Tomlinson
Desc. : Accessor for CLIPS GetFactPPForm(); places fact Data
into string parameter.
Returns : true if it succeeded, and false on failure
****************************************************************************/
bool CCLIPSWrap::CLIPSFactString(CString& Data, void *pFact)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -