Позвольте мне начать с того, что исходный оператор НЕ является ни стандартным MUMPS, ни InterSystems Cache, ни кодом GT.M. Даже широко догадываясь о том, что изначально подразумевалось, финальный S в строке - это не то, что вы бы сделали в MUMPS. Одна S может быть командой SET, но у вас все еще нет аргументов, указывающих, какая переменная может быть назначена или какое значение должно быть ей присвоено.
Остальная часть моего ответа пытается выяснить, что это могло значить.
Ваш вопрос, похоже, нарушен каким-то программным обеспечением либо это в stackoverflow или процесс вырезания и вставки, чтобы поместить его здесь:
Я видел:
I $ P (GIH ,, 24) = S $ P (GIH ,, 24) = "C" S
Что означают две буквы S в приведенном выше утверждении MUMPS?
Трудно понять, что вы имели в виду, поскольку это потребовало бы предположения, где могут быть кавычки и какие из них могли быть удалены при передаче вопроса.
Прежде всего, давайте сделаем что-то, что, как мы можем догадаться, разумно. $ P обычно является аббревиатурой для встроенной (встроенной) функции $ PIECE. Я, стоящий один, вероятно, команда IF
и одиночная буква S, вероятно, является командой SET. Это приводит к проблеме с вашим примером, потому что формат строки кода MUMPS - КОМАНДА КОМАНДА-АРГУМЕНТ.
В сторону Примечание: я также просто попытался поместить текст COMMAND-ARGUMENT в «угловые скобки», т. Е. С символом меньше, чем в начале слова, и символом, большим, чем в конце. Текст КОМАНДА-АРГУМЕНТ просто исчез. Это означает, что stackoverflow видит его как разметку HTML. Я заметил, что в верхней части этого окна редактирования есть маркер кода, который может или не может помочь.
Если мы сделаем расширения для кода выше, мы получим:
IF $ PIECE (GIH ,, 24) = SET $ PIECE (GIH ,, 24) = "C" SET
Когда мы раскрываем последний S, но он выглядит как команда SET, но без какого-либо аргумента set.
Обратите внимание: если бы это было в системе Cache, у нас мог бы быть пример дополнительных пробелов, разрешенных Cache, которые не разрешены в Стандартном MUMPS, т.е. S мог быть правой частью оператора равенства в IF команда. Это имело бы смысл только в том случае, если бы Cache также позволял аргументу команды SET быть в коде без фактической команды SET.
т.е.:
IF $ ЧАСТЬ (GIH ,, 24) = S $ ЧАСТЬ (GIH ,, 24) = "C" SET
Нам все равно придется иметь дело с двумя запятыми подряд для встроенной функции $ PIECE. В настоящее время использование двух запятых в строке для указания отсутствующего аргумента допускается только в написанном программистом коде, но не при использовании встроенных функций. Так что это может быть место, где мы можем угадать, что вы имели в виду, или изначально вставить.
Если мы введем двойные кавычки, мы столкнемся с проблемой того, что команда $ PIECE (которая разделяет строку на основе разделителя) будет иметь строку в кавычках нулевой длины, заданную в качестве второго аргумента. Что так же ошибочно, как пустой аргумент.
Так что, если мы выдвинули гипотезу строки в кавычках, которая имеет угловые скобки, мы бы получили что-то такое для вашей исходной строки:
IF $PIECE(GIH,"<something>",24)="<something>" SET $PIECE(GIH,"<something>",24)="C" SET
Примечание: я только что увидел, что маркер кода позволяет использовать серьезные акценты, чтобы не допустить предположения, что строка - это HTML - это хорошо, поскольку серьезный акцент не является символом, используемым в кодировании MUMPS.
Как уже упоминалось в другом ответе, форма SET- $ PIECE-ARGUMENT используется для изменения данных, хранящихся в базе данных в определенном расположении подстроки с разделителями.
Так что этот код может подойти, но он далеко ушёл от того, что вы могли или не могли сделать. Так что я останавливаюсь сейчас, пока мы не получим обратную связь, что это даже близко к тому, что вы хотели. Как я сказал вначале, это все еще не совсем правильный код.