如何在Dragon NaturallySpeaking的高级脚本编写中从字符串中修剪所有形式的空格(制表符,换行符......)?

时间:2016-12-06 01:33:28

标签: naturallyspeaking

如何从Dragon NaturallySpeaking高级脚本中的字符串中修剪所有形式的空格(制表符,换行符......)?

Trim()仅删除空格。例如,以下语音命令将键入[tab]test

' Tested with Dragon NaturallySpeaking 12.5 Professional on Windows 7 SP1 x64 Ultimate
Sub Main
    s = vbTab & "test"
    s = Trim(s)
    SendKeys s
End Sub

2 个答案:

答案 0 :(得分:2)

我不知道Trim命令会自动删除制表符和其他空格,但您可以使用Replace命令逐个删除空格。

Sub Main
    s = vbTab & "test"
    s = Trim(s)
    s = Replace (s, Chr(9), "") ' Replaces the tab character written in ASCII code with nothing
    s = Replace (s, Chr(10), "") ' Replaces the LF written in ASCII code with nothing
    s = Replace (s, Chr(13), "") ' Replaces the CR written in ASCII code with nothing
    SendKeys s
End Sub

这是一个部分解决方案:它将删除所有这些空格,即使在字符串中也是如此。如果你想保留它们,你将不得不找到一种方法来测试第一个或最后一个字符是否为空格,并且不用替换它们。因为我以前没有这么做,所以我无法快速解决这个问题。

答案 1 :(得分:2)

根据我在这里所做的工作:

  

CheckNewPara在这里:   http://knowbrainer.com/forums/forum/messageview.cfm?catid=4&threadid=2739&discTab=true&messid=11427&parentid=11409&FTVAR_FORUMVIEWTMP=Single   或者在论坛中搜索该术语,并注意,它的作用是回顾   查看光标所在之前存在的现有字符   当你调用函数决定下一步做什么时

可以适应并创建以下内容:

' Tested with Dragon NaturallySpeaking 13 Professional on Windows 8.1
Sub Main
    s = vbTab & " " & vbTab & "test"
    s = myTrim(s)
    MsgBox """" & s & """"
End Sub
Function myTrim ( s As String )
    While Left(s,1)=Chr(9) Or Left(s,1)=Chr(10) Or Left(s,1)=Chr(13) Or Left(s,1)=" "
        s=Mid(s,2)
    Wend
    While Right(s,1)=Chr(9) Or Right(s,1)=Chr(10) Or Right(s,1)=Chr(13) Or Right(s,1)=" "
        s=Mid(s,1,Len(s)-1)
    Wend
    myTrim = s
End Function

当然,您可以在常用的使用注释文件中引用myTrim函数,因此您只需编写一次。

H个,