home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / powerd / lib / PowerD / Val.d < prev    next >
Encoding:
Text File  |  1999-10-10  |  702 b   |  39 lines

  1. OPT    OBJECT
  2.  
  3. PROC Val(s:PTR TO CHAR,n=0)(LONG)
  4.     DEF    num=0,sign=1
  5.     WHILE s[n]="\t" OR s[n]="\n" OR s[n]=" " DO n++
  6.     IF s[n]="-"
  7.         sign:=-1
  8.         n++
  9.     ENDIF
  10.     IF s[n]="%"                                                        // BINAR number
  11.         n++
  12.         WHILE s[n]="0" OR s[n]="1"
  13.             num:<<=1
  14.             num:|=s[n]-"0"
  15.             n++
  16.         ENDWHILE
  17.     ELSEIF s[n]="$"                                                // HEXADECIMAL number
  18.         n++
  19.         WHILE s[n]>="0" AND s[n]<="9"
  20.             num:<<=4
  21.             num:|=s[n]-"0"
  22.         ELSEWHILE s[n]>="a" AND s[n]<="f"
  23.             num:<<=4
  24.             num:|=s[n]-"a"+10
  25.         ELSEWHILE s[n]>="A" AND s[n]<="F"
  26.             num:<<=4
  27.             num:|=s[n]-"A"+10
  28.         ALLWAYS
  29.             n++
  30.         ENDWHILE
  31.     ELSE                                                                // DECIMAL number
  32.         WHILE s[n]>="0" AND s[n]<="9"
  33.             num:*=10
  34.             num:+=s[n]-"0"
  35.             n++
  36.         ENDWHILE
  37.     ENDIF
  38. ENDPROC num*sign
  39.