[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08328] Re: ( Lisp 勉強法(文字コードを使用して文字テーブル(?))



こんばんわ、chiyu@ふくおか、といいます。

> これをJIS X 0208(日本語JIS 2byteコード)でするには、
> my-insert-char-tableの部分をもうちょっと
> 考えてループを回さないといけないです。

いきあたりばったりに考えてみました。
ただし、EUCコードになります。
Shift-JISの番号で出力させるには、
もっといろいろと考えないといけないみたいです。
(これも、今後の課題、ということで。)

(defun my-insert-char-table-2 (fn)
  (save-excursion
    (do ((x #xa1a0 (+ x #x10)))
	((>= x #xffa0) t)
      (insert (format nil "~4,'0x: " x))
      (dotimes (y #x10)
	(if (= (mod (+ x y) #x100) #xa0)
	    (insert "  ")
	  (if (= (mod (+ x y) #x100) #xff)
	      (progn
		(insert "  ")
		(setq x (+ x #xa0)))
	    (insert (funcall fn (+ x y))))))
      (insert #\LFD))))

(defun my-insert-jisx0208-char-table ()
  (interactive)
  (my-insert-char-table-2 #'my-code-jisx0208-char))

(defun my-code-jisx0208-char (code)
  (iso-code-char code :jisx0208))

(defun my-insert-ks-char-table ()
  (interactive)
  (my-insert-char-table-2 #'my-code-ks-char))

(defun my-code-ks-char (code)
  (iso-code-char code :ksc5601))

Index Home