# Programmeren in COBOL/Bewerkingen/Werken met tekst

In dit hoofdstuk worden de verschillende manieren uitgelegd om te werken met tekst.

## ALPHABETIC

Via ALPHABETIC kun je controleren of de inhoud van een veld alleen maar hoofdletters, kleine letters en spaties bevat. Je kunt dit in een programma als beveiliging inbouwen, zodat de gebruiker geen verkeerde informatie geeft. Als je bijvoorbeeld een naam vraagt, kun je controleren dat het geen getal is of rare tekens bevat.
COBOL-code: ALPHABETIC
Naast ALPHABETIC bestaat er ook nog ALPHABETIC-LOWER en ALPHABETIC-UPPER. ALPHABETIC-LOWER controleert of alles in kleine letters staat en UPPER controleert of alles in hoofdletters staat.

## Tekens vervangen

Tekens vervangen gaat via het INSPECT-statement maar er zijn twee manieren om dat statement te gebruiken. Via REPLACING en CONVERTING, zowel bij numerieke als bij alfanumerieke velden.

### REPLACING

REPLACING maakt het mogelijk om in een veld een teken te veranderen door een ander teken of een stukje tekst door een ander stukje tekst.
COBOL-code: Tekst vervangen
ALL betekent in dit geval dat alle p’s worden vervangen door m’s. Naast ALL, kan je ook FIRST en LEADING gebruiken. FIRST betekent dat alleen de eerste vervangen wordt, en LEADING vervangt alleen als het helemaal vooraan staat. Je kunt slechts één veld tegelijkertijd gebruiken. Wat je vervangt en waarmee je het vervangt, moeten een gelijke tekenlengte hebben. 2 tekens moeten altijd vervangen worden door 2 tekens. Ook is het mogelijk om andere velden en constanten te gebruiken, zoals REPLACING ALL tekst BY andertekst of REPLACING ALL ZERO BY quote.

### CONVERTING

Een stuk tekst omzetten naar allemaal hoofdletters, kan met op verschillende manieren. Het kan omslachtig met REPLACING: REPLACING ALL "a" by "A", REPLACING ALL "b" by "B" enzovoort. Efficiënter gaat het met het INSPECT-statement in combinatie met CONVERTING.
COBOL-code: Tekst vervangen
Wanneer je CONVERTING gebruikt, kijkt COBOL eerst naar het veld dat je wilt omzetten. Hij kijkt naar het eerst teken, in dit geval de letter t, en zoekt die vervolgens in het veld kleineletters. Als COBOL de letter heeft gevonden, onthoudt die de positie van die letter, in dit geval positie 20. Dan kijkt het naar hoofdletters en zoekt wat er op positie 20 staat, dus hoofdletter T. Dit proces wordt herhaald tot alle letters vervangen werden. Voor de rest gelden dezelfde regels als bij REPLACING.
Dit algoritme kan gebruikt worden om een tekst op eenvoudige manier te versleutelen met een geheime code.
COBOL-code: Caesarcijfer-rotatie3

## Tekst opslitsen met UNSTRING

    Zie ook UNSTRING voor meer informatie.
Via UNSTRING kun je een alfanumeriek veld met tekst opsplitsen in kleinere velden.
COBOL-code: UNSTRING
Dit programma leest een datum in volgens ddmmjjjj, wat betekent dat een datum als 21 april 2007 moet worden geschreven als 21042007. Uiteindelijk wordt de datum verdeeld over de velden dag, maand en jaar. Na UNSTRING moet het veld komen dat je wilt opsplitsen. Na INTO moeten dan de velden komen waar de opgesplitste tekst moet komen. Het aantal velden mag minder of meer zijn dan het aantal stukjes tekst dat ontstaat door de UNSTRING.
Mensen schrijven hun datums niet zoals 21042007 maar eerder als 21-04-2007. UNSTRING maakt het mogelijk om een tekst op te splitsen op basis van een bepaald teken in dit geval moet dat "-" zijn. Dit gebeurd als volgt.
COBOL-code: UNSTRING
DELIMITED geeft dus aan op basis van welk teken de tekst moet worden opgesplitst.