From 0906036fb143aa215888ac06841ed268fdd57c2c Mon Sep 17 00:00:00 2001 From: erana Date: Mon, 30 Jan 2012 10:47:50 +0900 Subject: [PATCH] hexbinascii --- scsh/scratch/hexbinascii.scm | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 scsh/scratch/hexbinascii.scm diff --git a/scsh/scratch/hexbinascii.scm b/scsh/scratch/hexbinascii.scm new file mode 100644 index 0000000..4d8685f --- /dev/null +++ b/scsh/scratch/hexbinascii.scm @@ -0,0 +1,38 @@ +;;; scratch.scm - a scheme utility library +;;; +;;; Copyright (c) 2011-2012 Johan Ceuppens +;;; +;;; All rights reserved. +;;; +;;; Redistribution and use in source and binary forms, with or without +;;; modification, are permitted provided that the following conditions +;;; are met: +;;; 1. Redistributions of source code must retain the above copyright +;;; notice, this list of conditions and the following disclaimer. +;;; 2. Redistributions in binary form must reproduce the above copyright +;;; notice, this list of conditions and the following disclaimer in the +;;; documentation and/or other materials provided with the distribution. +;;; 3. The name of the authors may not be used to endorse or promote products +;;; derived from this software without specific prior written permission. +;;; +;;; THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +;;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +;;; OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +;;; IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, +;;; INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +;;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +;;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +;;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(define in (open-input-file "./avatar.png")) +(define out (open-output-file "./avatar.ascii")) +(let ((contents "")) + (do ((i 0 (+ i 1)) + (c (read-char in)(read-char in))) + ((eof-object? c) + contents) + (cond ((>= i 77)(set! i 0)(display (string #\newline) out)) + (else + (display c out)))))