Software development, photography, jokes, ....

Sites by me

 
tas-logoTransportation Administration System
snoezelkussen-logo-kleinstSnoezelkussens voor verstandelijk gehandicapten
ikzoekeenbegeleider-logoBegeleiders voor gehandicapten
Laat uw hond het jaarlijkse vuurwerk overwinnen
logo 50x50Hey Vos! Je eigen naam@vos.net emailadres?
Kunst in huis? Nicole Karrèr maakt echt bijzonder mooie dingen
nettylogo2Kunst in huis? Netty Franssen maakt ook bijzonder mooie dingen
Salarisadministratie en belastingadvies bij De Zaak Loont
Zutphense Bomenstichting

Hosting Favorites

 
ANU Internet Services
XelMedia .internet Services
register.com

Blogroll

 
Bomenstichting
LassoSoft
MacFreak
Quality that computes
The Economy of Motion
Wheel 2.0
IntrAktv



Website Hosting bij Xel Media

Marc's Place

E$SORT - Sorteren relative- of sequentieel bestand




Aanroep
 
xcall e$sort ({sortparms | optie-string}[, [bestand_in], [bestand_uit][, programma[, bericht]]])
 
Common velden vóór aanroep
*N/A
Parameters te vullen bij aanroep
sortparms (a*)
Een record dat een sortering definieert van een bestand (onder DIBOL via DBLSORTG). Zie Sorteren van Bestanden voor meer informatie.
optie-string (a*)
Een sort-definitie volgens Synergy/Language syntax. Zie de Synergy/Language manual voor meer informatie.
bestand_in (a*)
De bestandsspecificatie van het te sorteren bestand. Het vullen van deze parameter overruled de input specificatie in sortparms.
bestand_uit (a*)
De bestandsspecificatie van gesorteerde bestand. Het vullen van deze parameter overruled de output specificatie in sortparms.
programma (a*)
Indien meegegeven dan wordt het aanroepende programma gestopt en programma gestart. Gebruik geen uitgebreide padnamen in de specificatie van het programma maar een logische naam, bijvoorbeeld EXE:PRG.EXE of PGM:PRG.DBR en niet C:\PROGRAM FILES\COMMON FILES\MIJN PROGS\PRG.DBR. Dat is gewoonweg een te lange specificatie en daarbij ook zeer onzinnig.
bericht (a*)
Indien meegegeven dan wordt dit bericht door middel van een send statement aan programma gestuurd.
Parameters gevuld bij terugkeer
*N/A
Common velden gevuld bij terugkeer
*N/A
Voorbeelden
Indien via sortparms wordt gesorteerd, kan er met tijdelijke bestanden gewerkt worden. Je moet dan de devno met 1 en dev of temp in sortparms vullen met een logische naam die naar een directory verwijst, bijvoorbeeld WRK:. Indien dev leeg is, wordt de specificatie uit temp genomen. Is die ook leeg dan wordt er niet met tijdelijke bestanden gesorteerd.
 
Hier volgt een voorbeeld waarbij een selectie uit het artikelbestand op voorraad en artikelcode wordt gesorteerd:
 
xcall e$fopen (chout, outfile, %size(artikel), 'o:r')
if e$_err xcall e$quit
 
xcall e$fopen (chfdf, chart, 010, 'i')
if e$_err xcall e$quit
close chfdf
 
xcall e$ismio (11, chart, artikel)
while .not.e$_err begin
if artikel.voorraad.gt.10
xcall e$relio (4, chout, artik)
xcall e$ismio (11, chart, artikel)
end
 
xcall e$messag ('sor')
 
;* Vul PARMS
clear parms
reclen = %size(artikel)
keynum = 2
type(1) = 'D' ; Numerieke key
direct(1) = 'A'
postn(1) = 56 ; eerste positie van het voorraadveld
length(1) = %size(voorraad) ; D11 veld
type(2) = 'A' ; Alfanumerieke key
direct(2) = 'A'
postn(2) = 1 ; eerste positie van de artikelcode
length(2) = %size(code) ; A20 veld
 
close chout
xcall e$sort (parms, outfile, outfile)
 
xcall e$fopen (chout, outfile, , 'i:r') ; nu voor input
 
;* Start nu met afdrukken
xcall e$messag ('pri')
xcall e$relio (1, chout, artikel)
while .not.e$_err begin
...
...
...
 
En nu het zelfde bestand sorteren door middel van een optie-string:
 
...
...
;* Vul OPTIES
opties = "RECSIZE="+%string(%size(artikel)) +
& ", KEY=(56:" + %string(%size(voorraad)) +
& "/f,1:" + %string(%size(code)) + "/f)"
close chout
xcall e$sort (opties, outfile, outfile)
...
...
 
En nu met een door DBLSORTG gegenereerde definitie die als include in het programma is opgenomen:
 
.include 'inc:pgmsrt.def'
...
...
close chout
xcall e$sort (sortm, outfile, outfile)
...
...
© 1997- Marc Vos (and others) Contact Me