Marc's Place

XREL1/-2/-3 - Relative/Sequential: In- en uitvoer




Aanroep
 
xcall xrel* (kanaal, record[, recordnummer])
 
Common velden vóór aanroep
mhadm
Administratierecord. Het E$LIB administratie record e$adm wordt in deze routine gevuld met dit record. Dat zorgt ervoor dat beide administratierecords gelijke informatie bevatten.
mhmde
Besturingscode voor in- of uitvoer:
  • 01 - READS
    Het volgende record wordt in record teruggegeven.
  • 02 - READ
    Alleen van toepassing op relatieve bestanden. Het record op recordnummer wordt gelezen en in record teruggegeven.
  • 03 - WRITE
    Alleen van toepassing op relatieve bestanden. Record wordt op recordnummer teruggeschreven in het bestand.
  • 04 - WRITES
    Het record wordt aan het eind aan het bestand toegevoegd.
mhnrt
Aantal seconden dat gewacht moet worden bij een leesactie op een bestand dat voor update is geopend voordat fout 40 (lock) wordt teruggegeven. De routine blijft steeds 1 seconde wachten op vrijgave van het gewenste record. Tijdens het wachten wordt onderaan het beeldscherm de tekst 'Gegevens bezet....' getoond.
Indien NUL, wordt fout 40 nooit teruggegeven en blijft de routine proberen het record te lezen.
Parameters te vullen bij aanroep
kanaal (d3)
Het kanaalnummer waarop een relatief of sequentieel bestand geopend moet zijn.
record (a*)
Bij een WRITE of een WRITES: het bijgewerkte of nieuwe record.
recordnummer (d*)
Het nummer van het record in het bestand dat gelezen moet worden.
Alleen van belang voor de volgende waarden van mhmde: 02 en 03.
Parameters gevuld bij terugkeer
record (a*)
Het gelezen record volgens de regels van het READ(S) statement. Maximale recordgrootte is 8192 tekens.
Common velden gevuld bij terugkeer
mherc
Foutcode van de eventueel opgetreden fout.
mhlin
Een regelnummer in het programma waar de eventueel opgetreden fout is ontstaan.
Voorbeelden
 

De drie routines zijn alle precies gelijk, alleen de naamgeving verschilt. Dit is vanwege historische compatibiliteit met de Multihouse XIBOLs.


landnummer = 033

mhmde = 2
xcall xrel3 (ch_land, land, landnummer)


In bovenstaand voorbeeld wordt getracht recordnummer 33 uit het landenbestand, een relatief bestand, te lezen.


mhmde = 1
xcall xrel3 (ch_txt, buff)


In dit voorbeeld wordt het eerstvolgende record uit een sequentieel (of relatief) bestand gelezen.

© 1997- Marc Vos (and others) Contact Me