18.08.2013

Aspose: условная замена строки при поиске

В своей работе часто приходится использовать компоненты Aspose. Это набор библиотек, прежде всего предназначенных для работы с файлами. Они позволяют легко работать с такими форматами, как doc, docx, rtf, pdf, xls, xlsx, ppt, pptx и многие другие.
Недавно возникла задача по условной замене строки в rtf-файле. Т.е. если искомая по маске строка имеет один вид, то заменяет на одну строку, если другой вид - то на другую. Делается это следующим образом:
Document doc = new Document(someFilenameOrStream);
doc.Range.Replace(new Regex(someRegexString), new ReplaceEvaluator(), false);
Здесь осуществляется поиск по регулярному выражению someRegexString. Каждый раз, когда программа находит строку в файле, удовлетворяющую условию, срабатывает обработчик ReplaceEvaluator:
public class ReplaceEvaluator : IReplacingCallback
{
   public ReplaceEvaluator()
   {
       // При необходимости можно передавать в конструктор параметры
   }

   ReplaceAction IReplacingCallback.Replacing(ReplacingArgs e)
   {
       string match = e.Match.ToString();
       case (match)
       {
          // Логика обработки
       }

       return ReplaceAction.Replace;
   }
}

Комментариев нет:

Отправить комментарий