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

Voorbeeldprogramma's

BITS.rex

/* REXX */ NUMMER.1 = '00'x NUMMER.2 = '11'x NUMMER.3 = '22'x NUMMER.4 = '44'x NUMMER.5 = '88'x NUMMER.6 = 'FF'x Say ' Num Msk And Or Xor' Say ' --- --- --- --- ---' MASKER = '0F'x Do INDEX=1 To 6 AND = BitAnd(MASKER,NUMMER.INDEX) OR = BitOr(MASKER,NUMMER.INDEX) XOR = BitXor(MASKER,NUMMER.INDEX) Say ' 'C2X(NUMMER.INDEX)' 'C2X(MASKER), ' 'C2X(AND)' 'C2X(OR)' 'C2X(XOR) End /* Do */ Say MASKER = '22'x Do INDEX=1 To 6 AND = BitAnd(MASKER,NUMMER.INDEX) OR = BitOr(MASKER,NUMMER.INDEX) XOR = BitXor(MASKER,NUMMER.INDEX) Say ' 'C2X(NUMMER.INDEX)' 'C2X(MASKER), ' 'C2X(AND)' 'C2X(OR)' 'C2X(XOR) End /* Do */ Exit 0

BREAKCON.rex

/* REXX */ Do XX=1 To 14 If (XX = 10) Then Leave Say 'In het "LEAVE" deel; XX heeft de waarde 'XX End Do XX=1 To 14 If (XX = 10) Then Iterate Say 'In het "ITERATE" deel; XX heeft de waarde 'XX End Exit 0

CHARSTR.rex

/* 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

DATATYPS.rex

/* REXX */ Say DataType('azAZ09','A') Say DataType('01','B') Say DataType('az','L') Say DataType('azAZ','M') Say DataType('123.45','N') Say DataType('AZ','U') Say DataType('12345','W') Say DataType('1234567890ABCDEF','X') Exit 0

DOUNTIL.rex

/* REXX */ PUNTEN = 0 Do Until (PUNTEN > 60) Say 'Het totaal aantal punten is 'PUNTEN PUNTEN = PUNTEN + 10 End Exit 0

DRUKAF.rex

/* REXX */ Say 'Dit is een regel tekst.' Say 'En dit is nog een regel tekst.' Say 'Dit is de laatste regel tekst.' Exit 0

FORLOOP.rex

/* REXX */ Do INDEX=1 To 5 WORP.INDEX = '.' End Exit 0

GETALIN.rex

/* REXX */ Say Say 'Tik een getal in (100 stopt het programma):' Do Until (GETAL = 100) Pull GETAL . /* Lees een getal in */ Say 'Het getal is 'GETAL /* en druk hem af ... */ End Say Say 'Einde programma.' Exit 0

HELLO.rex

/* REXX */ main: Say 'Hello, world ...'; Exit 0

IFELSE.rex

/* REXX */ SCORE = 100 PERSREC = 200 If (SCORE > PERSREC) Then Say 'Je hebt je persoonlijk record verbeterd !!!' If (SCORE > PERSREC) Then Say 'Score: *** 'Right(SCORE,4,0)' ***' Else Say 'Score: 'Right(SCORE,4,0)' ' Exit 0

INVUITV.rex

/* REXX */ Call RxFuncAdd 'SysGetKey', 'RexxUtil', 'SysGetKey' Say Say 'Tik een letter in (X stopt het programma):' Do Until (KEY = 'x' | KEY = 'X') KEY = SysGetKey('NOECHO') Call CharOut,KEY End Call RxFuncDrop 'SysGetKey' Say Say 'Einde programma.' Exit 0

KWADRAAT.rex

/* REXX */ Do INDEX=1 To 7 KWADRAAT = Kwadr(INDEX) /* Kwadraat funtie */ Say 'Het kwadraat van 'INDEX' is 'KWADRAAT End Say Do INDEX=1 To 7 Say 'Het kwadraat van 'INDEX' is 'Kwadr(INDEX) End Exit 0 Kwadr: Arg INVOER Return (INVOER * INVOER)

KWADRFLT.rex

/* REXX */ Do INDEX=3 To 9 Say 'Het kwadraat van 'INDEX+0.5' is 'Kwadr(INDEX+0.5) End Exit 0 Kwadr: Arg INVOER Return (INVOER * INVOER)

KWADRSOM.rex

/* REXX */ Call Kop /* Roep Kop aan */ Do INDEX=1 To 7 Call Kwadr INDEX /* Kwadraat funtie */ End Call Voet /* Roep Voet aan */ Exit 0 Kop: /* Dit is de 'Kop' funtie */ SOM = 0 /* Initialisatie */ Say 'Getallen kwadrateren en optellen...' Say Return 0 Kwadr: Arg INVOER KWADRAAT = INVOER * INVOER SOM = SOM + KWADRAAT Say 'Het kwadraat van 'INVOER' is 'KWADRAAT Return 0 Voet: /* Dit is de 'Voet' functie */ Say Say 'De som der kwadraten is 'SOM Return 0

LEESCHAR.rex

/* REXX */ PF = 'CURSUS.DAT' /* bestandsnaam */ Do ForEver CHAR = CharIn(PF,,1) If (CHAR == '') /* einde bestand */ Then Leave Call CharOut,CHAR End Exit 0

LEESLIJN.rex

/* REXX */ PF = 'CURSUS.DAT' /* bestandsnaam */ Do While Lines(PF) REGEL = LineIn(PF) Say REGEL End Exit 0

LEESTEXT.rex

/* REXX */ PF = 'CURSUS.DAT' /* bestandsnaam */ Do ForEver REGEL = LineIn(PF) If (REGEL == '') /* einde bestand */ Then Leave Do While (REGEL <> '') Parse Var REGEL WOORD REGEL Say WOORD End End Exit 0

NUMMERS.rex

/* REXX */ main: GETAL = 13 Say 'De waarde van het getal is 'GETAL GETAL = 27 Say 'De waarde van het getal is 'GETAL GETAL = 10 Say 'De waarde van het getal is 'GETAL Exit 0

OMWISSEL.rex

/* REXX */ Say 'Tik de naam van een bestand in:' Pull BESTNAAM Do While Lines(BESTNAAM) REGEL = LineIn(BESTNAAM) Call WisselLettersOm Say REGEL End Exit 0 WisselLettersOm: SAVEREG = REGEL REGEL = '' Do While (SAVEREG <> '') Parse Var SAVEREG 1 LETTER 2 SAVEREG Select When DataType(LETTER,'U') Then LETTER = Translate(LETTER,Xrange('a','z'),Xrange('A','Z')) When DataType(LETTER,'L') Then LETTER = Translate(LETTER,Xrange('A','Z'),Xrange('a','z')) Otherwise Nop End REGEL = REGEL||LETTER End Return 0

PARSE1.rex

/* REXX */ REGEL = '39 1 2 999 3 4 5' Parse Var REGEL SPELTEL . . PERSREC . Say 'Regel : 'REGEL Say 'Speltel: 'SPELTEL Say 'PersRec: 'PERSREC Parse Value '28 1 2 888 3 4 5' With SPELTEL . . PERSREC . Say 'Waarde : 28 1 2 888 3 4 5' Say 'Speltel: 'SPELTEL Say 'PersRec: 'PERSREC Exit 0

PARSE2.rex

/* REXX */ REGEL = 'Een Twee Drie Vier Vijf Zes Zeven Acht' Parse Var REGEL LINKS 'Drie ' MIDDEN 'Zes ' RECHTS Say 'Links : 'LINKS Say 'Midden: 'MIDDEN Say 'Rechts: 'RECHTS Do While (REGEL <> '') Parse Var REGEL WOORD REGEL Say 'Woord : 'WOORD End Exit 0

PVK.rex

/* REXX */ Say 'PAARDEN VARKENS KIPPEN BEDRAG ' Say '------- ------- ------- ------- ' /* Ga uit van het duurste beest, het paard ... */ Do PAARD=1 While(PAARD <= (100.00 / 15.00)) SUBTOT = PAARD * 15.00 /* Varieer dan met het aantal mogelijke varkens ... */ Do VARKEN=1 While (VARKEN <= ((100.00 - subtot) / 1.00)) KIP = 100 - PAARD - VARKEN /* Wat is nu het totaal bedrag aan beesten ... */ BEDRAG = SUBTOT + VARKEN * 1.00 + KIP * 0.25 /* Indien buiten de grenswaarden, dan het volgende varken ... */ If ((100.00 - 0.50) > BEDRAG | BEDRAG > (100.00 + 0.50)) Then Iterate /* Indien tussen de grenswaarden, druk dan af ... */ Call CharOut,Right(PAARD,6)Right(VARKEN,9)Right(KIP,9)Format(BEDRAG,7,2) /* BINGO !!! */ If (BEDRAG = 100.00) Then Call CharOut,' <====' Say End /* Do */ End /* Do */ Exit 0

RECURSIE.rex

/* REXX */ Call TelAf 8 Exit 0 TelAf: Procedure Arg TELLER Say 'De waarde van de teller is 'TELLER If (TELLER &gt; 0) Then Call TelAf TELLER-1 Say 'De teller is nu 'TELLER Return 0

SCHRCHAR.rex

/* REXX */ REGEL = 'Tripple Yahtzee - pc3270' /* initialiseer */ PF = 'CURSUS.DAT' /* bestandsnaam */ Do 10 Do i=1 To Length(REGEL) CHAR = Substr(REGEL,i,1) Call CharOut PF,CHAR End Call LineOut PF,'' End Exit 0

SCHRLIJN.rex

/* REXX */ DS1 = 2; DS2 = 3; DS3 = 4; DS4 = 5; DS5 = 6 /* initialiseer */ PF = 'CURSUS.DAT' /* bestandsnaam */ Do INDEX=1 To 10 Call LineOut PF,'Regel nummer 'Right(INDEX,2,0)':', DS1' 'DS2' 'DS3' 'DS4' 'DS5 End Exit 0

SCOPE.rex

/* REXX */ INDEX = 11 Call Head1 Call Head2 Call Head3 Say 'De waarde van INDEX in "main" is 'INDEX Exit 0 Head1: Procedure INDEX = 23 Say 'De waarde van INDEX in "Head1" is 'INDEX Return 0 Head2: TELLING = 53 Say 'De waarde van TELLING in "Head2" is 'TELLING TELLER = 77 Return 0 Head3: Say 'De waarde van TELLER in "Head3" is 'TELLER Return 0

SELECT.rex

/* REXX */ Select When (OPDRACHT = 1) Then Say 'Verwerk "vooruit bladeren" opdracht ...' When (OPDRACHT = 2) Then Say 'Verwerk "achteruit bladeren" opdracht ...' When (OPDRACHT = 3 | OPDRACHT = 4 | OPDRACHT = 9) Then Say 'Stop de verwerking.' Otherwise Say 'Dit is een onbekende opdracht !!!' End Exit 0

SOORT.rex

/* REXX */ Say 'Tik de naam van een bestand in:' Pull BESTNAAM Do REGELTELLER=1 While Lines(BESTNAAM) REGEL = LineIn(BESTNAAM) Call TelSoorten End Exit 0 TelSoorten: LETTERS = 0 CIJFERS = 0 SPATIES = 0 Do While (REGEL <> '') Parse Var REGEL 1 TEKEN 2 REGEL Select When DataType(TEKEN,'M') Then LETTERS = LETTERS + 1 When DataType(TEKEN,'W') Then CIJFERS = CIJFERS + 1 When TEKEN = ' ' Then SPATIES = SPATIES + 1 Otherwise Nop End End Say ' # 'Right(REGELTELLER,4,'0')' ---', ' Lt:'Right(LETTERS,3), ' Cf:'Right(CIJFERS,3), ' Sp:'Right(SPATIES,3)' ---' Return 0

STRINGS.rex

/* 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

STRUCT1.rex

/* REXX */ ROW = 1 /* definitie structuur element */ COLUMN = 2 LENGTH = 3 VELD.1.ROW = 6 VELD.1.COLUMN = 12 VELD.1.LENGTH = 20 VELD.2.LENGTH = 32 VELD.2.COLUMN = 12 VELD.2.ROW = VELD.1.ROW + 2 Say 'VELD 1 staat op rij 'VELD.1.ROW', kolom 'VELD.1.COLUMN, 'en is 'VELD.1.LENGTH' tekens lang' Say 'VELD 2 staat op rij 'VELD.2.ROW', kolom 'VELD.2.COLUMN, 'en is 'VELD.2.LENGTH' tekens lang' Exit 0

STRUCT2.rex

/* REXX */ ROW = 1 /* definitie structuur element */ COLUMN = 2 LENGTH = 3 Do i=1 To 8 VELD.i.ROW = i + 4 VELD.i.COLUMN = 12 VELD.i.LENGTH = 20 End Do i=1 To 8 Say 'VELD 'i': ', 'rij 'Right(VELD.i.ROW,2)', ', 'kolom 'Right(VELD.i.COLUMN,2)', ', 'lengte 'Right(VELD.i.LENGTH,2) End Exit 0

TABEL.rex

/* 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

TABELINT.rex

/* 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

TEKSTIN.rex

/* REXX */ Say Say 'Tik een tekst in, niet meer dan 80 tekens.' Say 'Als de eerste letter een X is, stopt het programma.' Do Until (Left(TEKST,1) = 'x' | Left(TEKST,1) = 'X') Pull TEKST /* Lees een tekst in */ Say 'De tekst is "'TEKST'"' /* en druk hem af ... */ End Say Say 'Einde programma.' Exit 0

TERUG.rex

/* REXX */ REGEL = 'Dit is een string.' Call HeenWeer 1 Say Exit 0 HeenWeer: Procedure Expose REGEL Arg INDEX LETTER = Substr(REGEL,INDEX,1) Call CharOut,LETTER If (LETTER <> '.') Then Call HeenWeer INDEX+1 Else Say Call CharOut,LETTER Return 0

TKANDER.rex

/* REXX */ a = -27 /* initialisatie */ b = 9.7531 c = 'Jan' d = 'A' v = a /* v wordt integer -27 */ v = b /* v wordt float 9.7531 */ v = c /* v wordt string Jan */ v = d /* v wordt karakter A */ Exit 0

TOEKENN.rex

/* REXX */ a = 12 /* initialisatie */ b = 3 c = a + b /* 1 */ c = a - b /* 1 */ c = a * b /* 1 */ c = a / b /* 1 */ c = a % b /* 1 */ c = 12 * a + b / 2 - a * b * 2 / (a * c + b * 2) /* 2 */ c = c / 4 + 13 * (a + b) / 3 - a * b + 2 * a * a /* 2 */ a = a + 1 /* 3 */ b = b * 5 /* 3 */ Exit 0

VAKJES.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

VERGELYK.rex

/* REXX */ x = 11; y = 11; z = 11 a = ' '; b = ' '; c = ' ' r = 12.987; s = 12.987; t = 12.987 /* Eerste groep */ If (x = y) Then z = -13 /* z wordt -13 */ If (x > z) Then a = 'A' /* a wordt 'A' */ If \(x > z) Then a = 'B' /* er verandert niets */ If (b <= c) Then r = 0.0 /* r wordt 0.0 */ If (r <> s) Then t = z / 2 /* t wordt -6.5 */ /* Tweede groep */ x = 77; y = 77; z = 77 /* initialisatie */ If ((x = y) & (x = 77)) Then z = 33 /* z wordt 33 */ If ((x > y) | (z > 12)) Then z = 22 /* z wordt 22 */ /* Tweede groep */ x = 77; y = 77; z = 77 /* initialisatie */ If ((x = y) & (x = 77)) Then z = 33 /* z wordt 33 */ If ((x > y) | (z > 12)) Then z = 22 /* z wordt 22 */ /* Derde groep */ If (x = x) Then z = 27.345 /* z veranderd altijd ! */ If (1) Then z = 27.345 /* TRUE, z veranderd altijd ! */ If (x <> x) Then z = 27.345 /* z veranderd niet */ If (0) Then z = 27.345 /* FALSE, z veranderd niet */ Exit 0

WHILE.rex

/* REXX */ PUNTEN = 0 Do While (PUNTEN < 60) Say 'Het totaal aantal punten is 'PUNTEN PUNTEN = PUNTEN + 10 End Exit 0

ZEGTYD.rex

/* REXX */ W = 'twaalf een twee drie vier vijf zes zeven', 'acht negen tien elf twaalf dertien veertien' Parse Value Time() With HH ':' MM ':' . HH = HH + 1 Call CharOut,'Het is ' Select When (MM < 1) Then Call CharOut,'precies 'Word(W,HH//12)' uur' When (MM < 2) Then Call CharOut,'een minuut over 'Word(W,HH//12) When (MM < 15) Then Call CharOut,Word(W,MM+1)' minuten over 'Word(W,HH//12) When (MM < 16) Then Call CharOut,'kwart over 'Word(W,HH//12) When (MM < 29) Then Call CharOut,Word(W,31-MM)' minuten voor half 'Word(W,HH//12+1) When (MM < 30) Then Call CharOut,'een minuut voor half 'Word(W,HH//12+1) When (MM < 31) Then Call CharOut,'half 'Word(W,HH//12+1) When (MM < 32) Then Call CharOut,'een minuut over half 'Word(W,HH//12+1) When (MM < 45) Then Call CharOut,Word(W,MM-29)' minuten over half 'Word(W,HH//12+1) When (MM < 46) Then Call CharOut,'kwart voor 'Word(W,HH//12+1) When (MM < 59) Then Call CharOut,Word(W,61-MM)' minuten voor 'Word(W,HH//12+1) Otherwise Call CharOut,'een minuut voor 'Word(W,HH//12+1) End Say '...' Exit 0


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