View previous topic :: View next topic
|
Author |
Message |
LlewellynNaicker
New User
Joined: 22 Mar 2005 Posts: 5
|
|
|
|
Hi all
I have a problem where I am trying to get the length of a variable data string. Basically it is a group of fields but not a copybook and I need to calculate the length with out doing a perform and calculating byte by byte.
Can anyone give me an easier way to do it.
Your help is much appreciated.
Regards
Llewellyn Naicker |
|
Back to top |
|
|
MFRASHEED
Active User
Joined: 14 Jun 2005 Posts: 186 Location: USA
|
|
|
|
If i understood issue correctly, here is what you can use.
You can move the group of fields under one level and get length of the whole level.
Example:
Code: |
01 WS-fields.
05 WS-FLD1 PIC X(6).
05 WS-FLD2 PIC X(9).
05 WS-FLD1 PIC X(8).
01 WS-FLD-LEN PIC S9(3)
|
and use following code
Code: |
MOVE LENGTH OF WS-FIELDS
TO WS-FLD-LEN
|
|
|
Back to top |
|
|
LlewellynNaicker
New User
Joined: 22 Mar 2005 Posts: 5
|
|
|
|
Hi there thanx so much for your reply. I was not sure if that statement would work but will try it out. |
|
Back to top |
|
|
shreevamsi
Active User
Joined: 23 Feb 2006 Posts: 305 Location: Hyderabad,India
|
|
|
|
hi LlewellynNaicker,
If you are not sure...abt the lenght of the variable withut trailing spaces,
here is a method...you can follow.
1. Reverse the String
2. Search for the non space charecter from the begining of the reversed string. Get the No of trailing Spaces
3. Subtract the number of spaces from the lenght of the variable with spaces.
~Vamsi |
|
Back to top |
|
|
elangomvs
New User
Joined: 07 Apr 2006 Posts: 4
|
|
|
|
LlewellynNaicker wrote: |
Hi all
I have a problem where I am trying to get the length of a variable data string. Basically it is a group of fields but not a copybook and I need to calculate the length with out doing a perform and calculating byte by byte.
Can anyone give me an easier way to do it.
Your help is much appreciated.
Regards
Llewellyn Naicker |
hi,
do like this
01 STR1 PIC X(80).
01 LEN PIC 99.
PROCEDURE DIVISION.
PERFORM VARYING I FROM 80 BY -1 UNTIL STR1(I:1) > SPACES
END-PERFORM.
MOVE I TO LEN.
now the data name LEN have the actual length. |
|
Back to top |
|
|
elangomvs
New User
Joined: 07 Apr 2006 Posts: 4
|
|
|
|
hi,
do like this
01 STR1 PIC X(80).
01 LEN PIC 99.
01 I PIC 99.
PROCEDURE DIVISION.
PERFORM VARYING I FROM 80 BY -1 UNTIL STR1(I:1) > SPACES
END-PERFORM.
MOVE I TO LEN.
now the data name LEN have the actual length.
>>> ELANGO G |
|
Back to top |
|
|
|