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

Bestands Invoer/Uitvoer

Een bestand aanmaken

Bestudeer het programma SCHRLIJN.rex voor een eerste kennismaking met het schrijven van gegevens naar een bestand. Zoals gebruikelijk worden enkele variabelen gedeclareerd. /* 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 Voordat we in een bestand kunnen schrijven , moeten we het openen. Concreet betekent dit dat we het systeem moeten vertellen dat we naar een bestand willen schrijven en wat de naam van dat bestand is. We doen dit met behulp van de LineOut functie, zoals je in het voorbeeld programma kunt zien. In dit geval zal PF de bestandsnaam 'CURSUS.DAT' bevatten. De bestandsnaam moet een geldige MS-DOS/Windows95 naam zijn en kan zowel in kleine- als in hoofdletters worden opgegeven. De bestandsnaam wordt als string aan de functie aangeboden. Een waarschuwing is hier op zijn plaats. Neem voor de bestandsnaam niet per ongeluk de naam van een waardevol bestand. Het programma zal, zonder pardon, dit bestand beschrijven, zodat de inhoud verloren gaat.

Het bestand wordt door REXX altijd geopend voor toevoegen. Dit betekent dat het zal worden aangemaakt als het niet reeds op schijf aanwezig is. Is het een bestaand bestand dan zullen de gegevens achteraan bijgeschreven worden. Bestaande gegevens gaan dus niet verloren.

Uitvoer naar een bestand lijkt erg veel op standaard uitvoer. Het verschil zit in de toegepaste functies en het gebruik van de bestands naam. In het voorbeeld programma heeft LineOut de plaats ingenomen van de vertrouwde Say functie. De bestands naam is de eerste parameter, de andere parameters zijn volkomen gelijk aan die van Say.

Een bestand moet na gebruik ook weer worden afgesloten. Dit wordt impliciet door de REXX interpreter gedaan bij afsluiting van het programma. Wanneer tussentijds sluiten van het bestand nodig is, bijvoorbeeld om te lezen na schrijven, dan moet het bestand expliciet worden gesloten. Dit kan met de REXX Stream functie, en wel als volgt:

Call Stream PF,'C','Close' /* PF = 'CURSUS.DAT' */ Call Stream 'CURSUS.DAT','C','Close'

Je kunt een bestand openen voor schrijven, sluiten, wederom openen voor lezen, sluiten, openen voor toevoegen, enz. enz. Telkens kun je dezelfde bestands naam gebruiken of een andere. De naam van het bestand bepaald naar welk bestand uiteindelijk wordt geschreven.

Compileer en test dit programma. Het programma drukt niets af. Kijk na afloop echter in het bestand CURSUS.DAT via de editor of middels het MS-DOS type commando. Kijk of inhoud en programma specificatie met elkaar overeen stemmen.


Een bestand uitbreiden

Het is ook mogelijk teken voor teken naar een bestand te schrijven. Bestudeer programma SCHRCHAR.rex voor een voorbeeld. /* 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 Het programma begint met de declaratie van een lus variabele, een index naar een character en een string met characters, die initieel gevuld is met een tekst. Ook de naam van een bestand is nu niet vreemd meer. Het bestand wordt vervolgens geopend voor toevoegen. Dit is hetzelfde bestand van het vorige hoofdstuk, waardoor we in staat zijn te controleren of het werkt.

Het programma bevat twee iteraties binnen elkaar. De buitenste lus wordt 10 keer doorlopen om enkele regels uitvoer te genereren. De binnenste lus wordt doorlopen totdat het teken uit de tekst string het laatste karakter is. De index i wijst het uit te voeren teken aan en wijst telkens aan het begin van de iteratie naar het eerste teken van de tekst string.

Interessant is nu de CharOut functie. Deze functie schrijft hier telkens 1 teken naar het bestand. Het teken is de tweede parameter. De eerste parameter is de naam van het bestand waarin moet worden geschreven.

Als alle tekens uit de tekst string weg zijn geschreven, wordt nog een NewLine karakter toegevoegd, omdat deze niet in de tekst zelf stond. Op deze wijze worden er 10 regels aan het bestand CURSUS.DAT toegevoegd en het bestand wordt afgesloten. Compileer en test dit programma en kijk of de regels inderdaad aan het einde van het bestand zijn toegevoegd. Voer het programma nogmaals uit en kijk wat er gebeurt.


Een bestand lezen

We gaan nu leren hoe een bestand kan worden gelezen. Bestudeer daartoe nu het programma 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 Er wordt een iteratie gestart. Teken voor teken wordt gelezen en afgedrukt tot einde bestand (EOF). Het bestand wordt dan afgesloten en het programma stopt. De CharIn functie levert bij EOF een lege waarde af. Omdat in REXX '' en ' ' gelijk zijn aan elkaar, wordt nu vergelegen middels exact match om EOF te kunnen constateren.

Compileer en test dit programma.


Woorden lezen uit een bestand

Bestudeer nu het programma LEESTEXT.rex waarin wordt uitgelegd hoe een bestand woord voor woord te lezen. /* 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 Dit programma gebruikt de LineIn functie om een regel te lezen. Omdat LineIn het lezen stopt bij het vinden van een NewLine karakter, zal per regel een aantal woorden worden gelezen. Elk gelezen woord wordt op een nieuwe regel afgedrukt. Compileer en test het programma.

Regels lezen uit een bestand

Bestudeer nu het programma LEESLIJN.rex, waarin wordt uitgelegd hoe een complete regel (ook wel record genoemd) uit een bestand kan worden gelezen. Dit programma lijkt als twee druppels water op het LEESTEXT.rex programma, echter nu wordt gewerkt met de Lines functie om op EOF te testen. /* REXX */ PF = 'CURSUS.DAT' /* bestandsnaam */ Do While Lines(PF) REGEL = LineIn(PF) Say REGEL End Exit 0 De LineIn functie leest regel voor regel uit een bestand, inclusief het NewLine karakter. Het resultaat komt in de variabele REGEL terecht. De parameter is de naam van het te lezen bestand. Bij het lezen van EOF, wordt FALSE terug gegeven door de Lines functie. In het voorbeeld programma wordt direct op deze FALSE waarde getest.

Door de constructie met de While wordt de test vooraf gedaan en werkt het programma verder correct. Bij het bereiken van EOF wordt het bestand gesloten en stopt het programma. Compileer en test ook 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