(Отказ от ответственности: Я не пользователь COBOL)
После некоторого быстрого поиска в Интернете, я нашел OpenCOBOL справочного руководства (http://opencobol.add1tocobol.com/OpenCOBOL%20Programmers%20Guide.pdf), который описывает оператор IS=
соотношения (и его синонимы) работает с типами строк (6.1.4.2.5) а именно:.
When comparing strings, the comparison is made based upon the program’s collating sequence (see section 4.1.2). When the two string arguments are of unequal length, the shorter is assumed to be padded (on the right) with a sufficient number of SPACES as to make the two strings of equal length. String comparisons take place on a corresponding character-by-character basis until an unequal pair of characters is found. At that point, the relative position of where each character in the pair falls in the collating sequence will determine which is greater (or less) than the other.
COBOL определяет IS=
, IS EQUAL TO
и EQUALS
в качестве эквивалентных операторов, так что вы хотите что-то вроде этого:
IF name1 EQUALS name2
DISPLAY "Names are the same"
ELSE
DISPLAY "Names are not the same"
В документации состояний, параметры сортировки вашей программы определяют, как выполняется сравнение строк, что означает, что потенциально «Peter
», «PETER
», и «Péter
» может рассматриваться как эквиваленты.
Примечание о разной длине интересно, неявная правая набивка означает, что эти две строки считаются равными: («Foo
„и“Foo__
„), но не (“Foo
„и“__Foo
»).
'PIC' не тип, это синтаксическая конструкция, которая предшествует тип (или, вернее, формат) поля, в этом случае' х (20) 'означает« произвольный текст из 20 символов ». – Dai
так что я не могу их сравнить? –
@ Дай Нет, 'PIC X (20)' не означает этого. 'X' называется« буквенно-цифровым », но он может действительно содержать любой из 256 доступных битовых шаблонов. PIC X (20) - 20 байтов данных. То, что он содержит, зависит от контекста, в котором он используется. В этом примере «ACCEPT» представляет собой ввод с клавиатуры, но поля PIC X могут использоваться многими другими способами. –