|
From: David E. <de...@us...> - 2005-07-07 06:05:15
|
Yes, there are several problems here.
First the TC grammar does not conform to the COBOL85 standard.
Syntax:
STRING {
{identifier-1 | literal-1}...
DELIMITED [BY]
{identifier-2 | literal-2 | SIZE }
}...
INTO identifier-3
So the following grammar is invalid,
STRING ...
WTEXT1 DELIMITED BY SIZE,
"'", ");"
INTO WRESULT.
STRING ...
");"
INTO WRESULT.
and should be as follows;
STRING ...
WTEXT1 DELIMITED BY SIZE,
"'" ");" DELIMITED BY SIZE,
INTO WRESULT.
STRING ...
");" DELIMITED ...
INTO WRESULT.
The second problem is invalid output, may be (or not) related to the
grammar problem.
So further investigation will be required.
Carlos Gomes wrote:
> I am getting a invalid result when use STRING verb.
> The sample above has 3 similar STRINGs, using DELIMITED
> BY SPACES the result is strange!!
> ...
> WORKING-STORAGE SECTION.
> 01 WRESULT PIC X(100) VALUE SPACES.
> 01 WTEXT PIC X(100) VALUE SPACES.
> 01 WTEXT1 PIC X(10) VALUE "12345 ".
> 01 W9 PIC 999 VALUE 999.
> PROCEDURE DIVISION.
> PARAG.
> STRING "INSERT INTO TEST ",
> ",",W9,
> ",","'",
> WTEXT1 DELIMITED BY SPACES, "'",
> ");" INTO WRESULT.
> DISPLAY WRESULT.
> MOVE SPACES TO WRESULT.
> STRING "INSERT INTO TEST ",
> ",",W9,
> ",","'",
> WTEXT1 DELIMITED BY SIZE, "'",
> ");" INTO WRESULT.
> DISPLAY WRESULT.
> MOVE SPACES TO WRESULT.
> STRING "INSERT INTO TEST ",
> ",",W9,
> ",","'",
> WTEXT1 , "'",
> ");" INTO WRESULT.
> DISPLAY WRESULT.
> STOP RUN.
>
> Result in:
>
> DISPLAY 1--> INSERT,999,'12345');
> DISPLAY 2--> INSERT INTO TEST ,999,'12345 ');
> DISPLAY 3--> INSERT INTO TEST ,999,'12345 ');
|