这是我在 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/