2016-12-06 6 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 в общем файле комментариев Uses, поэтому вам нужно только написать ее один раз.

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 Advanced Scripting основан на 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 Advanced Scripting основан не на более современном языке. Кстати, вы можете конвертировать свой комментарий в ответ на [Какие языки программирования я могу использовать с Dragon Advanced Scripting?] (Http://stackoverflow.com/q/41009401/395857) –

2

Я не знаю, о Обрезка команды, которая удалит вкладку и другие пробельные автоматически, но вы можете удалить пробельные один за другим с помощью команды 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

+1 за напоминание мне, что вы можете использовать "Заменить" в Dragon NaturallySpeaking Advanced Scripting. Но вам это не нужно для запроса OP, как показано в моем ответе. – PGilm

+0

Спасибо за альтернативное решение, действительно немного менее тонкое, чем другое :-) В качестве побочной заметки я ищу громкую стенограмму для распознавания речи, любой указатель очень приветствуется: [Устройство, которое позволяет использовать стеномаску без необходимости держать его за руку] (http://hardwarerecs.stackexchange.com/q/6395/40) –

+1

Ha! Да, действительно - тонкий. Btw, вы можете легко адаптировать мое решение, чтобы обрезать задний конец строки. Просто измените все 'Left' на 'Right' и обработку следующим образом: 's = Mid (s, 1, Len (s) -1)'. Вы хотите, чтобы я отредактировал свой ответ, чтобы включить (я прошу bc, я бы хотел, если бы вы отметили его как «Ответ», но хотите убедиться, что это так)? Наслаждайтесь! – PGilm

 Смежные вопросы

  • Нет связанных вопросов^_^