View previous topic :: View next topic
|
Author |
Message |
rohit_k21
New User
Joined: 06 Jun 2005 Posts: 2 Location: India-Pune
|
|
|
|
Folks
I have requirement
01 WK-CIRCUIT-DATA PIC X(43)
User Data : 1000104104 T3X-13 HRFRCT03K16 HRFRCT03W01
Length of the user data is 41 (including 3 blank spaces between the data)
Kindly suggest me a method where by I can compute the length of the user data including spaces between the data (3 in the above eg) and excluding trailing spaces(2 in the above eg)
I should get 41 as the ans.
Thanks in advance
Rohit |
|
Back to top |
|
|
priya
Moderator
Joined: 24 Jul 2003 Posts: 568 Location: Bangalore
|
|
|
|
Try INSPECT verb. |
|
Back to top |
|
|
lucky
New User
Joined: 01 Jun 2005 Posts: 12 Location: Croatia
|
|
|
|
I'm a C programmer, so I can't write you the COBOL code, but I would do this:
1.) Get the total length of the string (in your case 43)
2.) Loop through the string from the end backwards, and get the value of each character (I believe it's POSITION statement in COBOL).
3.) If the character is a space, decrease the variable from step 1 by 1.
4.) Break on first non-space character.
As I said, I'm a C programmer, so I don't knoe if there is a better way in COBOL. |
|
Back to top |
|
|
sivatechdrive
Active User
Joined: 17 Oct 2004 Posts: 191 Location: hyderabad
|
|
|
|
Hi rohit
try the below code
PERFORM VARYING WS-SUB-NAME FROM LENGTH OF WS-VAR BY -1
UNTIL END-FOUND OR WS-SUB-NAME = 0
IF WS-NAME-CHK(WS-SUB-NAME:1) NOT EQUAL TO SPACE
MOVE 'Y' TO WS-END-OF-FIELD
DISPLAY 'LENGTH ' WS-SUB-NAME
END-IF
END-PERFORM
Regards
siva |
|
Back to top |
|
|
|