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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
| | // 範囲選択中の文字数を表示する
// TAB=4
// 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに ppa.dll を入れておいてください。
// マクロファイルの拡張子は .PPA でなくてはなりません。
// エディタウィンドウにて選択中の文字列の
// ・文字サイズ(バイト数)
// ・文字数(半角文字・全角文字をそれぞれ1文字ずつとしてカウントした値)
// ・改行数
// をダイアログに表示します。
var
CRLF,CR,LF:String; // 文字列変数を用意
str:String; // 文字列変数を用意
byte:Integer; // 整数数値変数を用意
mess:String; // 文字列変数を用意 ダイアログに表示する文字列
num:Integer; // 文字数をカウントする 整数数値変数を用意
han,zen:Integer; // 全角文字の文字数
n_crlf,n_cr,n_lf:Integer; // 各改行コードの数
nl:Integer; // 改行コードの総数
pt:Integer; // 調査時のポインタ(もどき)の 整数数値変数を用意
tmp1,tmp2:String; // 調査時の作業用の 文字列変数を用意
isknj:Integer; // 漢字かどうかのフラグの 整数数値変数を用意
begin
// 文字列変数 CRLF に改行を格納する
CRLF := '
';
CR := Copy(CRLF,1,1);
LF := Copy(CRLF,2,1);
str := S_GetSelectedString(0); // 選択部分の文字列を str に格納する。
byte := Length(str); // 文字列のサイズ(バイト数)を整数数値変数 byte に格納する。
// 文字数を数える。
num := 0; // 全文字数 = 0;
zen := 0; // 全角文字数 = 0;
han := 0; // 半角文字数 = 0;
n_crlf := 0; // CRLF改行の数 = 0;
n_cr := 0; // CR 改行の数 = 0;
n_lf := 0; // LF 改行の数 = 0;
pt := 1; // 調査用のポインタ(もどき)
while ( pt <= byte ) do
begin
tmp1 := Copy(str,pt,1); // ポインタ(もどき)位置から1バイト取得し、tmp2 に格納する
tmp2 := Copy(str,pt,2); // ポインタ(もどき)位置から2バイト取得し、tmp2 に格納する
isknj := 0; // 「2バイト文字ではない」にしておく。
if ( (' ' <= tmp2) and (tmp2 <= '滌') ) then isknj := 1; // 2バイト文字である
if ( ('漾' <= tmp2) and (tmp2 <= '
|