Fundamentalna redefinicja Cobol

Fundamentalna redefinicja Cobol

W tym artykule postaramy się zrozumieć redefinicję Cobolu. Służy to do wyjaśnienia tego samego przechowywania pola na wiele sposobów.

Oznacza to, że definicja i przedefiniowanie pola odnoszą się do tych samych bajtów pamięci. Cobol na nowo zdefiniowania nie może mieć klauzuli o wartości i nie można go używać na poziomie 1 w sekcji pliku lub raportu.

Fundamentalna klauzula redefiniująca

Piszesz program generowania raportu i wiesz, że raport ma trzy różne sekcje. Pierwsza sekcja to nagłówek, druga sekcja to rekord szczegółów, a trzecia sekcja to zwiastun. Istnieją dwa sposoby zdefiniowania struktury w swoim programie. Pierwszym z nich jest zdefiniowanie każdej sekcji w sekcji Działu plików lub może być w sekcji przechowywania pracy. Inną opcją jest zdefiniowanie 132 bajtów dla rekordu nagłówka. Podobnie możesz ponownie zdefiniować rekord szczegółów i rekord zwiastuna.

Krótko mówiąc, możesz użyć klauzuli o redefinicji, aby odnieść się do tej samej lokalizacji pamięci. Jeśli chcesz napisać w nagłówku, przenieś rekordy do konkretnych plików nagłówka, a możesz napisać ten raport. Masz na myśli tę samą lokalizację pamięci do tych samych bajtów pamięci, która wynosi 132 bajty.

Szczegóły składni:

  • Klauzula redefiniująca musi następować natychmiast po nazwie danych-2.
  • Nazwa danych 1 nie może mieć klauzuli wartościowej.
  • Numer poziomu nazwy danych-1 = nazwa danych -2 nie może wynosić 66 lub 88.
  • Rozmiar nazwy danych 1 nie powinien przekraczać rozmiaru nazwy danych-2. Może jednak być mniej niż nazwa danych-2.
  • Przedmiot danych-danych-2 nie może zawierać klauzuli o mocy.
  • Nazwa danych 01-49-1.
  • Na nowo zdefiniuje nazwę danych-2.

Kilka przykładów redefiniowania Cobolu

Przykład 1:

Dział identyfikacyjny.
Program programowy. na nowo zdefiniować.
Wydział danych.
Sekcja pliku.
Sekcja magazynowania roboczego.
01 WS-Redefines-EX.
05 WS-Todays-Date PIC 9 (08) Wartość „2020717”.
05 WS-Curr-DTE na nowo definiuje WS-Todays-Date.
10 cm3 zdjęcie 9 (02).
10 YY PIC 9 (02).
10 mm zdjęcie 9 (02).
10 DD PIC 9 (02).
Dział procedury.
A000-Main Section.
Wyświetl „WS-Todays-Date:” WS-Todays-Date.
Wyświetl „WS-Curr-DTE:” WS-Curr-DTE.
Zatrzymaj bieg.

Wyjście:

papan@papan -virtualbox: ~/Desktop/pp/new $ COBC -xjf One.Cbl
jeden.CBL: 11: Ostrzeżenie: Oczekiwana jest wartość liczbowa
WS-Todays-Date: 2020717
WS-Curr-DTE: 2020717
papan@papan-virtualbox: ~/Desktop/PP/New $

Wyjaśnienie:

W tym przykładzie na nowo zdefiniujemy dzisiejszą datę do bieżącej daty, która w rzeczywistości jest zmienną grupową stulecia, roku, miesiąca i dnia. Właściwie podzieliliśmy dzisiejszą datę na cztery różne pola. Zatem pierwszym wierszem jest zdefiniowanie numeru poziomu 05, która jest zmienną o nazwie dzisiejsza data, a rozmiar zmiennej wynosi 9 z 8. Teraz bieżącą datą jest nowa zmienna, która w rzeczywistości jest przedefiniowaniem dzisiejszej daty i grupy czterech pól. Połączony rozmiar wszystkich pól wynosi 8 bajtów.

Przykład 2:

Dział identyfikacyjny.
Program programowy. PRACOWNIK.
Wydział danych.
Sekcja pliku.
Sekcja magazynowania roboczego.
01 EMP-REC.
05 EMP-REC-FY PIC X (30) Wartość „David Martinez Gomes”.
05 EMP-NAME-DTL na nowo zdefiniuje EMP-REC-FY.
10 EMP-Fname PIC X (15).
10 EMP-LNAME PIC X (15).
05 EMP-DPT-Nazwa na nowo zdefiniuje EMP-REC-LY.
10 EMP-DPT PIC X (10).
10 EMP-Add Pic x (15).
Dział procedury.
A000-Main Section.
Wyświetl „EMP-REC-FY:” EMP-REC-LY.
Wyświetl „EMP-NAME-DTL:” EMP-NAME-DTL.
Wyświetl „EMP-Fname:” EMP-Fname.
Wyświetl „EMP-LNAME:” EMP-LNAME.
Wyświetl „emp-dpt-nazwa:” Emp-Dpt-nazwa.
Wyświetl „EMP-ADD:” EMP-ADD.
Zatrzymaj bieg.

Wyjście:

papan@papan -virtualbox: ~/Desktop/pp/New $ COBC -xjf dwa.Cbl
EMP-REC-LY: David Martinez Gomes
EMP-NAME-DTL: David Martinez Gomes
EMP-Fname: David Martinez
EMP-LNAME: GOMES
Emp-Dpt-nazwa: David Martinez Gomes
EMP-ADD: inez gomes

Wyjaśnienie:

W tym przykładzie wiele razy na nowo zdefiniowaliśmy tę samą zmienną. Istnieją dwa pola: EMP-REC-LY, które jest rekordem szczegółów EMP i EMP-DPT-NME, która jest nazwą działu EMP. Są to dwie zmienne, które faktycznie na nowo zdefiniowały EMP-REC, czyli x (30). Jeśli zobaczysz pierwszy, który jest EMP-nazwa-DTL, jest to znowu zmienna grupowa pierwszych i nazwisk o wielkości odpowiednio 15 i 10. Podobnie po prostu patrzymy na drugą redefinicję, która jest EMP-DPT-NME, która ponownie jest redefinicją EMP-REC. Jest to grupa zmiennej x (10) i x (15).

Przykład 3:

Dział identyfikacyjny.
Program programowy. Miesiąty_Table.
Wydział danych.
Sekcja pliku.
Sekcja magazynowania roboczego.
01 Miesiąc-TBL.
05 mnth-nme.
10 Filler PIC X (03) Wartość „Jan”.
10 wypełniacz pic x (03) Wartość „Feb”.
10 wypełniacz pic x (03) wartość „mar”.
05 wypełniacz na nowo zdefiniuje mnth-nme.
10-miesięczny NME występuje 3 razy.
15 mnth pic x (03).
Dział procedury.
Wyświetl „miesiąc-tbl:” miesiąc-tbl.
Wyświetl „miesiąc-nme:” mntth-nme.
Zatrzymaj bieg.

Wyjście:

Papan@papan -virtualbox: ~/Desktop/pp/New $ COBC -xjf Three.Cbl
Miesiąc-TBL: Janfebmar
MNTH-NME: Janfebmar
papan@papan-virtualbox: ~/Desktop/PP/New $

Wyjaśnienie:

Przejdźmy do tego przykładu, w którym użyliśmy klauzuli o redefinicji, aby zainicjować nazwę miesiąca. Jeśli wydrukujesz wartość nazwy miesiąca, tabeli lub tablicy, przekonasz się, że pierwsze zdarzenie ma „Jan”, drugie zdarzenie ma „Feb”, a trzecie wystąpienie ma „Mar”. Dzięki tej technice możesz faktycznie przypisać wartości początkowe do tablicy lub tabeli.

Wniosek

W tym artykule dowiedzieliśmy się o ogólnej składni stwierdzenia „na nowo zdefiniowania” w Cobol i podstawowej koncepcji tego stwierdzenia, w którym możemy faktycznie użyć tego konkretnego stwierdzenia, wyjaśniono. Mamy nadzieję, że zrozumiesz zastosowanie tego stwierdzenia.