Newsgroups: comp.lang.lisp.x
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!news.sprintlink.net!noc.netcom.net!netcom.com!mayer
From: mayer@netcom.com (Niels P. Mayer)
Subject: Re: [Q] How to convert string to number?
Message-ID: <mayerD8uAnv.B02@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
References: <AAhKEklSp9@unity-bars.carrier.kiev.ua>
Date: Fri, 19 May 1995 19:11:55 GMT
Lines: 46
Sender: mayer@netcom7.netcom.com

In article <AAhKEklSp9@unity-bars.carrier.kiev.ua>, Sergei Matusevitch <motus@unity-bars.carrier.kiev.ua> writes:
> 
>         Help!!!!!!!!!!
> 
> Please, tell me how can I convert, say, "256" to 256 ???????
> I use XLISP-PLUS 2.1g.

In WINTERP 2.0, I use a construct like this to convert a string to a
number...  There might be a more elegant/robust way of doing this (esp. the
hack of using the lisp reader to do the work for you), but this works for
me....

(progv '(*breakenable*) '(nil)
       (setq value
	     (errset (read (make-string-input-stream
			    (send CALLBACK_WIDGET :get_string)))
		     NIL))		;errset -- don't print error messages
       )

(if value				;if errset did not return NIL on error
    (setq value (car value)))

(cond
 ((not (numberp value))
  (X_BELL)				;SIGNAL ERROR -- BEEP
  (send CALLBACK_WIDGET :set_string "")
  (setq value NIL)
  )
 ((< value 0)
  (X_BELL)				;SIGNAL ERROR -- BEEP
  (send CALLBACK_WIDGET :set_string "")
  (setq value NIL)
  )
 ((integerp value)
  (format T "user entered fixnum ~A\n" value)
  )
 ((floatp value)
  (format T "user entered flonum ~A\n" value)
  )
 )

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
= Niels Mayer ..... mayer@eit.com .... http://www.eit.com/people/mayer.html =
=  Multimedia Engineering Collaboration Environment (MM authoring for WWW)  =
=  Enterprise Integration Technologies, 800 El Camino Real, Menlo Park, CA  =
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
