Как выделить фоновый текст в текстовом файле? - PullRequest
0 голосов
/ 01 августа 2011

У меня есть словарная коллекция, в которой хранится начальная позиция и значения символов текстового файла.

Например: пример текстового файла (a.txt) может содержать текст типа "how areВы? Как поживаете? "

Я проиндексировал приведенный выше текст следующим образом

Dictionary<long,string> charLocation = new Dictionary<long,string>(); 

charLocation[0] = "how" 
charLocation[1] = "ow" 
charLocation[2] = "w" 
charLocation[4] = "are" 
charLocation[6] = "e" 
charLocation[5] = "re" 
charLocation[11] = "?" 
charLocation[9] = "ou?" 
charLocation[10] = "u?" 
charLocation[8] = "you?" 
charLocation[13] = "how" 
charLocation[14] = "ow" 
charLocation[15] = "w" 
charLocation[17] = "do" 
charLocation[18] = "o" 
charLocation[21] = "ou" 
charLocation[22] = "u" 
charLocation[20] = "you" 
charLocation[26] = "?" 
charLocation[24] = "do?" 
charLocation[25] = "o?"

Теперь я хочу выделить каждое вхождение" как "или" сделать "в текстовом файле.

Для этого я хочу сначала выполнить поиск в коллекции словарей и найти каждое вхождение строки, затем открыть текстовый файл и выделить текст для каждого вхождения.

Как я могу это сделать?

1 Ответ

0 голосов
/ 01 августа 2011

Не проверено, но это должно работать.

public string HighLight (int startPoint, string text, string word)
{
  if (startPoint > = 0)
  {
    int startIndex = text.indexOf (word, startPoint);
    if (startIndex >= 0)
    {
      StringBuilder builder = new StringBuilder ();
      builder.Append (text.Substring ( 0, startIndex));
      builder.Append ("<strong>");
      builder.Append (text.Substring (startIndex + 1, word.Length));
      builder.Append ("</strong>");
      builder.Append (text.Substring (startIndex + word.Length + 1));
      return HighLight ((startIndex + "<strong>".Length + "</strong>".Length + word.Length, builder.ToString (), word);
    }
  }

  //Word not found.
  return text;
}

Чтобы вы могли сделать:

string myText = "how are you? how do you do?";
string hightLightedText = HighLight (0, myText, "how");

И если в моем коде нет ошибок, это выдает: "<strong> как </strong> как ты? <strong> как </strong> как дела?";

Затем вы можете перераспределить <strong> и </strong> с тем, что вы хотите "выделить" ваш текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...