[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: Word Count?
- X-ml-count: 1999
- Subject: Re: Word Count?
- From: chiyu <ma11092c@xxxxxxxxxxxxxxxxx>
- Date: 15 Mar 2000 17:10:40 +0900
- User-agent: Nana-gnus/6.13.9 SEMI/1.13.5 (Meihō) FLIM/1.13.2 (Kasanui) Emacs/20.4 (i386-*-windows98.1998) MULE/4.1 (AOI) Meadow/1.10 (TSUYU)
こんにちは。chiyu@ふくおか、といいます。
Takeshi TAKIYAMA <takiyama@xxxxxxxxxxxxxxxxxxxxxxx> writes:
> 瀧山と申します。いつもお世話になます。
>
> meadow1.10を使用しております。
> meadow上で日本語の文字数をカウントしたり、英語のword数を数えたり
> する方法がありましたら、御教示頂けませんか?
次のようなEmacs-LISPスクリプトで、
領域内の日本語文字数がカウントできると思います。
英語のword数は、正規表現とか使えば、数えることができると
思います。(今は時間がないので、試せませんでした)。
#結果表示は、message関数ではなくて、新しいバッファを作って
#そこに表示した方が、かっこいいかな?
ちなみに
japanese-jisx0208
katakana-jisx0201
とかは、メニューバーから
Mule -> Show All of Mule Status
をクリックすれば一覧が出て来ます。
また、C-u C-x C-= でカーソル位置の文字の情報が得られます。
以上。お元気で。
(defun my-mojisuu (beg end) ;リージョンを指定して、M-x my-mojisuu とする。
(interactive "r") ;リージョンの最初と最後の位置がbegとendに入る。
(save-excursion
(save-restriction
(narrow-to-region beg end) ;編集可能領域をリージョンに制限する。
(let (ch ch-id (ch-count 0))
(goto-char (point-min)) ;バッファの先頭へ
(while (not (eobp)) ;バッファの最後でない間、
(setq ch (following-char)) ;現在位置の文字をchに代入
(setq ch-id (nth 0 (split-char ch))) ;その文字のleading-charcter
(if (eq 'japanese-jisx0208 ch-id) ;その文字がJIS x 0208ならば
(setq ch-count (1+ ch-count))) ;カウンタch-countに1を足す。
(if (eq 'katakana-jisx0201 ch-id) ;その文字が半角仮名でも
(setq ch-count (1+ ch-count))) ;カウンタch-countに1を足す。
(forward-char 1)) ;次の文字へ進む。
(message "文字数は%d" ch-count) ;結果表示。
))))