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

[xyzzy:03144] Re: テキストの処理について



"CtrlAltDel" <t68017@xxxxxxxxxxxxxxxxxxxxx> さん、こんにちは。masahito です。

| リンクをたどって赤塚さんと逸見さんのマニュアルをダウンロー
|ド、 ML の過去ログもダウンロードしました。これから目を通しま
|すが、過去ログが3000件以上あるので全部目を通すには時間
|がかかりそうです。やっと500件ほど読みましたが・・・うーん、先
|は長いなぁ。

ご苦労様です^^;

| 過去ログを整理しようと思い、 Perl でスクリプトを組み始めた
|のですが Perl ではディレクトリ内のファイル全てを調べる(つい
|でにソートする)のに
|
|  opendir(work_dir,"ディレクトリのパス");
|  @file_list = readdir(work_dir);
|  closedir(work_dir);
|  @file_list = sort @file_list;
|
|としてファイルのリストを作成しましたが、 Lisp のリファレン
|ス(逸見さんのところからダウンロードしたやつ)によれば、
|
|  (sort (directory "ディレクトリのパス") #'string<)
|
|でわずか一行ですんでしまうのですね。なんか凄く Lisp のほう
|がシンプルな感じですね。正規表現もサポートされているみたいだ
|し、ディレクトリ内のメールのFromとSubjectと本文だけを抜き出し
|て一つのファイルにまとめる、とかいう作業は Lisp でも簡単にで
|きるのでしょうか?

うーん、私も知りたい^^;

やり方としては2通りあると思います。
1)CommonLisp風に、ごしごしやる。
  C言語でfopen/fclose/fgetsってありますよね。
  あれでやるような感じ。
 1行ずつ取り出したのを文字列として処理します。
2)Editorのマクロで、ごしごしやる
  ファイルを開く、
 適当に置換とか、削除とかする。
 ファイルをSAVEする



reference.txt の3711行目あたりのコレ
■ファイル操作
(defun find-modify-save-test (file)
  (interactive "f")
  (let (temp-buffer)
    (unwind-protect
        (progn
          ;; テンポラリのバッファを作って
          (setq temp-buffer (create-new-buffer "*foo*"))
          ;; カレントバッファにして
          (set-buffer temp-buffer)
          ;; ファイルを読み込む
          (insert-file-contents (merge-pathnames file *src-dir*))
          (goto-char (point-min))
          ;; ここでいろいろやる

          ;; ファイルに書く
          (write-file (merge-pathnames file *dst-dir*)))
      ;; バッファを作っていたら消す(kill-bufferはうるさいのでdelete-bufferで)
      (when temp-buffer
        (delete-buffer temp-buffer)))))


| ファイル操作はなんとなく分かったのですが、テキスト(文字列)
|の処理の仕方がいまいち良く分かりません。Perlでは一行
|ずつ読み込んで、ヘッダとかの要らない部分を除くようにしていた
|のですが、Lisp ではどうやるのでしょうか?Perlでいうm//(パター
|ンマッチ)とかs///(パターンマッチ&置換)に当たるものがあるの
|でしょうか?

scan-buffer
■perform-replace
■replace-string
このあたりかなーー


良いサンプルコードができらた「脳たりんプロジェクト」に登録させて
ください  m(_ _)m
http://www.netlaputa.ne.jp/~henmi/notarin/index.html

私の個人的な、覚書なのですが。・・・のーみそ不足してますもんで(笑)
PERLも募集しております。さっぱりわからん>PERL
------------------------------------------------------------
逸見雅人    Masahito Henmi  henmi@xxxxxxxxxxxxx
♪あなたの願いも仕事もうまくいきますように・・・

Index Home