2012-06-25 6 views
0

Je travaille avec AIMLbot.dll dans C#. J'ai vu deux fonctions saveToBinaryFile et loadFromBinaryFile. Je pense que ces fonctions sont de stocker le contenu actuel dans le cerveau de bot dans un fichier. Mais ça ne semble pas fonctionner! Moyens, Si je dis de se souvenir de mon nom et enregistrer le contenu dans le fichier GraphMaster.dat. La prochaine fois que je charge le contenu du même fichier et quand je demande à mon nom, il donne la mauvaise réponse. Ma classe est la suivante.AIMLBot C# save brain

class AIBot 
    { 
     private Bot myBot; 
     private User myUser; 

     public AIBot() 
     { 
      myBot = new Bot(); 
      myUser = new User("UnknownUser", myBot); 
     } 

     public void Initialize() 
     { 
      myBot.loadSettings(); 
      myBot.isAcceptingUserInput = false; 
      myBot.loadAIMLFromFiles(); 
      myBot.isAcceptingUserInput = true; 
     } 

     public void Load() 
     { 
      if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + @"\Graphmaster.dat")) 
       myBot.loadFromBinaryFile(AppDomain.CurrentDomain.BaseDirectory + @"\Graphmaster.dat"); 
     } 

     public string GetResponse(string input) 
     { 
      Request r = new Request(input, myUser, myBot); 
      Result res = myBot.Chat(r); 
      return (res.Output); 
     } 

     public void Save() 
     { 
      myBot.saveToBinaryFile(AppDomain.CurrentDomain.BaseDirectory + @"\Graphmaster.dat"); 
     } 
    } 

Quelqu'un peut-il aider à signaler le problème?

Répondre

1

je une solution pour obtenu le problème. J'espère que cela aidera les autres.

  1. Enregistrer session utilisateur comme

    this.myUser.Predicates.DictionaryAsXML.Save(saveFileDialogDump.FileName); 
    
  2. charge la session enregistrée prochaine fois.

    this.myUser.Predicates.loadSettings(openFileDialogDump.FileName);