Как получить RTF от RichTextBox

Похоже, что проблема, с которой вы столкнулись, состоит в том, что расчеты синхронизации внутри вашего цикла while никогда не имеют шансов на запуск, когда read блокирует вход. В этом случае вы можете направить вывод tail в цикл while true, внутри которого вы можете сделать if read -t $timeout:

log_file=/tmp/app.log
threshold=120
timeout=10

tail -Fn0 "$log_file" | while true; do
  if read -t $timeout line; then
    echo "${line}" | awk '/PATTERN/ { system("touch pattern.tmp") }'
  fi

  # code to calculate how long ago pattern.tmp touched and same is assigned to diff 

  if [ ${diff} -gt ${threshold} ]; then
    echo "Error"
  else
    echo "Clear"
  fi
done

Как отметил Эд Мортон, все имена переменных caps не являются хорошая идея в скриптах bash, поэтому я использовал строчные имена переменных.

10
задан Breeze 21 July 2016 в 12:45
поделиться

2 ответа

Создать фактический XAML пользователем в RichTextBox:

   TextRange tr = new TextRange(myRichTextBox.Document.ContentStart,
                                myRichTextBox.Document.ContentEnd);
   MemoryStream ms = new MemoryStream();
   tr.Save(ms, DataFormats.Xaml);
   string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray());

Править: У меня нет кода передо мной для тестирования, но экземпляр TextRange тип имеет a Save (к потоку) метод, который берет a DataFormats параметр, который может быть DataFormats.Rtf

16
ответ дан 3 December 2019 в 19:35
поделиться

Существует 2 класса RichTextBox, один от платформы winforms и один от платформы WPF:

System.Windows.Controls.RichTextBox wpfBox;
System.Windows.Forms.RichTextBox winformsBox;

Только RichTextBox Winform имеет свойство Rtf, другой имеет свойство Document, которое содержит FlowDocument.

4
ответ дан 3 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: