我通过定义字符串中的字符数来解决问题。 例如,我有以下代码:
.dropdown-toggle[aria-expanded="true"] {
background:#FFF !important;
color:#000 !important;
}
我必须写什么才能找到SOURCE-STRING的长度(用值写的字符串“字符串的长度”)。 长度必须为26个字符(包括前导空格= 2,最终空格= 4)。
答案 0 :(得分:3)
比尔说:
COBOL没有“字符串”。在该字段中有28个尾随空白,并且所有28个相同。
如果你想知道长度,包括使用的尾随空格的数量但不知道字段中的尾随空格,那么不要grep "Project(" NameOfYourSolution.sln | cut -d'"' -f4
中的某些内容(或使用MOVE
)但是初始化该字段(例如使用VALUE
)并使用MOVE ALL 'x00' TO FIELD
来获取数据(这样您甚至可以使用“C”字符串)。这允许您执行STRING
。
需要考虑的其他选择:
INSPECT ... BEFORE FIRST x'00'
FUNCTION LENGTH (content)
(必须以1开头)当您向问题添加更多信息(通过编辑)时,我们可以给出更好的答案(包括您使用的COBOL编译器)。
答案 1 :(得分:0)
您可以使用NULL
来表示字符串的结尾。
首先,将SOURCE-STRING
初始化为NULL
:
01 SOURCE-STRING PIC X(50) VALUE NULL.
然后,不要使用MOVE
将字符串移动到变量,而是使用STRING
语句:
STRING " The length of string " INTO SOURCE-STRING
前26个字符移入SOURCE-STRING
,但其余字符未受损,在字符串末尾留下NULL
个字节。然后,您可以确定NULL
字节的开始位置。
或者,您可以STRING
使用POINTER
自动计算移动的字符数:
WORKING-STORAGE SECTION.
01 SOURCE-STRING PIC X(50) VALUE NULL.
01 STR-PTR PIC 9(3).
PROCEDURE DIVISION.
MOVE 1 TO STR-PTR
STRING " The length of string "
INTO SOURCE-STRING
POINTER STR-PTR
SUBTRACT 1 FROM STR-PTR
STR-PTR
将包含实际字符串的长度。请注意,在使用STR-PTR
命令之前,必须将1
显式设置为STRING
。