質問

Nhunspellを使用して、C#プロジェクトにスペルチェックを組み込むことができました。私がやりたいのは、実際に辞書ファイルに単語を追加することです。 Nhunspellの内部でこれを行う方法がありますが、これは次のとおりです。

// Add the word to the dictionary and carry on
using (Hunspell hunspell = new Hunspell(@"Dictionaries/en_GB.aff", @"Dictionaries/en_GB.dic"))
{
    hunspell.Add("wordToAdd");                
}

しかし、私がこれを使用するとき、それは実際には何もしていないようです。誰かが私が間違っていることを提案することができるでしょうか?

ありがとう

役に立ちましたか?

解決

.add()メソッドを使用して単語を追加することで、Hunspellオブジェクトが生きている間にその単語を使用できるようにすることができることに気づきませんでした。単語は実際には外部辞書ファイルに追加されていません。この問題と闘う方法は、カスタム辞書ファイルを使用することでした。ユーザーによって単語が追加されると、この単語は新しいカスタム辞書ファイルに保存されます。ここで、私のメインスペルチェッカー関数が呼び出されると、単語がチェックされる前に、カスタム辞書にあるすべての単語が.add()メソッドを使用して追加されます。お役に立てれば。

他のヒント

辞書に単語を追加することは、単に任意のテキストファイルに新しい単語を追加するだけです WriteLine()StreamWriter.

private void button1_Click(object sender, EventArgs e)
{
    FileWriter(txtDic.Text, txtWord.Text, true);
    txtWord.Clear();
    MessageBox.Show("Success...");
}

public static void FileWriter(string filePath, string text, bool fileExists)
   {
        if (!fileExists)
        {
            FileStream aFile = new FileStream(filePath, FileMode.Create, FileAccess.Write);
            StreamWriter sw = new StreamWriter(aFile);
            sw.WriteLine(text);
            sw.Close();
            aFile.Close();
        }
        else
        {
            FileStream aFile = new FileStream(filePath, FileMode.Append, FileAccess.Write);
            StreamWriter sw = new StreamWriter(aFile);
            sw.WriteLine(text+"/3");
            sw.Close();
            aFile.Close();
            //System.IO.File.WriteAllText(filePath, text);
        }
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top