Citación del post de
Joseg
¿Cómo lo haces? Prueba algo así:
Código COBOL:
01 wmyvar pic x(3000).
01 filler redefines wmyvar.
05 byte occurs 3000 pic 9(2) comp-5.
01 idx-1 pic 9(4) comp-5.
01 suma pic 9(9) comp-5.
procedure division.
move 1 to idx-1
move 0 to suma
perform until idx-1 > length of wmyvar
add byte(idx-1) to suma
add 1 to idx-1
end-perform
También mira esto a ver si dura menos, el cálculo será diferente pero puede servir igual creo:
Código COBOL:
01 wmyvar pic x(3000).
01 filler redefines wmyvar.
05 byte occurs 1500 pic 9(4) comp-5.
01 idx-1 pic 9(4) comp-5.
01 suma pic 9(9) comp-5.
procedure division.
move 1 to idx-1
move 0 to suma
perform until idx-1 > 1500
add byte(idx-1) to suma
add 1 to idx-1
end-perform
Código COBOL:
01 wmyvar pic x(3000).
01 filler redefines wmyvar.
05 byte occurs 750 pic 9(9) comp-5.
01 idx-1 pic 9(4) comp-5.
01 suma pic 9(18) comp-5.
procedure division.
move 1 to idx-1
move 0 to suma
perform until idx-1 > 750
add byte(idx-1) to suma
add 1 to idx-1
end-perform