Programmeren in REXX/RexxUtil: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
GuyDC (overleg | bijdragen)
Toevoegen van functies
GuyDC (overleg | bijdragen)
Toevoegen van functies
Regel 106:
...etc...
zijnde, de geïnstalleerde systeemfonts.
==SysShutdownSystem - het Windows systeem stoppen==
'''SysShutdownSystem([computer][,bericht][,wachttijd][,appsluiten][,herstart])
Dank zij deze functie kan het Windows systeem worden gestopt. De parameters zijn:
*Computer = de naam van het systeem op afstand. Zonder computernaam wordt het lokaal systeem gestopt;
*Bericht = een bericht naar de gebruiker;
*Wachttijd = de tijd dat het bericht blijft staan;
*Appsluiten = toon niet het bericht "Save unsaved data ?"
*Herstart = het systeem wordt herstart als hier 1 wordt opgegeven.
==SysSleep - het programma pauzeren==
'''SysSleep'''(seconden)
Het programma pauzeert gedurende het opgegeven aantal ''seconden''.
say 'Het programma gaat nu 2 seconden pauzeren...'
call SysSleep 2
Say 'Het programma gaat nu 0.1234567 seconden pauzeren..."
Call SysSleep 0.1234567
Het aantal seconden mag een getal zijn met maximaal 7 cijfers.
 
<!-------------------------------------------------------------------------------------------------------->
Regel 154 ⟶ 170:
'''SysFileMove'''(bronbestand,doelpad)
Zelfde opmerkingen als voor '''SysFileCopy'''. Nu wordt het bestand van de oorspronkelijke plaats weggenomen nadat het kopiëren naar de nieuwe plaats is gelukt.
==SysIsFile - bestaat het bestand&nbsp;?==
'''SysIsFile'''(bestandsnaam)
Deze functie geeft 0 als het bestand niet bestaat, en 1 als het wel bestaat. De ''bestandsnaam'' mag geen "wildcards" ofte jokertekens bevatten.
 
Vermits we de binaire waarde 0 (onwaar) of 1 (waar) terugkrijgen kunnen we eenvoudig dit schrijven:
if SysIsFile("MijnBestand.txt") then say "Het bestand bestaat !"
else say "Het bestand bestaat niet."
==SysIsFileDirectory - bestaat deze map&nbsp;?==
'''SysIsFileDirectory'''(mapnaam)
Is vergelijkbaar met SysIsFile, en antwoord dus 0 als de map niet bestaat, 1 als ze wel bestaat. We mogen ook geen jokertekens gebruiken.
==SysFileTree - bestanden zoeken==
Veruit de meest gebruikte functie om met bestanden te werken. Het is equivalent aan het DIR commando, maar we krijgen het resultaat rechtstreeks terug in een REXX stem&nbsp;!
Regel 190 ⟶ 216:
 
De verschillende tijden die we kunnen opvragen zijn:
*'''C'''reate - de creatiedatum en -tijd van het bestand;
*'''A'''ccess - de laatste maal dat het bestand geaccedeerdbenaderd iswerd;
*'''W'''rite - de laatste maal dat er innaar het bestand is geschreven.
Vergelijk dit met bijvoorbeeld "SysFileTree" waar we enkel de creatiedatum terugkrijgen.
==SysSetFileDateTime - een nieuwe datum en/of tijd aan een bestand toekennen==
'''SysSetFileDateTime'''(bestandsnaam[,nieuwe_datum][,nieuwe_tijd])
Met deze functie kunnen we datum en/of tijd van een bestand veranderen. Het gaat enkel om de "Laatste Modificatie-datum". Indien geen datum noch tijd wordtworden meegegevenopgegeven, dan wordt de huidige systeemtijd toegewezen. Indien geenslechts datuméén maarvan weldeze eentwee tijdparameters iswordt opgegeven, dan verandert alleenuiteraard deenkel tijd.dat Indien we geen tijd meegeven, dan verandert alleen de datumgegeven. We kunnen tevensOok de datum/tijd van een map aanpassenkan zo worden aangepast. Het bestand of map moet toegankelijk zijn voor schrijven en niet in gebruik zijn door een ander proces of gebruiker.
 
De '''nieuwe datum''' moet hetverplicht voldoen aan volgende formaat hebben: JJJJ-MM-DD, waarbij het jaar groter dan 1800 moet zijn. De '''nieuwe tijd''' moet opgegeven worden in het formaat UU:MM:SS (24-uursformaat).
 
Een returncode -1 geeft aan dat de aanpassing mislukt is. Dit zijn voorbeelden:
Call SysSetFileDateTime "MijnFoto.jpg" /* we zetten de systeemtijd */
Call SysSetFileDateTime "MijnFoto.jpg","1998-12-17" /* Enkel datum wordtis veranderd */
Call SysSetFileDateTime "MijnFoto.jpg",,"16:37:21" /* Enkel uur wordt veranderd */
Call SysSetFileDateTime "MijnFoto.jpg","1998-12-17","16:37:21" /* Alles nieuw */
 
==SysFileSearch - tekst in een bestand zoeken==
'''SysFileSearch'''(zoekstring,bestand,stem.[,opties])
DezeMet deze functie laatzoeken we toenaar alle lijnen waar de ''zoekstring'' in voorkomt. in het ''bestand'' te zoeken en hetHet resultaat ervan is terug te vinden in de opgegeven ''stem.''. (waarbij elementElement 0 bevat dan het aantal gevonden lijnen bevat, dus de dimensie.
van de stem bepaalt).
 
Als opties kan men meegeven:
*'''C''' hoofdletter gevoelige opzoeking (case-sensitieve opzoeking, rekening houden met grootte karakters)
*'''N''' lijnnummers teruggevenbij het resultaat zetten.
Bijvoorbeeld:
/* Zoeken naar DEVICE in CONFIG.SYS */
Regel 272 ⟶ 297:
<!--------------------------------------------------------------------------------------------->
=Werken met stems=
==SysStemCopy - een (deel van een) stem kopiëren==
'''SysStemCopy'''(bronstemstem,doelstem[,van][,tot][,aantal][,I of O])
=SysStemDelete - elementen van een stem wegnemen=
Deze functie kopieert elementen van één stem, de ''bronstem'', naar een andere, de ''doelstem''. Het kopiëren begint bij het eerste element, of bij het element met index ''van'' in de bronstem. De elementen gaan naar het eerste element van de doelstem, of het element met index ''tot''. Een ''aantal'' elementen kan opgegeven worden, anders wordt alles tot het einde van de bronstem gekopieerd.
=SysStemInsert - elementen aan een stem toevoegen=
 
=SysStemSort - een stem sorteren=
Een laatste parameter kan bepalen dat de elementen van de bronstem moeten worden tussengevoegd ('''I'''nserted), ofwel dat de elementen in de doelstem moeten worden vervangen ('''O'''verlay). Tussenvoegen is de standaardoptie.
 
Deze functie kan enkel werken met stems waarvan het element nul het aantal bevat, en alle elementen zonder onderbreking opvolgen.
 
Een returncode -1 betekent dat er problemen zijn opgetreden.
 
Voorbeeld:
parse value 3 "Dit is leuk" with bron.0 bron.1 bron.2 bron.3
Call SysStemCopy "bron.","doel."
Call SysStemCopy "bron.","doel.",1,4,2,"I"
Eerst wordt de doel-stem gelijkgemaakt aan de bron-stem.
Bij de tweede operatie voegen we de twee eerste elementen van de bron-stem tussen na het vierde element van de doel-stem, dus aan het eind van de doel-stem in dit geval. Als we nu de elementen van de doel-stem lijsten, dan bekomen we:
Dit
is
leuk
Dit
is
==SysStemDelete - elementen van een stem wegnemen==
'''SysStemDelete'''(stem,start[,aantal])
Deze functie elimineert één element, of een ''aantal'' elementen van de ''stem'' vanaf index ''start''.
 
Ook deze bewerking kan alleen op stems met numerieke indexen worden uitgevoerd. Na het elimineren van de elementen wordt de stem gecompacteerd, t.t.z. de indexen worden terug opeenvolgend gemaakt.
==SysStemInsert - elementen aan een stem toevoegen==
'''SysStemInsert'''(stem,index,waarde)
Deze functie voegt een nieuw element met ''index'' toe aan de ''stem'' en geeft het een ''waarde''. De volgende elementen worden opgeschoven, dus hun indexnummers worden met één verhoogd.
==SysStemSort - een stem sorteren==
'''SysStemSort'''(stem[,volgorde][,hoofdlettergevoeligheid][,start][,einde][,beginkolom][,eindkolom])
De elementen van de stem (met numerieke indexen) worden geordend. Dit kan in oplopende ('''A'''scending) of aflopende ('''D'''escending) volgorde gebeuren. "A" is de standaardkeuze.
 
Bij het sorteren kan wel ('''C'''ase sensitive) of niet (case '''i'''nsensitive) hoofdlettergevoelig zijn.
Het sorteren begint bij het element met index ''start'' en eindigt bij het element met index ''einde''. De kolommen die worden gesorteerd gaan vanaf de ''beginkolom'', tot de ''eindkolom''. Als de laatste vier parameters niet zijn opgegeven krijgen ze de standaardwaarde 1 voor ''start'', stem.0 voor ''einde'', 1 voor ''beginkolom'' en de laatste kolom van een element voor ''eindkolom''.
<!--------------------------------------------------------------------------------------------->
=Andere nuttige functies=
Regel 318 ⟶ 374:
Name=MIJNVAR, Value="Dit is de inhoud"
Handig om te debuggen natuurlijk.
 
Hiermee beëindigen we het hoofdstuk dat functies van het RexxUtil pakket beschrijft. Er zijn minstens nog eens zoveel functies in dit pakket. We raden aan van er de documentatie eens op na te slaan om te weten welke functies er nog bestaan. Deze opmerking geldt evenzeer voor functiepakketten die bij andere implementaties van REXX zijn meegeleverd.
{{5075%}}
{{sub}}
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.