Korte beschrijving bij MARGENN.PL

Auteur: W. Nelis
Status: Versie 1.1
Datum:  2004.01.04


MarGENN is een in Perl geschreven programma om personen met tenminste een
nakomeling in generatie N te markeren. Het kan ook in VTX geschreven worden,
de taal waarin de meeste PRO-GEN programma's geschreven zijn, maar dat
resulteert in een zeer traag programma. De bewerking van een bestand van
ongeveer 30000 personen kost dan uren! Het in Perl geschreven programma
blijkt aanmerkelijk sneller te zijn: het doet dezelfde klus binnen
1 minuut.

Om dit programma te gebruiken dient eerst Perl geinstalleerd te zijn.
Haal de vertaalde versie (Engels; binary distribution) van Perl op bij
www.activestate.com. Het is gratis en vrij groot: het te installeren bestand
is ongeveer 12 [MB] groot. Installeer het in de map die het installatie-
programma voorstelt, te weten "c:\perl".
Na installatie dient Perl in het (DOS) zoekpad te worden opgenomen. In
bestand C:\AUTOEXEC.BAT staat bij mij aan het einde:
  SET PATH=C:\Perl\bin\;%PATH%
Daardoor wordt Perl ook bereikbaar voor PRO-GEN.

MarGenN bestaat uit twee delen. Het eerste deel is een handvol Perl modulen
dat een PRO-GEN bestand kan openen, lezen en (ten dele) veranderen. Deze
modulen worden in map
  c:\perl\site\lib\ProGen
geplaatst. Een overzicht van die map ziet er als volgt uit:

  C:\Perl\site\lib\ProGen>dir
   Volume in drive C has no label
   Volume Serial Number is 0C25-12E5
   Directory of C:\Perl\site\lib\ProGen

  .              <DIR>        11-16-03 12:11p .
  ..             <DIR>        11-16-03 12:11p ..
  DATABASE PM         13,394  12-26-03  7:50p Database.pm
  DATE     PM          5,749  08-25-02  8:24p Date.pm
  FIELD    PM         23,939  12-26-03  6:51p Field.pm
  INDEX    PM         19,377  12-26-03  7:23p Index.pm
  OPTION   PM          3,514  11-05-02  9:11p Option.pm
  OPTIONS  PM            623  11-05-02  9:09p Options.pm
  RECORD   PM         16,328  12-26-03  8:41p Record.pm


Perl is gevoelig voor het onderscheid tussen hoofd- en kleine letters. De
namen van de bestanden moeten zijn als in de rechter kolom vermeld staan,
dus de eerste letter een hoofdletter en de rest kleine letters. De naam van
de map waarin deze bestanden staan is "ProGen".

Het installatieprogramma van PRO-GEN kan wel de bestanden aanmaken, maar
omdat het een DOS-programma betreft, zullen alle namen geheel in hoofdletters
geschreven zijn. Gebruik een Windows programma, bv de verkenner, om de
schrijfwijze van de namen van zowel de map als de bestanden aan te passen.

Het tweede deel is het eigenlijke programma. Dat wordt bij PRO-GEN.EXE in
de map geplaatst. Ook deze naam zal geheel in hoofdletters geschreven zijn,
maar dat maakt niet uit: de enige verwijzing staat in PRO-GEN en daar wordt
geen onderscheid gemaakt tussen hoofd- en kleine letters in namen van
bestanden.

Na deze wat uitgebreide installatie kan het programma gebruikt worden. Het
is te vinden vanuit het hoofdmenu van PRO-GEN onder "DOS programma starten".
Helaas kan daar geen parameter worden opgegeven door de PRO-GEN gebruiker,
en daarom is het aantal generaties vermeld in de aanroep: het staat nu op 5.
Als een andere waarde nodig is kan een kopie van de aanroep gemaakt worden
waarin die parameter een andere waarde krijgt.
Later zal ik eens kijken of het mogelijk is het aantal generaties netjes te
vragen aan de PRO-GEN gebruiker.

Als test heb ik van alle personen in het bestand VORSTEN laten bepalen wie
er nakomelingen heeft in generatie 5. Deze test is uitgevoerd op een Pentium
II processor met een snelheid van 266 [MHz]. Op het scherm verscheen de
volgende uitvoer:

     1.8 - Lees de ouders van alle 21100 personen..
     2.8 - Zoek naar personen met genoeg nakomelingen..
    34.1 - 9054 personen gevonden.
    37.0 - Bewaar resultaat in PRO-GEN index ..
    39.1 - Klaar
  Press any key to continue . . .


Het getal aan het begin van de regel is de verstreken tijd sinds het
programma gestart is. Om de personen in het vorstenbestand te markeren is
dus in totaal ongeveer 40 seconden nodig geweest.

