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

Karaktermanipulatie

 

Kleine en grote letters

Bestudeer het programma OMWISSEL.rex voor een voorbeeld van een programma dat enkele karakter manipulaties doet. Het programma wisselt kleine letters om in grote en grote letters in kleine. Het laat zien hoe een viertal functies, die karakters manipuleren, werken. Het zal niet al te moeilijk zijn dit programma te begrijpen. De functies worden alle aangeroepen in de functie WisselLettersOm. Het hoofdprogramma kennen we uit eerdere voorbeelden en wordt niet verder toegelicht. /* 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 Compileer en test dit programma. Neem een willekeurig bestand als invoer.

De vier bedoelde functies zijn:

DataType(LETTER,'L') Is de letter een kleine letter?
DataType(LETTER,'U') Is de letter een grote letter?
Translate(LETTER,Xrange('a','z'),Xrange('A','Z')) Maak van de letter een kleine letter.
Translate(LETTER,Xrange('A','Z'),Xrange('a','z')) Maak van de letter een grote letter.


Klassificatie van tekens

Bestudeer het programma SOORT.rex met een voorbeeld hoe je tekens kunt tellen. We hebben tot nu toe steeds het NewLine karakter (\n) gebruikt. Er zijn echter nog meer bijzondere tekens. We zullen er een aantal tellen. /* 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 Het programma maakt gebruik van functies die het soort teken kan bepalen, met andere woorden tot welke klasse een teken behoort. De tekens worden door dit programma per regel gelezen en per regel een voor een beoordeeld. De letters, cijfers en de spaties worden geteld. Behoort een teken niet tot een van deze drie klassen dan wordt hij overgeslagen. Per regel wordt de telling afgedrukt, na de regel zelf.

De bedoelde functies zijn:

DataType(TEKEN,'M') Is het teken een letter (a-z, A-Z)
DataType(TEKEN,'W') Is het teken een cijfer (0-9)

Compileer en test dit programma.


Logische functies

Bestudeer het programma BITS.rex. In dit programma wordt op bit niveau met de gegevens gewerkt. Het is mogelijk in REXX de bits individueel te benaderen. Een bit kan dus van waarde worden veranderd, maar ook alle bits in een byte en alle bits van een integer kunnen in een keer een andere waarde krijgen.

De functies waarmee dit worden uitgevoerd zijn:

BitAnd Logische AND, als beide bits 1 zijn, is het resultaat 1
BitOr Logische OR, als een of beide bits 1 zijn, is het resultaat 1
BitXor Logische XOR, als een en slechts een van de bits 1 is, is het resultaat 1
/* 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 Het voorbeeld programma gebruikt enkele velden in combinatie met de bovengenoemde functies. De gegevens zijn in het hexadecimale formaat. Aangenomen wordt dat je vertrouwd bent met het lezen van hexadecimale getallen. Zo niet dan zul je dat eerst moeten leren, het wordt hier niet verder behandeld. Het leren omgaan met hexadecimale getallen is geen leerstof voor deze cursus en wordt bekend verondersteld.

Compileer en test dit programma.



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