Macro/投稿/15
をテンプレートにして作成
Land.to
[
ホーム
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* ワード数カウントマクロ [#z6187d34]
-ページ: [[Macro/投稿]]
-作者: [[堀内悟(豹悟郎)]]
-カテゴリー: ppa
-投稿日: 2004-01-11 (日) 15:46:08
** メッセージ [#d6e0c72e]
#code(pascal){{
// ワード数計算マクロ(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語と...
//語間スペースと--を数えるだけなので英語以外でも使えると...
//"
}}
----
#comment
終了行:
* ワード数カウントマクロ [#z6187d34]
-ページ: [[Macro/投稿]]
-作者: [[堀内悟(豹悟郎)]]
-カテゴリー: ppa
-投稿日: 2004-01-11 (日) 15:46:08
** メッセージ [#d6e0c72e]
#code(pascal){{
// ワード数計算マクロ(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語と...
//語間スペースと--を数えるだけなので英語以外でも使えると...
//"
}}
----
#comment
ページ名: