2

我有这个代码VisualBasic 6

iLinha = FreeFile
Open strPath For Output As #iLinha
Dim strHeader As String

'***Assign a value to the string `Content`  

Print #iLinha, strHeader

现在我正在尝试对这段代码执行相同的操作,使用的是Word.Application,你知道吗?
当我编码时:

Word.Selection.TypeText strHeader  

我得到的只是代码和字符,例如:{rtf1\ansi\ansipg1252\deff0....

谁能向我解释上面的代码?印刷品#iLinha

更新

streamFile.Type = adTypeBinary
streamFile.Open
streamFile.Write rstAux.Fields("text")
streamFile.SaveToFile strCaminhoTemp, adSaveCreateOverWrite
streamFile.Close  

Obs:我尝试将其更改adTypeBinaryadTypeText但出现了几个错误...

也许这段代码与我的问题有关?!

4

3 回答 3

4

看起来strHeader是格式化的文本,而不是纯文本。

看起来strHeader在某些时候从 RTF (RichText) 控件获取它的值,它得到一个格式化的文本,而不是纯文本。

有关 RTF 控件的更多信息:MSDN

于 2013-08-23T20:43:12.000 回答
4

不知道为什么我的帖子前一段时间没有发送。无论如何,正如乔治指出的那样,它只是 RTF 文本。我的建议是您将文本应用到 RTF 控件并将其作为纯文本检索回来。这将删除所有 RTF 代码,并为您留下您想要的纯文本。

为此,当您的项目在 VB6 中打开时,按 Ctrl+T,然后选中“Microsoft Rich TextBox Control”。您可以将此新控件添加到表单中,但使其不可见。然后将RTFText属性设置为 your strHeader,并获取富编辑控件的Text属性。

于 2013-08-23T21:28:03.570 回答
1

要将 RTF 格式转换为文本格式,如果您对使用 RTF 控件不感兴趣,您可以手动编写类似的内容,如您所指出的 - 我不建议这样做:

Dim RTF As String
RTF = strHeader

Dim Text As String
Dim X As Long
Dim InTag As Boolean
Dim TagStarted As Boolean
For X = 1& To Len(RTF)
    Select Case Mid$(RTF, X, 1&)
    Case "{", "}"
        If InTag And Not TagStarted Then
            Text = Text & Mid$(RTF, X, 1&)
            TagStarted = True
        End If
    Case "\"
        If InTag And Not TagStarted Then
            Text = Text & Mid$(RTF, X, 1&)
            TagStarted = True
        Else
            InTag = True
            If Mid$(RTF, X, 5&) = "\par " Or Mid$(RTF, X, 4&) = "\par\" Or Mid$(RTF, X, 6&) = "\line " Or Mid$(RTF, X, 5&) = "\line\" Then
                Text = Text & vbCrLf
            End If
        End If
    Case " "
        If InTag Then
            InTag = False
        Else
            Text = Text & " "
        End If
    Case Else
        If InTag Then
            TagStarted = True
        Else
            Text = Text & Mid$(RTF, X, 1&)
        End If
    End Select
Next X

MsgBox Text

请注意,可能需要进行一些调整,因为代码编写得很快。

于 2013-08-26T17:52:36.950 回答