Какой лучший код VBScript для добавления десятичных разрядов ко всем числам в строке? - PullRequest
1 голос
/ 03 октября 2008

Пример

G76 I0.4779 J270 K7 C90

X20 Y30

Если число начинается с I J K C X Y и не имеет десятичной дроби, добавьте десятичную. Приведенный выше пример должен выглядеть так:

G76 I0.4779 J270 K7. C90.

X20. Y30.

Цель этого кода - преобразовать код ЧПУ для более старого контроллера Fanuc OPC

Ответы [ 3 ]

2 голосов
/ 03 октября 2008

<code>Set RegEx = New RegExp
RegEx.Global = True
RegEx.Pattern = "([IJKCXY]\d+)([^\.]|$)"
newVar = RegEx.Replace (oldString, "$1.$2")

Где oldString - исходная строка, а newVar - строка с добавленными десятичными знаками.

0 голосов
/ 03 октября 2008

тлоах все равно ответ не работает

Уэйнс работает, но также ставит. после каждого вхождения IJKCXY

Я изменил, если instr (Match.value, ".") = 0, тогда

Похоже, если instr (Match.value, ".") = 0 и len (Match.value)> 1, то

0 голосов
/ 03 октября 2008
function convert(str)
    Set RegEx = New RegExp
    RegEx.Global = True
    RegEx.Pattern = "([IJKCXY]\d*\.?\d*)"
    Set Matches = regEx.Execute(str)

    For Each Match in Matches
        if instr(Match.value, ".") = 0 then
            str = Replace(str, Match.value, Match.value & ".")
        end if
    Next
    convert = str
end function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...