Weblessen.nl - Voor iedereen die wat wil leren..


REXX

Index
REXX Index
Voorwoord
De eerste stap
Een inleiding tot REXX
Programma besturing
Toekennen en Logisch vergelijken
Functies en Variabelen
Strings en Tabellen
Parsing
Standaard Invoer / Uitvoer
Bestands Invoer / Uitvoer
Structuren
Karaktermanipulatie

Appendix
Naamgeving
Voorbeeldprogramma's
Totaal programma
Scherm-/bestandsbeschrijvingen Een FTP client voor Windows95/98

Strings en Tabellen

Een beschrijving van de string

Een string is een groepje karakters uit de tekenset van de computer, meestal letters, cijfers en leestekens.
Om computeruitvoer zinvol te kunnen presenteren aan gebruikers, moeten de interne gegevens vertaald worden naar teksten.
Als programmeur wil je op niet al te omslachtige wijze met teksten en de opmaak daarvan kunnen werken.
Eigenlijk werk je al vanaf het eerste begin met teksten. Het Hello World programma uit Hoofdstuk 1, "De eerste stap" bevat de string "Hello, world...".

Functies die met strings werken, zullen alle teken voor teken uit de string behandelen tot het einde van de string. Dit kunnen functies zijn voor bijvoorbeeld vergelijken, afdrukken of kopiëren.

Een tabel is een aaneengesloten stuk met gegevens die alle van hetzelfde type zijn. Dit type kan een complex type zijn, zoals we zullen zien als we de structuren gaan behandelen. Een string is dus een bijzonder geval van een tabel, een tabel van karakters.

De beste manier om dit te begrijpen is door middel van voorbeelden. Bestudeer daarom eens programma CHARSTR.rex. Er wordt gebruik gemaakt van de variabele TITEL als Stringtabel van karakters.

/* REXX */ TITEL = 'Yahtzee' Say 'De naam van het spel is "'TITEL'"' Say 'Een letter uit de naam is "'Substr(TITEL,3,1)'"' Say 'Een deel van de naam is "'Substr(TITEL,4)'"' Exit 0

In de programmeertaal REXX is het eerste element van een tabel het element met subscript 1, het tweede element heeft subscript 2 en zo verder. Het laatste element heeft als subscript het aantal elementen van de tabel, in dit geval dus 7. De Stringtabel heeft dus 7 elementen.


Toepassing van strings

De variabele TITEL is dus een string met een grootte van 7 karakters. Er worden de zeven letters van het woord Yahtzee in de string geplaatst. De string kan worden afgedrukt, tezamen met wat andere tekst middels Say.

De tweede Say laat zien dat het mogelijk is om met behulp van de Substr functie en de referentie naar het specifieke element een enkel teken uit een string af te drukken. De laatste Say laat zien hoe je een deel van een string kunt afdrukken. Dit doe je door het element, waar het afdrukken moet beginnen, te benoemen middels zijn index.

Het voorbeeld zou je het idee kunnen geven dat omgaan met strings in REXX nogal omslachtig is, omdat je strings teken voor teken moet behandelen. Niets is minder waar, zoals we in het volgende programma zullen zien.

Compileer en test nu eerst dit programma.


String functies

Bestudeer het programma STRINGS.rex om te zien hoe in REXX met strings kan worden omgegaan. Eerst worden twee string gedeclareerd, waarmee kan worden gewerkt. /* REXX */ SPEL1 = 'E N E N' SPEL2 = 'T W E E E N' Say 'De naam van het eerste spel is: "'SPEL1'"' Say 'De naam van het tweede spel is: "'SPEL2'"' If (SPEL1 > SPEL2) Then Say 'Bij vergelijking van de namen is de grootste: "'SPEL1'"' Else Say 'Bij vergelijking van de namen is de grootste: "'SPEL2'"' SPEL1 = 'THREE ' SPEL1 = SPEL1||'OF A ' SPEL1 = SPEL1||'KIND' Say 'De naam van een spel is: "'SPEL1'"' Exit 0 In de voorbeelden wordt E N E N toegekend aan SPEL1 en T W E E E N aan SPEL2. Beide teksten worden afgedrukt.

We kunnen strings ook met elkaar vergelijken. De derde Say laat dit zien. Een T is groter dan een E dus zal T W E E E N worden afgedrukt.
Denk eraan dat grote en kleine letters verschil maken. Een a is groter dan een Z!

De laatste vier statements laten zien hoe in REXX een string uit delen kan worden opgebouwd. De bibliotheek bevat daartoe de || functie, de string concatenation. Deze functie plakt als het ware de ene string achter de andere. In het voorbeeld wordt SPEL1 als volgt opgebouwd: De tekst THREE wordt gekopieerd en staat dus vooraan. Vervolgens wordt de tekst OF A er aan vast geplakt. Tenslotte wordt de tekst KIND er aan vast geplakt. Het resultaat, THREE OF A KIND wordt afgedrukt.

Strings zijn niet moeilijk toe te passen en bijzonder handig. Besteed wat tijd om er mee vertrouwd te raken. Compileer en test dan dit programma en verklaar voor jezelf de resultaten.


Numerieke tabellen

Bestudeer het programma TABELINT.rex. Het bevat een voorbeeld van een tabel van integers. Merk op dat de tabel gedeclareerd wordt door de naam van de tabel en de elementen te scheiden door een punt. /* REXX */ Do i=1 To 12 WAARDE.i = 3 * i + 5 End Do i=1 To 12 Say 'De waarde van element 'Right(i,2)' is 'Right(WAARDE.i,2) End Exit 0 We hebben hier 12 integer variabelen om mee te werken. De namen van de variabelen zijn WAARDE.1, WAARDE.2 enzovoort tot en met WAARDE.12. Binnen een for lus krijgt ieder van deze variabelen een fantasie waarde. Een tweede iteratie drukt de toegekende waarden af ter controle. Als je al het vorige begrepen hebt, zal dit programma geen probleem voor je zijn. Compileer en test het nu.

Evenzo kun je tabellen declareren met floating point variabelen. Bestudeer het programma TABEL.rex voor een voorbeeld.

/* REXX */ TITEL = 'Yahtzee - pc3270' Do i=1 To 12 PUNTEN.i = i * 30 ZOMAAR.i = 12.345 * (i + 23) End Say TITEL Do i=1 To 12 Say 'Spel 'Right(i,2)': 'Right(PUNTEN.i,4)' ('ZOMAAR.i')' End Exit 0 Verder bevat het programma geen nieuwe zaken. Ook hier krijgen de variabelen fantasie waarden en wordt alles ter controle afgedrukt. Compileer en test dit programma.

Meerdimensionale tabellen

Bestudeer nu het programma VAKJES.rex waarin opgenomen een tweedimensionale tabel. Deze tabel wordt ook gebruikt in het totaal programma YAHTZEE.rex. /* REXX */ Do K=1 To 3 /* Vul de tabel */ Do S=1 To 13 VAKJE.K.S = K * 100 + S End End VAKJE.2.6 = -1; /* verander een specifieke */ VAKJE.2.2 = VAKJE.2.6 /* kopieeer een vakje */ Do S=1 To 13 /* Druk de tabel af */ Call CharOut,'Spel 'Right(S,2)':' Do K=1 To 3 Call CharOut,Right(VAKJE.K.S,8) End Say End Exit 0 De variabele VAKJES is een tweedimensionale tabel, bestaande uit 3 kolommen van elk 13 spelen (integers), in totaal dus 39 integers. Het eerste element is VAKJE.1.1, het laatste is VAKJE.3.13. De tabel wordt gevuld met getallen, kolom 1 met honderdtallen, kolom 2 met tweehonderdtallen en kolom3 met driehonderdtallen. Twee willekeurige elementen krijgen nog een bijzondere waarde, om te laten zien hoe een individueel element kan worden aangewezen.

De tabel wordt in zijn geheel afgedrukt. In dit programma is er voor gekozen het subscript en de plaats die een vakje op het scherm inneemt 1:1 te houden.



Webdesign

Maak van Weblessen.nl uw startpagina!
Plaats Weblessen.nl bij uw favorieten. Neem contact met me op.
Heb je een Hosting?
Geef hier jouw mening over jouw web hosting

Webadres.info: Goede domeinnaam kiezen

Gesponsorde links:
Budget Webhosting
Web2host.nl
10eurohost.nl
Denit Hosting Solutions
YourHosting.nl
Starthosting.nl
Eduvision.nl
Educruitment.nl
Webadres.info


De link top 5:
Gratis Computercursussen
WebmasterStartpagina
MijnStartpagina.nu
Bluebird Animatie
Anouksweb
Link aanmelden
Alle Partners

Webmasterwoordenboek
A | B | C | D | E | F
G
| H | I | J | K | L | M
N
| O | P | Q | R | S | T
U | V | W | X | Y | Z

Films vanavond op Tv:

De klok:

(advertentie)

HTML leren
PHP cursus
XML lessen
XHTML les
CSS leer
leer C
REXX online
Red Hat Linux cursus