private SentenceMistake findSentence(Mistakes mistake, string text) { SentenceMistake sentenceMistake = new SentenceMistake(); char[] cAll = text.ToCharArray(); char[] splitter = { '.', '!', '?' }; int count = cAll.Length; bool gefunden = false; sentenceMistake.Satzbeginn = 0; for (int i = 0; i < count; i++) { if (i > mistake.Start) { gefunden = true; } if (splitter.Contains(cAll[i])) { if (gefunden) { sentenceMistake.Satz += cAll[i]; break; } else { sentenceMistake.Satz = ""; sentenceMistake.Satzbeginn = i + 1; } } else { sentenceMistake.Satz += cAll[i]; } } return(sentenceMistake); }
private void loadMistake(int id) { btnBack.Enabled = false; btnNext.Enabled = false; btnReplaceAll.Enabled = false; bool gefunden = false; string sMistake = "", sSentence = "", sHeadline = ""; int nMistakeCount = 0, nMistakePlace = 0; SentenceMistake sentenceMistake = new SentenceMistake(); foreach (HunspellTexte text in lstTexte) { foreach (Mistakes fehler in text.Fehler) { if (fehler.ID == id) { sMistake = findWord(fehler, text.Text); sentenceMistake = findSentence(fehler, text.Text); sSentence = sentenceMistake.Satz; nMistakePlace = fehler.Start - sentenceMistake.Satzbeginn; sHeadline = text.Name; gefunden = true; break; } } if (gefunden) { break; } } var mCount = from fehler in lstFehler where fehler == sMistake select fehler; nMistakeCount = mCount.Count(); fillDataGrid(sMistake); if (id > 0) { btnBack.Enabled = true; } if (id < MistakesCounter - 1) { btnNext.Enabled = true; } if (nMistakeCount > 1) { btnReplaceAll.Enabled = true; } lblName.Text = sHeadline; lblMistake.Text = sMistake; lblMistakeCount.Text = nMistakeCount.ToString(); lblNumber.Text = Convert.ToString(id + 1) + "/" + MistakesCounter.ToString(); rtbSentence.Text = ""; string sSentenceStart = sSentence.Substring(0, nMistakePlace); string sSentenceEnd = sSentence.Substring(nMistakePlace + sMistake.Length, sSentence.Length - (nMistakePlace + sMistake.Length)); Color specialColor = Color.Red; if (lstCorrectedMistakes.Contains(id)) { specialColor = Color.Green; } appendText(rtbSentence, sSentenceStart, Color.Black); appendText(rtbSentence, sMistake, specialColor); appendText(rtbSentence, sSentenceEnd, Color.Black); }