Programmeren in REXX/Voorbeeld 2: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
Toevoeging outputvoorbeeld |
Verbeteringen tekst - navigatiesjabloon |
||
Regel 1:
{{Programmeren in REXX}}
We bestuderen nu een tweede uitgewerkt
{{Code| | Taal= REXX | Titel= XtoX.rex | Code= <pre>
1 | /*****************************************************************
Regel 56:
*'''18''': halen we de hexadecimale karakters eruit...
*'''19''': we gaan na of de karakters geldige hexadecimale karakters zijn, en...
*'''20''': tonen foutbericht en stoppen de procedure met code 5 als dat niet het geval is.
*'''21''': anders zetten we de hexadecimale karakters om naar gewone karakterstring;
*'''24''': nu roepen we een '''test''' subroutine op, één voor één met de namen van de mogelijke conversiefuncties;
*'''34''': de functie
*'''35''': dit is de voornaamste regel in deze procedure. Door een '''signal on syntax''' zetten we de detectie van syntaxis fouten aan. Indien een fout wordt ontdekt springen we naar het label ''syntax:'';
*'''36''': omdat we de naam van de functie als variabele binnenkregen moeten we een '''interpret''' bevel gebruiken om de functie op te roepen. Sommige conversies zijn echter niet toegelaten, voornamelijk als een niet
*'''37''': heeft de functie wél een resultaat gegeven, dan kunnen we dat afdrukken, en de functie beëindigen;
*'''40''': de syntax: routine wordt dus opgeroepen bij een ongeldige conversie. We melden dit ook en keren tenslotte ook terug naar de hoofdroutine.
Laten we naar een paar
C:\Users\Dmitri>'''rexx d:\RexxProgrammas\xtox "42"x'''
C2D(B)=66 =X'3636'
Regel 74:
X2B(B)=1011 =X'31303131'
B2X(B)=onmogelijk
Onze hexadecimale waarde '42'x is in het begin van het programma als dusdanig herkend en omgezet naar het karakter "B". Dit karakter proberen we nu op alle mogelijke manieren om te zetten. Het is geen numeriek getal, dus dat de omzetting van decimaal
C:\Users\Dmitri>'''rexx d:\RexxProgrammas\xtox A'''
C2D(A)=65 =X'3635'
Regel 85:
X2B(A)=1010 =X'31303130'
B2X(A)=onmogelijk
Bij de X2C omzetting bekomen we de waarde '0A'x en dat is een Line-Feed... dus we gaan inderdaad naar de volgende lijn om het resultaat te tonen, en het alignement van de tekst
In het begin van het hoofdstuk vroegen we ons af hoe we de binaire voorstelling van het karakter "A" konden bekomen. Wel, uit deze resultaten kunnen we besluiten dat X2B() al niet de goede oplossing is, we moeten een dubbele conversie hanteren, namelijk X2B(C2X(A)). Inderdaad:
Regel 189:
Date(Weekday) = Wednesday
en indien een datum is opgegeven:
C:\Users\Dmitri>'''rexx d:\RexxProgrammas\rexdates 20111216'''
De DATE functie kan volgende formaten produceren voor "20111216"
? ===> Basedate Sorted
Regel 200 ⟶ 201:
Date(Usa ,20111216,"?") = 08/23/63 12/16/11
Date(Weekday ,20111216,"?") = Sunday Friday
{{Sjabloon:Navigatie
|Boek =Programmeren in REXX
|vorige =Nog bevelen en functies
|huidige =Voorbeeld 2
|volgende=Host Commando's}}
{{sub}}
|