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$RELIO - I/O op relative- of sequentieel bestand




Aanroep
 
xcall e$relio (actie, kanaal, record[, recordnummer])
 
Common velden vóór aanroep
e$_curw
Venster-identificatie van het actieve uitvoervenster.
Parameters te vullen bij aanroep
actie (d3)
Drie posities die elk de routine aansturen met betrekking tot de te ondernemen operatie op het ISAM bestand:
  • Positie 1 (meest rechtse) geeft de I/O operatie aan en kent de volgende waarden:
    1. READS
    2. READ
    3. WRITE
    4. WRITES
  • Positie 2 (de middelste) geeft aan of er een unlock plaats moet vinden:
    1. Unlock kanaal na elke I/U-operatie.
  • Positie 3 (de meest linkse) is om aan te geven hoeveel keer, bij een gelocked record, moet worden geprobeerd het record te lezen vóórdat de fout 40 aan het aanroepende programma wordt teruggegeven. De waarde wordt intern met 10 vermenigvuldigd, dus het minimale aantal keren is 10. NUL (0) geldt als 'oneindig blijven proberen'. Bij een lock waarbij vaak of oneindig geprobeerd moet worden het record te lezen, wordt onderin het scherm, in een apart, kaderloos venster, een lock-melding knipperend weergegeven, inclusief de bestandsspecificatie van het bestand waarop de lock betrekking heeft, zodat een gebruiker weet waarom het programma geen sjoege geeft. Een voorbeeld:

kanaal (d*)
Het kanaal waarop een relative- of sequentieel bestand geopend moet zijn.
record (a*)
De buffer met gegevens die naar het bestand geschreven moet worden.
De maximale buffergrootte voor record is 8192 bytes.
recordnummer (d*)
Het recordnummer dat gelezen moet worden of waar record geschreven moet worden.
Moet meegegeven worden als de eerste positie van vlag een 2 of 3 is.
Parameters gevuld bij terugkeer
record (a*)
De buffer met gegevens die uit het bestand gelezen moest worden.
Common velden gevuld bij terugkeer
e$_err
Foutcode van de eventueel opgetreden fout:
000 = Alles is goed gegaan.
010 = Kanaal <= nul
028 = Recordnummer is nul
031 = Record is groter dan 8192 bytes.
151 = Positie 1 van actie <= 0 of >= 5
??? = DBL-foutcode
e$_lin
Het regelnummer waar de DBL-fout optrad.
Voorbeelden
 

Sequentieel het bestand door, startende op recordnummer 10. Bij een lock ondeindig blijven proberen:

xcall e$relio (2, chlnd, land, 10)
while .not.e$_err begin
...
...
xcall e$relio (1, chlnd, land)
end

Hier een UPDATE na een record gelezen te hebben met een lock :

xcall e$relio (2, chlnd, land, landnummer)
if .not.e$_err begin
...
...
xcall e$relio (3, chlnd, land, landnummer) ; update
end

Nu wordt een record aan het eind van een bestand toegevoegd:

xcall endfl (chout)
xcall e$relio (4, chout, outrec)
© 1997- Marc Vos (and others) Contact Me