Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 9 День 9 Присваивание преобразование выч...doc
Скачиваний:
6
Добавлен:
21.11.2019
Размер:
299.01 Кб
Скачать

2. Операторы присваивания

Оператор присваивания определяет значение переменной или Field String. Обычно используются три оператора присваивания:

  • clear

  • move

  • move-corresponding

Оператор clear

Оператор clear присваивает переменным заданные по умолчанию начальные значения. Оператор clear присваивает значению переменной или Field String нуль. Если тип данных – c, присваивает значение пробел. Пробелы и нули являются заданными по умолчанию начальными значениями.

Синтаксис оператора clear.

clear v1 [with v2 | with 'A' | with NULL]

где:

  • v1 и v2 – переменные или имена Field String .

  • 'A' - литералы любой длины.

no-gap – выводить без промежутков

report ztx0904.

tables ztxlfa1.

data: f1(2) type c value 'AB',

f2 type i value 12345,

f3 type p value 12345,

f4 type f value '1E1',

f5(3) type n value '789',

f6 type d value '19980101',

f7 type t value '1201',

f8 type x value 'AA',

begin of s1,

f1(3) type c value 'XYZ',

f2 type i value 123456,

end of s1.

ztxlfa1-lifnr = 'XXX'.

ztxlfa1-land1 = 'CA'.

write: / 'f1=''' no-gap, f1 no-gap, '''',

/ 'f2=''' no-gap, f2 no-gap, '''',

/ 'f3=''' no-gap, f3 no-gap, '''',

/ 'f4=''' no-gap, f4 no-gap, '''',

/ 'f5=''' no-gap, f5 no-gap, '''',

/ 'f6=''' no-gap, f6 no-gap, '''',

/ 'f7=''' no-gap, f7 no-gap, '''',

/ 'f8=''' no-gap, f8 no-gap, '''',

/ 's1-f1=''' no-gap, s1-f1 no-gap, '''',

/ 's1-f2=''' no-gap, s1-f2 no-gap, '''',

/ 'ztxlfa1-lifnr=''' no-gap, ztxlfa1-lifnr no-gap, '''',

/ 'ztxlfa1-land1=''' no-gap, ztxlfa1-land1 no-gap, ''''.

clear: f1, f2, f3, f4, f5, f6, f7, f8, s1, ztxlfa1.

write: / 'f1=''' no-gap, f1 no-gap, '''',

/ 'f2=''' no-gap, f2 no-gap, '''',

/ 'f3=''' no-gap, f3 no-gap, '''',

/ 'f4=''' no-gap, f4 no-gap, '''',

/ 'f5=''' no-gap, f5 no-gap, '''',

/ 'f6=''' no-gap, f6 no-gap, '''',

/ 'f7=''' no-gap, f7 no-gap, '''',

/ 'f8=''' no-gap, f8 no-gap, '''',

/ 's1-f1=''' no-gap, s1-f1 no-gap, '''',

/ 's1-f2=''' no-gap, s1-f2 no-gap, '''',

/ 'ztxlfa1-lifnr=''' no-gap, ztxlfa1-lifnr no-gap, '''',

/ 'ztxlfa1-land1=''' no-gap, ztxlfa1-land1 no-gap, ''''.

f1='AB'

f2=' 12,345 '

f3=' 12,345 '

f4=' 1.000000000000000E+01'

f5='789'

f6='19980101'

f7='120100'

f8='AA'

s1-f1='XYZ'

s1-f2=' 123,456 '

ztxlfa1-lifnr='XXX '

ztxlfa1-land1='CA '

f1=' '

f2=' 0 '

f3=' 0 '

f4=' 0.000000000000000E+00'

f5='000'

f6='00000000'

f7='000000'

f8='00'

s1-f1=' '

s1-f2=' 0 '

ztxlfa1-lifnr=' '

ztxlfa1-land1=' '

Программа, которая заполняет переменные и компоненты Fields String значениями кроме пробелов или нулей.

report ztx0905.

tables ztxlfa1.

data: f1(2) type c value 'AB',

f2(2) type c,

f3 type i value 12345,

begin of s1,

f1(3) type c value 'XYZ',

f2 type i value 123456,

end of s1.

write: / 'f1=''' no-gap, f1 no-gap, '''',

/ 'f2=''' no-gap, f2 no-gap, '''',

/ 'f3=''' no-gap, f3 no-gap, '''',

/ 's1-f1=''' no-gap, s1-f1 no-gap, '''',

/ 's1-f2=''' no-gap, s1-f2 no-gap, '''',

/ 'ztxlfa1-lifnr=''' no-gap, ztxlfa1-lifnr no-gap, '''',

/ 'ztxlfa1-land1=''' no-gap, ztxlfa1-land1 no-gap, '''',

/.

clear: f1 with 'X',

f2 with f1,

f3 with 3,

s1 with 'X',

ztxlfa1 with 0.

write: / 'f1=''' no-gap, f1 no-gap, '''',

/ 'f2=''' no-gap, f2 no-gap, '''',

/ 'f3=''' no-gap, f3 no-gap, '''',

/ 's1-f1=''' no-gap, s1-f1 no-gap, '''',

/ 's1-f2=''' no-gap, s1-f2 no-gap, '''',

/ 'ztxlfa1-lifnr=''' no-gap, ztxlfa1-lifnr no-gap, '''',

/ 'ztxlfa1-land1=''' no-gap, ztxlfa1-land1 no-gap, ''''.

f1='AB'

f2=' '

f3=' 12,345 '

s1-f1='XYZ'

s1-f2=' 123,456 '

ztxlfa1-lifnr=' '

ztxlfa1-land1=' '

f1='XX'

f2='XX'

f3='50,529,027 '

s1-f1='XXX'

s1-f2='1482184792 '

ztxlfa1-lifnr='##########'

ztxlfa1-land1='###'

Строка

clear f3 with 3.

записывает в первый байт f3 число 3. Числовой литерал длиной до девяти цифр сохраняется как четырех-байтовое целое число. В f3 заполнен первый байт этого четырех-байтового целого числа, по существу присваивая случайное значение f3.

Строка

clear s1 with 'X'.

обрабатывает s1 как тип c и присваивает X. Компонент f1 является типом c, таким образом он получает правильные значения. Компонент f2 является типом i и получает недопустимые значения.

Таблица ztxlfa1 заполнена первым байтом от четырех-байтового целочисленного значения 0, присваивая элементам случайные значения (заполняя их мусором). Мусор, в этом случае, отображен как знаки (#).