diff --git a/collects/2htdp/batch-io.ss b/collects/2htdp/batch-io.ss new file mode 100644 index 0000000000..43ae79acd7 --- /dev/null +++ b/collects/2htdp/batch-io.ss @@ -0,0 +1,31 @@ +#lang scheme/base + +(require htdp/error) + +(define (read-file f) + (check-arg 'read-file (string? f) "string" "first" f) + (check-arg 'read-file (file-exists? f) "name of file in program's folder" "first" f) + (list->string + (with-input-from-file f + (lambda () + (let loop () + (define nxt (read-char)) + (if (eof-object? nxt) '() (cons nxt (loop)))))))) + +(define (write-file f str) + (check-arg 'read-file (string? f) "string" "first" f) + (let ([result (not (file-exists? f))]) + (with-output-to-file f + (lambda () (printf "~a" str)) + #:exists 'truncate) + result)) + +(provide + read-file ;; String -> String + ;; read the file f (in current-directory) as a string + + write-file ;; String String -> Boolean + ;; write str to file f (in current-directory); + ;; false, if f exists + ;; true, if f doesn't exist + ) \ No newline at end of file diff --git a/collects/2htdp/universe.ss b/collects/2htdp/universe.ss index 601f08f949..4cbf53f8e8 100644 --- a/collects/2htdp/universe.ss +++ b/collects/2htdp/universe.ss @@ -1,7 +1,7 @@ #lang scheme/gui #| TODO: - -- make window resizable :: why? + -- make window resizable :: why |# (require (for-syntax "private/syn-aux.ss")