home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / ib / setups / intrabld / data.z / STRING.JS < prev    next >
Text File  |  1996-12-11  |  5KB  |  132 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. * String.js  --  A collection of string manipulation functions               *
  4. *                                                                            *
  5. * This contains several useful functions for string manipulation. All this   *
  6. * can be done with the String and StringEx objects, but this makes it just   *
  7. * a little easier. To load a function library in IntraBuilder use this       *
  8. * type of command:                                                           *
  9. *                                                                            *
  10. *     _sys.scripts.load(_sys.env.home() + "apps\\shared\\string.js");        *
  11. *                                                                            *
  12. * Functions included are:                                                    *
  13. *                                                                            *
  14. * alltrim(<str>)   - removes leading and trailing spaces                     *
  15. * escapeChar(<str>,<char>) - places an escape indicator "\" before each      *
  16. *                            <char> in <str> and returns the new string.     *
  17. * ltrim(<str>)     - removes spaces on the left side of the string           *
  18. * pad(<str>,<len>) - adds enough spaces to string to make it's length <len>  *
  19. * rtrim(<str>)     - removes spaces on the right side of the string          *
  20. * str(<val>,<len>,<dec>) - converts a number to a string of length <len>,    *
  21. *                          having <dec> decimal places. <len> defaults to    *
  22. *                          length of number, <dec> defaults to 0.            *
  23. *                                                                            *
  24. * Updated 11/11/96 by IntraBuilder Samples Group                             *
  25. * $Revision:   1.1  $                                                        *
  26. *                                                                            *
  27. * Copyright (c) 1996, Borland International, Inc. All rights reserved.       *
  28. *                                                                            *
  29. \****************************************************************************/
  30.  
  31. function alltrim( str ) {
  32.    var stringEx = new StringEx(str);
  33.    stringEx.string = stringEx.rightTrim();
  34.    return (stringEx.leftTrim());
  35. }
  36.  
  37. function escapeChar(str,chr) 
  38. {
  39.    var offset = last = 0;
  40.    var returnVal = ""; 
  41.    while(str.indexOf(chr,last) >= 0) {
  42.       offset = str.indexOf(chr,last);
  43.       returnVal += str.substring(last, offset) + "\\" + chr;
  44.       last = offset+1;
  45.    } 
  46.    returnVal += str.substring(last,str.length);
  47.    return returnVal;
  48. }
  49.  
  50. function ltrim( str ) {
  51.    var stringEx = new StringEx(str);
  52.    return (stringEx.leftTrim());
  53. }
  54.  
  55. function pad(str, len) {
  56.    var s = new StringEx(str);
  57.    s.string = s.string + s.replicate(" ",len);
  58.    return(s.left(len))   
  59. }
  60.  
  61. function rtrim( str ) {
  62.    var stringEx = new StringEx(str);
  63.    return (stringEx.rightTrim());
  64. }
  65.  
  66. /*   str( <expN> [,<len> [,<dec>]] )
  67.  
  68.      where expN  is any numeric value
  69.            len   is the length of the character string
  70.                  to return. If a len is not passed, then
  71.                  the return string is only as large as
  72.                  the number itself.
  73.            dec   is the number of decimal places in the
  74.                  return string. The default is 0.
  75.  
  76.      returns     str() returns a character string containing
  77.                  the number passed.
  78. */
  79.  
  80. function str(num,len,dec) {
  81.    // set the default values, depending on how many
  82.    // parameters where passed.
  83.    if (str.arguments.length == 0) {
  84.       return "";
  85.    }
  86.    else if (str.arguments.length == 1) {
  87.       len = 0;
  88.       dec = 0;
  89.    }
  90.    else if (str.arguments.length == 2) {
  91.       dec = 0;
  92.    }
  93.  
  94.    // initialize needed objects
  95.    var return_str = new StringEx();
  96.    var stringEx   = new StringEx();
  97.    var math       = new Math();
  98.  
  99.    // check the number of decimals
  100.    return_str.string = ("" + math.round(num*math.pow(10,dec))/math.pow(10,dec));
  101.    
  102.    // remove leading/trailing spaces
  103.    return_str.string = return_str.leftTrim();
  104.    return_str.string = return_str.rightTrim();
  105.  
  106.    // set the correct number of decimal places
  107.    if (return_str.indexOf(".") == 0) {
  108.       return_str = return_str + ".";
  109.    }
  110.    return_str.string = return_str.string + stringEx.replicate("0",dec);
  111.    return_str.string = return_str.left(return_str.indexOf('.') + (dec==0?0:1) + dec); //return_str.string,
  112.  
  113.    // add leading spaces to get correct length. If
  114.    // actual length is greater then len, return overflow
  115.    if (len == 0) {
  116.       // Do nothing. The string is fine.
  117.    } 
  118.    else if (return_str.length > len) {
  119.       return_str.string = stringEx.replicate("*",len);
  120.    } 
  121.    else {
  122.       return_str.string = stringEx.replicate(" ",len) + return_str.string;
  123.       return_str.string = return_str.right(len); //return_str.string,
  124.    }
  125.  
  126.    // that's it
  127.    return (return_str.string);
  128. }
  129.  
  130.  
  131.  
  132.