home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TOOL_INC.ZIP / STRLIB.INC < prev    next >
Encoding:
Text File  |  1988-01-29  |  1015 b   |  57 lines

  1.  
  2. {--
  3.  -- Long string package
  4.  --
  5.  -- Author: S.H.Smith, 25-apr-86
  6.  --
  7.  --}
  8.  
  9.  
  10. {--
  11.  -- Package specification
  12.  --
  13.  --}
  14.  
  15. type
  16.    string_buffer_pointer = ^string_buffer;
  17.    string_buffer = array[1..maxint] of char;
  18.  
  19.    long_string_record = record
  20.       length:      integer;
  21.       max_length:  integer;
  22.       value:       string_buffer_pointer;
  23.    end;
  24.  
  25.    long_string_pointer = ^long_string_record;
  26.    short_string = string[255];
  27.  
  28.  
  29. function new_long_string(max: integer): long_string_pointer;
  30. var
  31.    str: long_string_pointer;
  32.  
  33. begin
  34.    new(str);
  35.    with str^ do
  36.    begin
  37.       length := 0;
  38.       max_length := max;
  39.       getmem(value,str^.max_length);
  40.    end;
  41.    new_long_string := str;
  42. end;
  43.  
  44.  
  45. function copy_long_string(old: long_string_pointer): long_string_pointer;
  46. var
  47.    str: long_string_pointer;
  48.    i:   integer;
  49. begin
  50.    str := new_long_string(old^.max_length);
  51.    str^.length := old^.length
  52.    str^.value^ := old^.value;
  53.    copy_long_string := str;
  54. end;
  55.  
  56.  
  57.