Основываясь на нашем разговоре и другой информации, я немного изменил код. Я удалил все ссылки на CSV, поскольку это происходит за пределами программы COBOL. Я заменил оператор STRING
. Имя-имя для группы, содержащей W-Z18
и ;
, не было дано в других ссылках, поэтому здесь я назвал его W-Z18-FIELD
. Я поместил результат в W-Z18-TEXT
.
environment division.
configuration section.
special-names.
decimal-point is comma.
data division.
working-storage section.
1 w-z18-text pic x(16) value space.
1 w-z18-pointer comp pic 9(4) value 1.
1 w-z18-field.
* Taux horaire formation
3 w-z18 pic -(12),99.
3 pic x value ";".
1 leading-spaces comp pic 9(4) value 0.
1 move-length comp pic 9(4) value 0.
procedure division.
begin.
move -10,98 to w-z18
move 0 to leading-spaces
inspect w-z18 tallying
leading-spaces for leading space
compute move-length =
function length (w-z18 (leading-spaces + 1:))
move space to w-z18-text
move 1 to w-z18-pointer
move w-z18 (leading-spaces + 1:)
to w-z18-text (w-z18-pointer:move-length)
compute w-z18-pointer = w-z18-pointer + move-length
move ";" to w-z18-text (w-z18-pointer:1)
add 1 to w-z18-pointer
display quote w-z18-field quote
display quote w-z18-text quote
stop run
.
Результат: (цитаты были добавлены, чтобы показать изменения)
" -10,98;" - what it looked like before, w-z18-field
"-10,98; " - with the changes, w-z18-text
Это только перемещает пробелы от числа до запятой. Будет ли этого достаточно, зависит от того, удалит ли следующая программа завершающие пробелы.