Ich muss das korrekte buchstabierspezifische Wort aus der Liste ermitteln. Wenn das Wort falsch ist, schreibe ich in eine Datei. Ich benutzte Klasse Rechtschreibprüfung, das ist mein Code:Warum SpellChecker (C#) Wörter falsch definiert?
public class SpellChecker : IDisposable
{
System.Type TWord = null; object com_app = null;
private static SpellChecker Checker = new SpellChecker();
private SpellChecker()
{
try
{
TWord = Type.GetTypeFromProgID("Word.Application");
com_app = Activator.CreateInstance(TWord);
}
catch { com_app = null; }
}
public static SpellChecker GetChecker() { return Checker; }
public void Dispose()
{
if (com_app != null)
{
object[] arg = { null, null, null };
TWord.InvokeMember("Quit", BindingFlags.InvokeMethod,
null, com_app, arg);
com_app = null;
}
}
public bool CheckWord(string word)
{
object[] arg = { word };
return (bool)TWord.InvokeMember("CheckSpelling",
BindingFlags.InvokeMethod, null, com_app, arg);
}
}
aber auf dem gleichen Wort arbeiten sie auf verschiedenen, wenn ich Liste Setter (mit Wort) oder nur ein Wort. In der Prozess-Debugging sehe ich, dass CheckWord mich in einem Fall wahr und falsch in einem anderen Fall geben. Aber es ist ein Wort, ich bin sicher.
var allWord = GetWords(xdoc);
foreach (var word in allWord)
{
if (!spellChecker.CheckWord(word))
{
result.WriteLine(word);
}
}
was ist das Wort? – user1666620