से वापस ले लिया गया है मैंने अभी एसडब्ल्यूआई प्रोलॉग से एक कनेक्शन स्थापित किया है और तथ्यों में हेरफेर करना चाहता हूं। जैसे वापस ले लें और उनका दावा करें। ,प्रोलॉग सी # इंटरफेस फ़ाइल
String[] param = { "-q" };
PlEngine.Initialize(param);
PlQuery.PlCall("consult('tablets.pl').");
PlQuery.PlCall("assert(tablet(4,newatomic)).");
PlQuery.PlCall("tell('tablets.pl'), listing(tablet/2), told.");
PlQuery.PlCall("retractall(tablet/2).");
PlQuery.PlCall("assert(tablet(1,n1ewatomic)).");
PlQuery.PlCall("assert(tablet(2,n2ewatomic)).");
PlQuery.PlCall("tell('tablets.pl'), listing(tablet/2), told.");
आप इस समारोह देख सकते हैं यह अभिकथन के लिए काम कर रहा है के रूप में उम्मीद है, लेकिन वापस लेना के लिए नहीं:
मैं इस तरह कुछ काम किया है। मामला यह है कि, मैं अगले टैबलेट डालने से पहले फ़ाइल से सभी टैबलेट तथ्यों को हटा देना चाहता हूं (वे गतिशील हैं)। PlQuery.PlCall("retractall(tablet/2).");
इस क्वेरी को फ़ाइल में मौजूद सभी रिकॉर्ड को हटाना होगा। और उदाहरण के लिए tablet(4,newatomic)
उदाहरण के लिए एक तथ्य को कैसे हटाएं, लेकिन अन्य तथ्यों को हटाने के लिए नहीं।
निष्पादन के बाद परिणामी फ़ाइल है:
:- dynamic tablet/2.
tablet(4, newatomic).
tablet(1, n1ewatomic).
tablet(2, n2ewatomic).