[xyzzy:03148] Re: テキストの処理について
- Subject: [xyzzy:03148] Re: テキストの処理について
- From: Tetsuya Kamei <kamei@xxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
- X-yzzy-version: 0.0.0.99
CtrlAltDel さん、こんにちは。
Thu, 19 Aug 1999 17:14:25 +0900 の
“[xyzzy:03143] テキストの処理について”
への返事です.
| し、ディレクトリ内のメールのFromとSubjectと本文だけを抜き出し
| て一つのファイルにまとめる、とかいう作業は Lisp でも簡単にで
| きるのでしょうか?
簡単かどうかは分かりませんが、こんな感じでしょう。
(defun foo (dir)
(interactive "Dfoo: ")
(switch-to-buffer "*foo*")
(goto-char (point-max))
(dolist (file (sort (directory dir)
#'(lambda (x y)
(< (parse-integer x) (parse-integer y)))))
(let* ((beg (point))
(end (progn
(insert-file-contents (merge-pathnames file dir))
(point)))
(body (progn
(goto-char beg)
(if (scan-buffer "^$" :regexp t)
(point)
end)))
(headers (mapcar #'(lambda (name)
(goto-char beg)
(and (scan-buffer (concat "^" name ": .*\\(\n[ \t].*\\)*$")
:regexp t :case-fold t :limit body)
(match-string 0)))
'("From" "Subject"))))
(delete-region beg body)
(mapc #'(lambda (x) (insert x "\n")) headers)
(goto-char beg)
(decode-mime-header)
(goto-char (point-max))
(insert "**********************\n")))
(goto-char (point-min)))
| のですが、Lisp ではどうやるのでしょうか?Perlでいうm//(パター
このような場合はまるごとバッファに読み込んでからごにょ
ごにょやる方が楽だし効率的だと思いますが、ものによって
は一文字/一行ずつ読み込むほうがいい場合もあるし。
--
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx/JCA00343@xxxxxxxxxxx