Onder initialiseren verstaan we: het geven van een beginwaarde. Vaak willen we dat een variabele bij de aanvang van het programma een bepaalde waarde bevat. Het geëigende middel om daarvoor te zorgen is de value-clausule. Variabelen die in de working-storage gedefinieerd zijn, kunnen de value-clausule bij zich hebben, zoals in het volgende voorbeeld.
01 tel-record. 02 onderdeel pic x(10), value spaces. 02 stelling pic 9(03), value zero. 02 aantal pic 9(04), value zero.
Een andere manier om velden een beginwaarde te geven biedt de initialize-opdracht. Deze opdracht kunnen we overal in het programma gebruiken. We kunnen variabelen die tijdens het programma een andere waarde kregen, opnieuw initialiseren.
In zijn eenvoudigste vorm plaatst de initialize-opdracht spaties in alfanumerieke velden en nullen in numerieke velden.
initialize onderdeel, stelling, aantal
Door deze opdracht bevat het veld onderdeel spaties en de velden stelling en aantal nullen.
onthoud
De initialize-opdracht werkt
alleen op elementaire velden.
Als we een groepsveld opgeven, dan worden alle benoemde elementaire velden die er deel van uitmaken gevuld.
initialize tel-record
Deze opdracht komt overeen met de initialize-opdracht van hiervoor. Beide opdrachten hebben dezelfde werking:
move space to onderdeel move zero to stelling move zero to aantal
Initialize is verboden bij een veld dat de occurs-clausule met de depending-on-optie bevat.
onthoud
Initialize vult nooit
- velden zonder naam, of met de naam filler;
- index-variabelen;
- herdefinities binnen een opgegeven groepsveld.
01 speciaal-voorbeeld. 02 alfanumeriek-veld pic x(6). 02 groepsveld redefines alfanumeriek-veld. 03 filler pic xx. 03 numeriek-veld pic 9999. 03 herdefinitie redefines numeriek-veld pic xxxx. 02 hulpindex usage is index.
Door de opdracht initialize speciaal-voorbeeld krijgt alleen het veld alfanumeriek-veld zes spaties als inhoud. Door de opdracht initialize groepsveld krijgt uitsluitend het veld numeriek-veld vier nullen als inhoud.
De opdracht initialize maakt het mogelijk alle elementen van een tabel een bepaalde waarde te geven.
01 vergaderdata. 03 jaar pic 9999. 03 datums occurs 6 times. 05 maand pic XXX. 05 dag pic 99.
Na de opdracht initialize vergaderdata is het veld jaar nul,
alle zes de velden maand zijn gevuld met spaties en alle zes de velden
dag hebben waarde nul.
Via een uitbreiding van de initialize-opdracht kunnen we andere waarden dan
spaties en nullen toekennen. Daartoe noemen we een categorie velden en de
gewenste waarde.
initialize tel-record replacing numeric data by 1 alphanumeric data by "onbekend"
Het veld tel-record dat in deze opdracht voorkomt, is aan het begin van deze paragraaf beschreven. De opdracht komt overeen met:
move "onbekend" to onderdeel move 1 to stelling move 1 to aantal
De initialize-opdracht die als voorbeeld is gegeven, bevat twee categorieën: numeric en alphanumeric.
Andere categorieën velden zijn:
Deze laatste categorie, alphabetic, komt pas in paragraaf 15.3 aan de orde.