In een programma komen de volgende velden voor.
01 weektabel value "zon maan dins woens dondervrij zater". 05 dagnaam pic x(6), occurs 7 times. 01 weekdag pic 9. 01 datumregel pic x(20).
Het veld met de naam weekdag bevat een getal dat de dag van de week aangeeft. Zondag is 0, maandag is 1 enz. Datumregel moet een van de woorden zondag, maandag, dinsdag enzovoort gaan bevatten, afhankelijk van de waarde van weekdag. Daartoe moeten we het woordje dag plakken achter een element uit de tabel.
onthoud
Voor het aan elkaar knopen van teksten beschikt
COBOL over
de string-opdracht.
move spaces to datumregel string dagnaam(weekdag + 1) delimited by space "dag" delimited by size into datumregel
Als weekdag de waarde 2 bevat, dan heeft datumregel na afloop van de string-opdracht de waarde woensdag. Kijk allereerst naar de laatste regel van het voorbeeld. Het veld na into is het resultaatveld. Het resultaatveld is hier datumregel. De string-opdracht plaatst tekens in dat veld. In dit voorbeeld komen de tekens aan het begin van het resultaatveld. De rest van het veld blijft onveranderd. Het is niet de bedoeling dat er nog oude tekst blijft staan. Daarom vullen we, voorafgaand aan de string-opdracht, het veld met spaties.
In de string-opdracht noemen we de onderdelen die we willen samenknopen. Dat zijn hier een variabele (een element uit de weektabel) en een constante (het woordje dag). Bij elk onderdeel vertellen we wanneer de computer moet stoppen met het overbrengen van tekens. Bij de dagnaam moet een spatie niet meedoen. De over te brengen tekens worden dus begrensd door (Engels: delimited by) een spatie. De constante moet in zijn geheel naar datumregel en dat geven we aan met delimited by size: het aantal over te brengen tekens wordt bepaald door de 'maat', de afmeting er van.
illustratie: Geert Nijmolen
Dagnaam(5) bevat de tekst donder. Er volgt geen spatie na. Toch kunnen we de string-opdracht gebruiken met delimited by space. De computer stopt namelijk met het overbrengen van tekens als hij de scheiding tegenkomt of als er geen tekens meer over zijn. Door die regel zouden we zelfs achter de constante "dag" delimited by space kunnen schrijven. Er is immers geen spatie en dus neemt de computer dan alle tekens.
move spaces to datumregel string dagnaam(weekdag + 1) delimited by space "dag" delimited by space into datumregel
Dit is echter minder duidelijk dan de vorige string-opdracht. Maar het gaat er om even te laten zien dat het scheidingsteken dat we opgeven niet per se aanwezig hoeft te zijn.