vb.net - 使用VB将RTF格式的字符串转换为纯文本字符串

标签 vb.net

这是我在 VB.Net 中的第一个项目 我有一个 RTF 格式的字符串。当项目符号组出现在该字符串中时,我需要使用 VB.Net 删除/移除该组项目符号。

我的字符串:

{\rtf1\ansi\ansicpg1252\deff0\deflang2070{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}{\f1\fnil\fcharset0 Tahoma;}{\f2\fnil\fcharset2 Symbol;}}
\viewkind4\uc1\pard\f0\fs17\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\f1 one\par
{\pntext\f2\'B7\tab}two\par
{\pntext\f2\'B7\tab}three\par
{\pntext\f2\'B7\tab}\par
\pard\fs17\par
}

我有 3 颗子弹,分别为一、二、三。我需要删除格式但保持每个值一致。

我在VB中尝试过类似的事情

If (Rtfctrl.FindNumberOfOccurences(Txt, "\bullet", True) = 1) Then
     resultString = resultString.Replace("\bullet", "")
End If
}

...但项目符号不在字符串中。列表项目符号是一组具有更复杂语法的组。

我可以由谁来做这件事? 问候, 菲利普

最佳答案

我通常不建议将 Control 用于用户交互以外的其他用途,但 RichTextBox 可以将 RTF 文本转换为纯文本。您可以创建 RichTextBox,而无需将其添加到表单中。然后将 RTF 文本分配给 Rtf 属性,并从 Text 或 Lines 属性中读取纯文本。例如:

Dim rtf As String = "{\rtf1\ansi\ansicpg1252\deff0\deflang2070{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}" _
    & "{\f1\fnil\fcharset0 Tahoma;}{\f2\fnil\fcharset2 Symbol;}}\viewkind4\uc1\pard\f0\fs17\par" _
    & "\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\f1 one\par{\pntext\f2\'B7\tab}two\par" _
    & "{\pntext\f2\'B7\tab}three\par{\pntext\f2\'B7\tab}\par\pard\fs17\par}"
Dim rBox As New RichTextBox
rBox.Rtf = rtf
Dim txt() As String = rBox.Lines

运行此代码后,txt(1) 包含“一”,txt(2) 包含“二”,txt(3) 包含“三”。

关于vb.net - 使用VB将RTF格式的字符串转换为纯文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31430811/

相关文章:

c# - 获取特定 linq to sql 表的名称

vb.net - ADO Entity Framework 中未映射关联端

.net - 判断是在 .NET 中的生产环境还是开发环境中的最佳方法

vb.net - 更改pdfptable的字体大小

c# - Sourcesafe 的外部差异工具

asp.net - SqlServer Spatial DataReader.GetFieldType 返回 null

asp.net - 为什么我的类(class)什么都没有?

vb.net - 用于实现 IDictionary 的 GetEnumerator

vb.net - 更好地使用验证或离开事件来验证文本框数据?

asp.net - 4.5 中的异步 : Cancellation and Timeout