2016-12-06 53 views
0

如何從Dragon 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

基於我在這裏做的工作:

CheckNewPara是在這裏: http://knowbrainer.com/forums/forum/messageview.cfm?catid=4&threadid=2739&discTab=true&messid=11427&parentid=11409&FTVAR_FORUMVIEWTMP=Single 或搜索項論壇,並注意,它的作用是回頭 ,看看現有的字符(S

:之前光標所在 當你調用該函數來決定下一步該怎麼做

一個能適應和創建以下)存在

' 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函數,所以你只需要編寫一次。

Hth,

+0

謝謝,您的解決方案效果很好。你知道是否可以使用'String.Trim'方法嗎?我在https://msdn.microsoft.com/en-us/library/h9wz3dez(v=vs.90).aspx上閱讀:「LTrim,RTrim和Trim函數從字符串的末尾刪除空格。空格的形式,如製表符,使用'String.Trim'方法。「但是我無法設法得到'String.Trim'方法:當試圖說出語音命令時,我會在保存宏之前得到通常的「請更正語法錯誤」。 –

+1

Dragon NaturallySpeaking高級腳本基於WinWrap Basic V6 - 這是舊的和過時的。在此查看顯示WinWrap Basic V6(WW),Microsoft VB Script 5(VBS)和Microsoft VBA 6(VBA)之間許多不同之處和相似之處的圖表: http://www.pcspeak.com/scripting10/ advanced_scripting_vs_vba。pdf 無論如何,WWB不支持將字符串視爲現代語言的對象 - 所以不行,string.trim方法將不起作用。 – PGilm

+2

謝謝,很高興知道! Dragon NaturallySpeaking高級腳本不是基於更現代的語言,這很煩人。順便說一下,歡迎您將您的評論轉換爲[我可以在Dragon Advanced Scripting中使用哪些編程語言?](http://stackoverflow.com/q/41009401/395857) –

2

我不知道一個Trim指令,將自動刪除該選項卡和其他的空格,但是你可以通過使用替換命令刪除空格一個接一個。

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

+1提醒我你可以在Dragon NaturallySpeaking Advanced Scripting中使用「替換」。但是,如我的答案所示,您不需要它來滿足OP的要求。 – PGilm

+0

感謝您的替代解決方案,確實比另一個稍微微妙一點:-)作爲一個便箋,我正在尋找免提stenomask進行語音識別,任何指針都非常受歡迎:[允許使用stenomask而不必用手握住](http://hardwarerecs.stackexchange.com/q/6395/40) –

+1

哈!是的,確實 - 微妙。順便說一句,你可以很容易地調整我的解決方案來修剪字符串的後端。只需將所有的「左」改爲「右」,處理過程如下:s = Mid(s,1,Len(s)-1)'。你是否希望我編輯我的答案,包括(我問bc我想如果你標記爲答案,但要確保它是)?請享用! – PGilm

相關問題