HPlogo MPE XL Native Language Programmer's Guide: 900 Series HP 3000 Computer Systems > Appendix F Example Programs

Sort from a Pascal Program

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

This program shows how to sort an input file (formal designator INPF) to an output file (formal designator OUTF) using the SORTINIT intrinsic call.

    1   $USLINIT$

    2   $STANDARD_LEVEL 'HP3000'$

    3

    4   PROGRAM example (inpf,outf);

    5

    6   TYPE

    7      smallint  = -32768 .. 32767;

    8

    9      sort_rec  = RECORD

   10                    position:  smallint;

   11                    length:    smallint;

   12                    seq_type:  smallint;

   13                  END;

   14

   15      char_seq  = RECORD

   16                    array_code:smallint;

   17                    language:  smallint;

   18                  END;

   19

   20      file_arr  = RECORD

   21                    num_file:  smallint;

   22                    num_zero:  smallint;

   23                  END;

   24

   25      file_rec  = PACKED ARRAY [1..72] of CHAR;

   26

   27      file_num  = FILE of file_rec;

   28

   29   VAR

   30      numkeys: smallint;

   31      reclen:  smallint;

   32      keys:    sort_rec;

   33      cseq:    char_seq;

   34      inp:     file_arr;

   35      out:     file_arr;

   36      inpf:    file_num;

   37      outf:    file_num;

   38

   39   PROCEDURE sortinit;   INTRINSIC;

   40   PROCEDURE sortend;    INTRINSIC;

   41

   42   PROCEDURE main;

   43   BEGIN

   44      numkeys := 1;

   45      reclen  :=72;

   46

   47      WITH keys DO

   48      BEGIN

   49        position := 1;

   50        length   := 4;

   51        seq_type := 9;

   52      END;

   53

   54      WITH cseq DO

   55      BEGIN

   56        array_code:=1;

   57        language:= 12;

   58      END;

   59

   60      WITH inp  DO

   61      BEGIN

   62        RESET (inpf);

   63        num_file := FNUM (inpf);

   64        num_zero := 0;

   65      END;

   66

   67      WITH out  DO

   68      BEGIN

   69        REWRITE (outf);

   70        num_file := FNUM (outf);

   71        num_zero := 0;

   72      END;

   73

   74      sortinit (inp,out,,reclen,,numkeys,keys,,,,,,,,cseq);

   75      sortend;

   76

   77   END;

   78

   79   BEGIN

   80      main;

   81   END.

In the example execution, the input and output files are associated with the terminal ($STDIN and $STDLIST):

   :FILE INPF=$STDIN

   :FILE OUTF=$STDLIST

   :RUN PROGRAM;MAXDATA=12000



   character

   credit

   DEBIT

   :EOD



   credit

   character

   DEBIT



   END OF PROGRAM

   :
Feedback to webmaster