Hoe zoekt en vindt PxPLUS uw bestanden en
programma's.
Eerst overlopen we de bevelen, functies en
parameters die betrekking hebben op het vinden van bestanden.
'CD' parameter.
De 'CD' parameter staat standaard 'UIT', wat betekent dat de directory waar je
in staat pas doorzocht wordt ná de directories uit de PREFIX lijst.
Indien de parameter 'AAN' staat, dan kijkt PxPLUS eerst in de actieve
directory, en pas dan in de PREFIX lijst.
(zie verder 'Zoek Regels')
Om de inhoud van de parameter te controleren : PRINT PRM ( 'CD' )
en om de parameter te veranderen : SET PARAM 'CD' = 1 (or 0)
PREFIX
U kunt het PREFIX bevel vergelijken met de PATH variabele in MS-DOS of UNIX.
Gebruik het PREFIX bevel om een reeks van zoekpaden op te geven waar PxPLUS
moet in zoeken als u een OPEN / LOAD / RUN / CALL / PERFORM uitvoert van een
bestand of programma zonder volledige padnaam.
Voorbeeld:
PREFIX "/usr/mydir/data/ /usr/mydir/prog/ /usr/mydir/sub/ D:/other/data/"
Met andere woorden, als u een bestand opent mét volledige padnaam, dan gelden al
de zoekregels niet.
De namen in de PREFIX moeten gescheiden zijn door een spatie.
Zoals u ziet, mag de schijfaanduiding toegevoegd worden aan de padnaam, om alzo
te zoeken op een andere schijf dan dewelke actief is gemaakt met het SETDRIVE
bevel.
U kunt 10 verschillende PREFIXen aanduiden, nl. PREFIX (0) tot PREFIX (9).
Voorbeeld:
PREFIX (0) "/usr/mydir/data/"
PREFIX (1)"/usr/mydir/prog/ /usr/mydir/sub/"
PREFIX (2)"D:/other/data/"
Het voordeel is dat u een bepaalde PREFIX kunt DISABLEn en ENABLEn.
b.v.: DISABLE 2, en u stopt het zoeken in D:/other/data/.
PREFIX (0) " … " is hetzelfde als PREFIX " … "
Als er padnamen zijn waarin al een spatie voorkomt, dan moet u deze padnaam
tussen aanhalingstekens plaatsen.
Voorbeeld:
PREFIX "C:/Tmp/ C:/usr/ ""C:/Program Files/"""
PRINT PFX of PRINT PFX (n) toont u de inhoud van PREFIX.
' = ' teken voor speciale zoekopdrachten.
Het '=' teken in de PREFIX heeft een speciale betekenis. Elk '=' teken komt
overeen met een letter (of cijfer) van de bestandsnaam en wordt erdoor
vervangen. Het eerste '=' teken wordt vervangen door de eerste letter van de
bestandsnaam, het tweede '=' teken door de tweede letter van de bestandsnaam,
enzovoort.
De bedoeling is om grote directories op te delen in kleinere, voor snellere
toegang en beter beheer.
Voorbeeld:
Veronderstel dat uw toepassing uit verschillende modules bestaat. Aan de naam
van een programma kun je al zien tot welke module deze behoort.
b.v. BH001 BH002 BH003 behoren tot de boehhoudmodule en LN001 LN002 LN… behoren
tot de loonadministratiemodule. U kunt dan uw (grote) directory opsplitsen in
meerdere kleine directories. De naam van deze subdirectories moet dan
overeenkomen met de eerste letters van de naam van de modules. In dit geval BH
en LN.
Als PxPLUS nu een programma of bestand zoekt, dan evalueert PxPLUS de eerste
overeenkomende letter(s) en gebruikt die om in de juiste directory te gaan
kijken.
Voorbeeld:
PREFIX "/myapp/==/"
OPEN (1)"BHHIST"
PxPLUS evalueert de bestandsnaam BHHIST en maakt er '/ myapp / BH / BHHIST'
(1) van, en tracht zó het bestand te openen.
Asterisks als PREFIX wild-cards.(2)
U kunt '*' en '**' gebruiken als wild-card teken in PREFIX om (nieuwe)
bestandsnaam extenties te ondersteunen zonder uw programma's te moeten
aanpassen.
Deze uitbreiding is gemaakt in versie 4.20 voornamelijk om Windows 2000
gecertificeerd te zijn. Om Windows 2000 gecertificeerd te zijn, moeten uw
bestanden en programma's een extentie hebben. Met de wild-card tekens in PREFIX
kunt u uw bestanden een specifieke extentie geven, zonder dat u uw programma's
moet aanpassen.
Een enkele asterisk (*):
Indien uw PREFIX bevel een asterisk bevat, gevolgd door een extentie, dan zal
PxPLUS dit asterisk teken vervangen door het bestand dat u tracht te openen.
Met het resultaat tracht PxPLUS dan om het bestand te vinden, en indien niet
gevonden, zal PxPLUS alsnog het bestand trachten te openen zonder extentie.
Voorbeeld:
PREFIX (5) "*.dat"
OPEN(1)"klant"
PxPLUS scant de directory naar 'klant.dat' en opent het bestand. Indien
'klant.dat' niet gevonden werd, dan zoekt PxPLUS verder naar 'klant'. Indien
gevonden, opent PxPLUS het bestand, indien niet gevonden zal PxPLUS een
ERROR 12 genereren.
Nota!
KEYED "abcde",5 zal het bestand 'abcde.dat' niet creëeren maar wel 'abcde' , en
ERASE "abcde" zal wel het bestand 'abcde.dat' wissen !
Dubbele asterisks (**):
Indien uw PREFIX twee asterisks bevat, samen met een extentie, dan zal de
substitutie zoals hierboven beschreven, enkel gebeuren als het een bestandsnaam
betreft zonder eigen extentie bij het OPEN bevel. Indien de naam reeds een
extentie heeft, dan wordt er geen automatische vervanging gedaan.
Voorbeeld:
PREFIX "/mydir/**.dat"
OPEN(1)"journaal"
OPEN(2)"journaal.hist"
Vermits ' OPEN (1)"journaal" ' een bestand bevat zonder extentie, zal
PxPLUS
eerst zoeken naar '/mydir/journaal.dat' en vervolgens naar '/mydir/journaal'.
Vermits ' OPEN (2)"journaal.hist" ' wel een bestand met extentie bevat (.hist),
zal PxPLUS geen '.dat' toevoegen, en dus gewoon zoeken naar het bestand
'/mydir/journaal.hist '.
PREFIX PROGRAM
Gebruik het PREFIX PROGRAM formaat om een zoekpad te definiëren om specifiek
naar programma's te zoeken. PxPLUS zal eerst in dit pad zoeken, en eventueel
vervolgens in de andere PREFIX, indien u een LOAD, RUN, CALL, PERFORM, PROGRAM
of SAVE uitvoert.
Voorbeeld:
PREFIX PROGRAM "/pvx/mydir/pgm/"
om de inhoud te zien :
PRINT PFX(PGN)
PREFIX FILE
Dit is niet de tegenhanger van PREFIX PROGRAM !
Gebruik het PREFIX FILE formaat om dynamische omzettingen te doen van
bestandsnamen. U kunt bijvoorbeeld een ' OPEN(x)"klant" ' geprogrammeerd hebben,
maar eigenlijk wilt u dat "//andere_machine/customer" geöpend wordt.
Hoe werkt het ? U definiëert een KEYED bestand met externe sleutel en een
variabele recordlengte. Indien het bestand niet aan deze voorwaarden voldoet,
krijgt u een ERROR 17:Invalid file type or contents. b "PFXBESTAND"
De sleutel is de naam zoals die in het programma staat. bvb "klant".
Het eerste veld is de naam van het vervangbestand. bvb
"//andere_machine/customer".
Dan voert u het bevel uit : PREFIX FILE "PFXBESTAND"
Bij een OPEN onderzoekt PxPLUS nu eerst dit bestand, en kijkt of de
bestandsnaam, die u wilt openen, bestaat als sleutel in dit bestand. Zo ja, dan
wordt het veld als bestandsnaam gebruikt en gelden terug alle zoek regels.
Mag ik u even herinneren dat enkel indien een relatieve bestandsnaam is
opgegeven, dat dan het hele zoekmechanisme geldt. Bestandsnamen met absolute
padnamen worden onmiddellijk geopend, zonder te zoeken.
Voorbeeld:
KEYED "pfxbestand",25
OPEN(1)"pfxbestand"
WRITE (1,key="klant")"[odb]ACCESS;CUST;KEY=CUSTNO"
CLOSE(1)
……
PREFIX FILE "pfxbestand"
OPEN(1)"klant" ! Intern wordt dit
>> OPEN(1)"[odb]ACCESS;CUST;KEY=CUSTNO"
Zoals u ziet, is het erg makkelijk als u wilt veranderen van databank. U moet
enkel de keyed file veranderen, uw programma's blijven ongewijzigd.
Vanaf versie 4.23 is er een tweede veld toegevoegd aan het PREFIX FILE bestand.
Dit is een OPTIONS veld. Deze opties worden toegevoegd aan de OPT= bij het
openen van het bestand. Dit heeft men gedaan, omdat de lengte van de naam een
limiet heeft van 256 bytes.
Voorbeeld:
Het PREFIX FILE bestand bevat het volgende :
Key="klant", Veld1="[ODB]DSN;customer", Veld2="KEY=cust_id"
OPEN(1)"klant"
intern wordt dit :
OPEN(1,OPT="KEY=cust_id")"[ODB]DSN;customer"
of …
OPEN(1,OPT="REC=klantnaam")"klant"
intern wordt dit :
OPEN(1,OPT="KEY=cust_id;REC=klantnaam")"[ODB]DSN;customer"
De inhoud van OPT= wordt in feite achteraan de naam bijgezet, en dit wordt dan:
OPEN(1)"[ODB]DSN;customer;KEY=cust_id;REC=klantnaam"
PRINT PFX(-1) toont U het PREFIX FILE bestand.
ZOEK REGELS
PxPLUS zoekt een bestand of programma in deze volgorde :
OPEN
1) PREFIX FILE, indien gebruikt. (Vervangt de padnaam, en vervolgt de sequentie)
2) Huidige directory ( indien ’CD’ parameter aan )
3) PREFIX 0 to 9
4) PROGRAM PREFIX, indien gebruikt
5) Huidige directory ( indien ’CD’ parameter uit )
LOAD / RUN / CALL / PERFORM / SAVE
1) PREFIX FILE, indien gebruikt (Vervangt de padnaam, en vervolgt de sequentie)
2) Program Cache
3) Current Directory ( indien ’CD’ parameter aan )
4) PREFIX PROGRAM, indien gebruikt
5) PREFIX 0 to 9
6) Current Directory ( indien ’CD’ parameter uit )
De PREFIX zoekregels gelden niet alleen voor het openen van bestanden, maar ook
voor het creëeren ervan. PxPLUS maakt het bestand aan in het eerste pad van de
eerste PREFIX. Indien 'CD' parameter aan staat, dan worden bestanden aangemaakt
in de 'aktieve' directory.
Let op dat eenmaal een programma in 'cache' zit, en stel dat u de PREFIX
uitschakelt waaruit het programma gekomen is, dan zal PxPLUS bij het opnieuw
oproepen, nog steeds het bewuste programma uit cache halen en geen error 12
genereren.
PERFORMANTIE
Wat u best vermijdt is de schijf aanduiding vooraan in de padnaam.
SETDRIVE "C:" ! meestal is dit de standaard waarde
PREFIX "C:/myapp/data/ C:/myapp/files/ D:/mydir/somedir/ C:/pvx/lib/"
Beter is :
SETDRIVE "C:"
PREFIX "/myapp/data/ /myapp/files/ D:/mydir/somedir/"
Ten eerste heeft u /pvx/lib in uw zoekpad niet nodig. Elk PxPLUS hulpprogramma
en elke PxPLUS subdirectory kunt u oproepen of vinden door vooraan het ' * '
te plaatsen.
b.v. CALL "*web/email" ip CALL "\pvx\lib\_web\email"
Ten tweede, door het weglaten van de schijfaanduiding hoeft PxPLUS niet te
controleren óf de schijf wel bestaat, en dus wint u tijd.
Indien mogelijk, zet het pad met een afwijkende schijfaanduiding achteraan in
het zoekpad.
|