home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pmos2002.zip / DEF / conversi.def < prev    next >
Text File  |  1997-10-02  |  5KB  |  89 lines

  1. DEFINITION MODULE Conversions;
  2.  
  3.         (********************************************************)
  4.         (*                                                      *)
  5.         (*              Miscellaneous type conversions          *)
  6.         (*                                                      *)
  7.         (*  Programmer:         P. Moylan                       *)
  8.         (*  Last edited:        3 September 1996                *)
  9.         (*  Status:             Working                         *)
  10.         (*                                                      *)
  11.         (********************************************************)
  12.  
  13. FROM SYSTEM IMPORT
  14.     (* type *)  CARD8, CARD32;
  15.  
  16. TYPE HexDigit = [0..15];
  17.      EightChar = ARRAY [0..7] OF CHAR;
  18.  
  19. PROCEDURE atoi (a: LONGREAL;  i: CARDINAL): LONGREAL;
  20.  
  21.     (* Calculates a**i.  This procedure does not really belong in this  *)
  22.     (* module, but it's missing from MATHLIB and there's no more        *)
  23.     (* logical place to put it.                                         *)
  24.  
  25. PROCEDURE StringToHex (string: ARRAY OF CHAR): CARDINAL;
  26. PROCEDURE StringToCardinal (string: ARRAY OF CHAR): CARDINAL;
  27. PROCEDURE StringToLongCard (string: ARRAY OF CHAR): CARD32;
  28. PROCEDURE StringToReal (string: ARRAY OF CHAR): REAL;
  29. PROCEDURE StringToLongReal (string: ARRAY OF CHAR): LONGREAL;
  30.  
  31.     (* Converts a text string to numeric.  Leading blanks are ignored.  *)
  32.     (* The conversion stops at the end of the array or at the first     *)
  33.     (* character which cannot be part of the number, and in the         *)
  34.     (* latter case all subsequent characters are ignored.               *)
  35.  
  36. PROCEDURE HexToChar (number: HexDigit): CHAR;
  37.  
  38.     (* Converts a one-digit hexadecimal number to its readable form.    *)
  39.  
  40. PROCEDURE HexByteToString (value: CARD8;
  41.                         VAR (*OUT*) buffer: ARRAY OF CHAR;  pos: CARDINAL);
  42.  
  43.     (* Converts a byte value to 2-character hexadecimal, with the       *)
  44.     (* result stored at buffer[pos] and buffer[pos+1].                  *)
  45.  
  46. PROCEDURE HexToString (value: CARDINAL;  VAR (*OUT*) buffer: ARRAY OF CHAR);
  47. PROCEDURE LongHexToString (value: CARD32;  VAR (*OUT*) buffer: EightChar);
  48.  
  49.     (* Converts 'value' to a string in hexadecimal notation.    *)
  50.  
  51. PROCEDURE ShortCardToString (number: CARD8;
  52.                                         VAR (*OUT*) buffer: ARRAY OF CHAR;
  53.                                         fieldsize: CARDINAL);
  54. PROCEDURE CardinalToString (number: CARDINAL;
  55.                                         VAR (*OUT*) buffer: ARRAY OF CHAR;
  56.                                         fieldsize: CARDINAL);
  57. PROCEDURE LongCardToString (number: CARD32;
  58.                                         VAR (*OUT*) buffer: ARRAY OF CHAR;
  59.                                         fieldsize: CARDINAL);
  60. PROCEDURE RealToString (number: REAL;  VAR (*OUT*) buffer: ARRAY OF CHAR;
  61.                                         fieldsize: CARDINAL);
  62. PROCEDURE LongRealToString (number: LONGREAL;
  63.                                         VAR (*OUT*) buffer: ARRAY OF CHAR;
  64.                                         fieldsize: CARDINAL);
  65.  
  66.     (* Converts the number to a decimal character string in array       *)
  67.     (* "buffer", right-justified in a field of fieldsize characters.    *)
  68.     (* In the case of reals the format depends on the size of the       *)
  69.     (* number relative to the size of the buffer.                       *)
  70.  
  71. PROCEDURE RealToF (number: REAL;  VAR (*INOUT*) fieldsize: CARDINAL;
  72.                         decimalplaces: CARDINAL;  LeftJustified: BOOLEAN;
  73.                         VAR (*OUT*) buffer: ARRAY OF CHAR);
  74. PROCEDURE LongRealToF (number: LONGREAL;  VAR (*INOUT*) fieldsize: CARDINAL;
  75.                         decimalplaces: CARDINAL;  LeftJustified: BOOLEAN;
  76.                         VAR (*OUT*) buffer: ARRAY OF CHAR);
  77.  
  78.     (* Converts the number to an F-format string, of up to fieldsize    *)
  79.     (* characters with decimalplaces digits after the decimal point.    *)
  80.     (* The result is left justified if LeftJustified = TRUE is          *)
  81.     (* specified by the caller, and right justified with space fill     *)
  82.     (* otherwise.  On return fieldsize gives the number of character    *)
  83.     (* positions actually used.  The result string is terminated with   *)
  84.     (* at least one CHR(0) (which is not counted in fieldsize), except  *)
  85.     (* where the result fills the entire buffer.                        *)
  86.  
  87. END Conversions.
  88.  
  89.