home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / DYRA.ZIP / DYEXAMPL.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1993-01-04  |  1.7 KB  |  85 lines

  1. program DyExampl;
  2.  
  3. { Example program using Dynamic Arrays
  4.  
  5.        Author: Mike Babulic
  6.                3827 Charleswood Dr. N.W.
  7.                Calgary, Alberta
  8.                CANADA
  9.                T2L 2C7
  10.  
  11.        Compuserve: 72307,314
  12.  
  13.        Also reachable on a friend's Fido BBS:  1:134/1
  14. }
  15.  
  16.   uses DyArrays;
  17.  
  18.   const theChar = 100;
  19.  
  20.   type tst = array [1..1000] of char;
  21.        tp  = ^tst;
  22.  
  23.        cp  = ^char;
  24.  
  25.   procedure WriteTpInfo(a:tp);
  26.     begin
  27.       with DyInfo(a)^ do begin
  28.         writeln;
  29.         writeln('(Size,Mul,Inc,Max)  =  ( ',size,', ',mul,', ',inc,', ',max,' )');
  30.       end;
  31.     end;
  32.  
  33.   var a:tp;
  34.       b:tp;
  35.  
  36.       i:integer;
  37.  
  38.       oldmax : LongInt;
  39.  
  40.   begin
  41.  
  42.     oldmax := 0;
  43.  
  44.     DyOpen(a,0,1,15);
  45.  
  46.     writeln;
  47.     writeln('Growing the dynamic array...');
  48.     writeln;
  49.  
  50.     for i := 1 to 500 do begin
  51.        DyGrow(a,1);
  52.        with DyInfo(a)^ do begin
  53.          if max>oldmax then begin
  54.            writeln;
  55.            WriteTpInfo(a);
  56.            oldmax := max;
  57.          end;
  58.        end;
  59.        write(i:4);
  60.        a^[i] := chr(i and $FF);  {largest character is $FF}
  61.     end;
  62.     writeln;
  63.  
  64.     writeln;
  65.     writeln('a^[',theChar,']  = "',a^[theChar],'"');
  66.     writeln('chr(',theChar,') = "',chr(theChar),'"');
  67.     writeln;
  68.     writeln('Last Character, a^[',DySize(a),']          = "',a^[DySize(a)],'"');
  69.     writeln('                chr(',DySize(a),' and $FF) = "',chr(DySize(a) and $FF),'"');
  70.  
  71.     WriteTpInfo(a);
  72.  
  73.     DyClone(a,b);
  74.  
  75.     writeln;
  76.     writeln('a^[theChar] = "',a^[theChar],'"');
  77.     writeln;
  78.     writeln('cp(dy(b,theChar))^ = "',cp(dy(b,theChar))^,'"');
  79.  
  80.     DyClose(a);
  81.     DyClose(b);
  82.  
  83.    writeln;
  84.  
  85.   end.