Macro/投稿/15

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F15


Top > Macro > 投稿 > 15

ワード数カウントマクロ

  • ページ: Macro/投稿
  • 作者: 堀内悟(豹悟郎)?
  • カテゴリー: ppa
  • 投稿日: 2004-01-11 (日) 15:46:08

メッセージ

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
// ワード数計算マクロ(EWCount.ppa)--スペース+ダッシュVer
// 2004.1.7 堀内悟(豹悟郎)作成
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに 
// PPA.DLL を入れておいてください。
// また、マクロファイルの拡張子は .PPA でなくてはなりません
 
var
 WordC,DC: Integer; //ワード数, ダッシュ数
 p,d : Integer;  //(空白, ダッシュ)の文字列内位置
 StrLen : Integer;  //選択文字列長
 Str,tmpStr : String; //選択文字列, 調査中現行文字列
 SPC,DSH : String;          //シングルスペース, ダッシュ
 
//処理の流れ
//文字列内の空白の位置を調べる、空白があればワード数を1増
//文字列先頭からその位置までを削除→tmpStrに格納
//tmpStrをTrim+Deleteで加工、先頭に戻る
//空白なし→ループ終了
//ダッシュ'--'についても同様のループ
//最後にダッシュの分を語数に足す
 
begin
 Str := Trim(S_GetSelectedString(0));
 StrLen := Length(Str);
 WordC := 0;
 SPC := ' ';
 DSH := '--';        //em dash
 tmpStr := Str;
 
if StrLen = 0 then
begin
 MessageBox('文字が選択されていません。', 'エラー',0);
 Exit;
end;
 
p := Pos(SPC, tmpStr);
 
while (p <> 0) do
begin
 p := Pos(SPC, tmpStr);        //空白の位置を調べる
 if p = 0 then Break;
 WordC := WordC + 1;
 tmpStr := Trim(Delete(tmpStr, 1, p));  //先頭から空白まで削除
end;
 
//ダッシュ数計算
 tmpStr := Str;        //検査対象文字列を復元
 d := Pos(DSH, tmpStr);
 
while (d <> 0) do
begin
 d := Pos(DSH, tmpStr);        //ダッシュの位置を調べる
 if d = 0 then Break;
 DC := DC + 1;
 tmpStr := Trim(Delete(tmpStr, 1, d+1));        //先頭からダッシュまで削除
end;
 
//語数集計
WordC := WordC+1+DC;
MessageBox(IntToStr(WordC) + '語です。', '計算結果',0);
end
 
//注 後続語がないダッシュ(例: 会話文末の「--"」)も1語とみなす
//語間スペースと--を数えるだけなので英語以外でも使えると思います
//"


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2006-07-29 (土) 23:38:07 (4282d)