| Deutsch English Français Italiano |
|
<vcj7tu$1095b$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "B. Pym" <Nobody447095@here-nor-there.org>
Newsgroups: comp.lang.lisp,comp.lang.scheme
Subject: Re: reading-files. CLOS-support?
Date: Fri, 20 Sep 2024 07:23:55 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <vcj7tu$1095b$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Date: Fri, 20 Sep 2024 09:23:55 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="a0826257f8080eff71f9956e8770cd16";
logging-data="1057963"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18WqJS60UdjWumeef98mk+I"
User-Agent: XanaNews/1.18.1.6
Cancel-Lock: sha1:Gcey7Pndt+7TmITUkzlXbqA/Lpw=
Bytes: 2216
Pete Halverson wrote:
> > > I need to read an input file which is not written out as lists.
> > > I can use read-line and get it as a string.
> > > how do I convert this string to a list.
> > > eg of kind of lines to be read and converted
> > > Line 13.4 24 50 100.0 45.6 78
> > > eye 0 0 0
> > > aim -75 10 12
> > > One posible solution I have is to coerce the string into a list
> > > and reformulate the list by "imploding" atoms separated by blank spaces
> > > together. This doesnt work for the number portion yet.But, I am still
> > > working on it.
> >
> > Id be very interested in solutions to this as well. Id be happy to receive
> > duplicates of any email-messages showing up.
>
> I would expect something as trivial as
>
> (defconstant +EOF-MARKER+ (make-symbol "EOF"))
>
> (defun READ-TOKENS-FROM-STRING (string)
> (with-input-from-string (stream string)
> (loop for thing = (read stream nil +eof-marker+)
> until (eq thing +eof-marker+)
> collect thing)))
>
> ought to suffice here. (Apologies to loop haters; conversion to "Lisp" is
> left as an exercise to the reader :-)
Gauche Scheme:
(use gauche.generator)
(define (read-tokens-from-string string)
(with-input-from-string string
(cut generator->list read)))