newLISP Fan Club

Forum => newLISP in the real world => Topic started by: winger on June 01, 2012, 11:04:38 PM

Title: Something error about file write function
Post by: winger on June 01, 2012, 11:04:38 PM
Today I write a Script to download newlisp's benchmark code.

But I Can't find file in my directory.

I was scared! It been eat ! OMG

(set 'page (get-url "http://www.newlisp.org/benchmarks/"))
(set 'files (find-all {(syntax.cgi?benchmarks/.*newlisp.txt)"} page $1)) ;ye , this is error filename, so suk!
(println files)
(dolist (file files)
  (write-file (string "./"file)
  (get-url (string "http://www.newlisp.org/" file)))
  (println "->" file))

(exit)
Title: Re: Something error about file write function
Post by: Lutz on June 02, 2012, 02:39:39 AM
When you use syntax.cgi? in the URL you will get all the HTML too and ? is not allowed in file names. To get the raw text files:


(set 'page (get-url "http://www.newlisp.org/benchmarks/"))
(set 'files (find-all {(syntax.cgi?benchmarks/.*newlisp.txt)"} page $1))
(println files)
(dolist (file files)
  (set 'file (last (parse file "/")))
  (write-file file (get-url (string "http://www.newlisp.org/benchmarks/" file)))
  (println "->" file))

(exit)
Title: Re: Something error about file write function
Post by: winger on June 04, 2012, 03:55:53 AM
Yes .

You'are right.

In my opinion it should throw a waring message  when filename is incorrect.

Though we can use (true? filename) determine whether filename is correct.
Title: Re: Something error about file write function
Post by: Lutz on June 04, 2012, 04:51:44 AM
Like other file I/O functions in newLISP write-file will return nil on failure. You can then use sys-error to find out the error.



ps: this has been added to the reference manual.