home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / TP003.ZIP / CENTER.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1985-09-08  |  1.5 KB  |  34 lines

  1. TYPE
  2.   LONGSTRING = STRING[255];
  3.  
  4. {****************************************************************************}
  5. FUNCTION CENTER (                              {* CENTERS A STRING IN FIELD *}
  6.                   FIELD_WIDTH   : BYTE;        {* WIDTH OF FIELD FOR CENTER *}
  7.                   CENTER_STRING : LONGSTRING   {* STRING TO CENTER          *}
  8.                 )               : LONGSTRING;  {* RETURN THE STRING         *}
  9. {************************************************                           *
  10.  * THIS FUNCTIONS TAKES THE STRING 'CENTER_STRING' AND CENTERS IT IN A      *
  11.  * FIELD 'FIELD_WIDTH' SPACES LONG.  IT RETURNS A 'LONG_STRING'  WITH A     *
  12.  * LENGTH EQUAL TO 'FIELD_WIDTH'.  IF THE 'CENTER_STRING' IS LONGER THAN    *
  13.  * FIELD WIDTH, IT IS TRUNCATED ON THE RIGHT END AND IS NOT CENTERED.       *
  14.  ****************************************************************************}
  15.  
  16. VAR
  17.   TEMP   : STRING[255];
  18.   MIDDLE : BYTE;
  19.  
  20. BEGIN
  21.   MIDDLE := FIELD_WIDTH DIV 2;
  22.   IF LENGTH(CENTER_STRING) > FIELD_WIDTH THEN
  23.     CENTER := COPY(CENTER_STRING,1,FIELD_WIDTH) {TRUNCATE AND RETURN}
  24.   ELSE
  25.     BEGIN
  26.     TEMP := REPLICATE(MIDDLE - (LENGTH(CENTER_STRING) DIV 2),' ') +
  27.             CENTER_STRING +
  28.             REPLICATE(MIDDLE - (LENGTH(CENTER_STRING) DIV 2) + 1,' ');
  29.     CENTER := COPY(TEMP, 1, FIELD_WIDTH)  {TRUNCATE TO FIELD_WIDTH CHARACTERS}
  30.     END {ELSE}
  31.  END; {CENTER}
  32.  
  33. {****************************************************************************}
  34.