文字数の勘定法No.09409
やまぐ さん 01/08/06 20:42
 
始めまして。
原稿作成に利用させていただいています,オジンです。

難しいことには使っていないのですが,
どうでしょうか,秀丸で文字数の勘定をする場合は
どうするのでしょうか。
いま何文字書いたかが知りたいのです。調整しながら
書くんですね。

どなたかご存知でしたら教えてください。
金一封贈呈,したいのはやまやま。
よろしくお願いします。

[ ]
RE:09409 文字数の勘定法No.09410
TAKA さん 01/08/06 21:44
 
TAKA です。

>どうでしょうか,秀丸で文字数の勘定をする場合は
>どうするのでしょうか。

以下のようなマクロでどうでしょうか?

// マクロ(ここから)
    #X = x;
    #Y = y;
    gofiletop;
    #Count = 0;
    while( code != eof )
    {
        #Code = code;
        if( ( #Code == 0 ) || ( #Code == 0x0D ) )
        { // 改行以降 or 改行
            moveto 0, y + 1;
            continue;
        }
        else if( #Code == 0x09 )
        { // タブ
        }
        else if( ( #Code == 0x20 ) || ( #Code == 0x8140 ) )
        { // 空白
        }
        else
        { // 通常文字
            #Count = #Count + 1;
        }
        right;
    }
    moveto #X, #Y;
    message str( #Count ) + "文字です。";
    endmacro;
// マクロ(ここまで)

[ ]
RE:09410 文字数の勘定法No.09411
TAKA さん 01/08/06 22:17
 
TAKA です。

>>どうでしょうか,秀丸で文字数の勘定をする場合は
>>どうするのでしょうか。
>
>以下のようなマクロでどうでしょうか?

範囲選択している場合は、その部分だけをカウントしたいと思いま
すので、以下のようなマクロの方が良さそうです。

// マクロ(ここから)
    if( selecting )
    { // 範囲選択
        copy2;
    }
    else
    {
        #X = x;
        #Y = y;
        selectall;
        copy;
        moveto #X, #Y;
    }

    // カウント対象を別の秀丸へ貼り付けてそこでカウント。
    #FH = hidemaruhandle( 0 );
    openfile "/h";
    #TmpFH = hidemaruhandle( 0 );
    paste;
    call Count;
    #Count = ##return;

    setactivehidemaru #FH;
    closehidemaruforced #TmpFH;

    message str( #Count ) + "文字です。";

    endmacro;

Count:
    gofiletop;
    ##Count = 0;
    while( code != eof )
    {
        ##Code = code;
        if( ( ##Code == 0 ) || ( ##Code == 0x0D ) )
        { // 改行以降 or 改行
            moveto 0, y + 1;
            continue;
        }
        else if( ##Code == 0x09 )
        { // タブ
        }
        else if( ( ##Code == 0x20 ) || ( ##Code == 0x8140 ) )
        { // 空白
        }
        else
        { // 通常文字
            ##Count = ##Count + 1;
        }
        right;
    }
    return ##Count;
// マクロ(ここまで)

[ ]
RE:09411 文字数の勘定法No.09414
やまぐ さん 01/08/07 11:04
 
マ,マクロですね。(あーっ,内緒のため息)
ありがとうございました。
おじさん,勉強しますぅ。

[ ]
RE:09411 文字数の勘定法No.09415
ひろ さん 01/08/07 12:32
 
 TAKA さん今日は、ひろです。
> >>どうでしょうか,秀丸で文字数の勘定をする場合は
> >>どうするのでしょうか。
> >
> >以下のようなマクロでどうでしょうか?
 後はやまぐさんの使用方法によると思いますが、句読点や括弧などの記号
をどういった扱いにするかですね。この辺りを詳しく書かれるとより正確な
マクロを TAKA さんが作成して下さると思います(^^)。→やまぐさん

[ ]
RE:09415 文字数の勘定法No.09416
TAKA さん 01/08/07 13:08
 
TAKA です。

> 後はやまぐさんの使用方法によると思いますが、句読点や括弧などの記号
>をどういった扱いにするかですね。この辺りを詳しく書かれるとより正確な
>マクロを TAKA さんが作成して下さると思います(^^)。→やまぐさん

やまぐさんに言われる前に、先に対応しておきます。

「Count:」以降を以下の内容に差し替えて下さい。
$$Tbl = "  ,。、"の部分にカウント対象外にしたい文字を羅列す
れば、それらはカウントの対象外になります。

// 差し替え分(ここから)
Count:
    $$Tbl = "  ,。、";     // カウント対象外文字テーブル
    gofiletop;
    ##Count = 0;
    while( code != eof )
    {
        ##Code = code;
        if( ( ##Code == 0 ) || ( ##Code == 0x0D ) )
        { // 改行以降 or 改行
            moveto 0, y + 1;
            continue;
        }
        else if( ##Code == 0x09 )
        { // タブ
        }
        else if( strstr( $$Tbl, char( ##Code ) ) != -1 )
        { // カウント対象外文字
        }
        else
        { // 通常文字
            ##Count = ##Count + 1;
        }
        right;
    }
    return ##Count;
// 差し替え分(ここまで)

[ ]