|
全角・半角の変換メニューが期待の動作をしない
メッセージ
1.5.15.0以降とそれ以前で動作が異なりますので,ご注意ください.
- 1.5.15.0以降
- 全角英数→半角英数:英数字+英数記号
- 半角英数→全角英数:英数字+英数記号
- 全角カタカナ→半角カタカナ:カナ文字+カナ記号
- 半角カタカナ→全角カタカナ:カナ文字+カナ記号
- 1.5.14.0以前
- 全角英数→半角英数:英数字のみ
- 半角英数→全角英数:英数字+英数記号
- 全角カタカナ→半角カタカナ:カナ文字のみ
- 半角カタカナ→全角カタカナ:カナ文字+カナ記号
これらの理由のため古いマクロが期待をしない場合や,ご自分で独自の変換ルールを利用したい場合は,サンプルを参考に変換マクロを用意してください.
過去ログなどのサンプル
英数字のみ全角→半角(ppa)
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
| // 旧S_ToHanEi()の代替例
// 実行後、選択範囲は解除されます
var
sZen, sHan, sSrc :String;
iPos, iLoop, iLen :Integer;
begin
sZen := '0123456789'
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ 'abcdefghijklmnopqrstuvwxyz';
sHAN := '0123456789'
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
sSrc := S_GetSelectedString(0);
iLoop := 1;
iLen := Length(sSrc);
repeat
begin
iPos := pos(Copy(sSrc, iLoop, 2), sZen);
if (iPos > 0) then
begin
sSrc := Copy(sSrc, 1, iLoop-1)
+ Copy(sHan, (iPos shr 1)+1, 1)
+ Delete(sSrc, 1, iLoop+2-1);
iLen := iLen - 1;
end;
iLoop := iLoop + 1;
end;
until (iLoop > iLen);
S_InsText(sSrc);
end;
|
英数字のみ全角→半角(js)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| | var sZen = '0123456789'
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ 'abcdefghijklmnopqrstuvwxyz';
var sHan = '0123456789'
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var sSrc = GetSelectedString(0);
var iLen = sSrc.length;
for(iLoop = 0; iLoop < iLen; iLoop++){
iPos = sZen.indexOf(sSrc.charAt(iLoop));
if(iPos>-1){
sSrc = sSrc.substring(0,iLoop) + sHan.charAt(iPos) + sSrc.substring(iLoop+1);
}
}
InsText(sSrc);
|
カナ文字のみ全角→半角(js)
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
| |
var sHan1 = 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン';
var sZen1 = 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテト'
+ 'ナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン';
var sZen1 = 'ァアィイゥウェエォオカキクケコサシスセソタ'
+ 'チッツテトナニヌネノハヒフヘホマミ'
+ 'ムメモャヤュユョヨラリルレロヮワヰヱヲンヵヶー';
var sHan1 = 'ァアィイゥウェエォオカキクケコサシスセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワワイエヲンカケー';
var sZen2 = 'ガギグゲゴザジズゼゾダヂヅデドバビブベボヴ';
var sZen3 = 'パピプペポ';
var sHan2 = 'カキクケコサシスセソタチツテトハヒフヘホウ';
var sHan3 = 'ハヒフヘホ';
var sSrc = GetSelectedString(0);
var iLen = sSrc.length;
for(iLoop = 0; iLoop < iLen; iLoop++){
iPos = sZen1.indexOf(sSrc.charAt(iLoop));
if(iPos>-1){
sSrc = sSrc.substring(0,iLoop) + sHan1.charAt(iPos) + sSrc.substring(iLoop+1);
}
}
for(iLoop = 0; iLoop < iLen; iLoop++){
iPos = sZen2.indexOf(sSrc.charAt(iLoop));
if(iPos>-1){
sSrc = sSrc.substring(0,iLoop) + sHan2.charAt(iPos) + '゙' + sSrc.substring(iLoop+1);
iLen++;
}
iPos = sZen3.indexOf(sSrc.charAt(iLoop));
if(iPos>-1){
sSrc = sSrc.substring(0,iLoop) + sHan3.charAt(iPos) + '゚' + sSrc.substring(iLoop+1);
iLen++;
}
}
InsText(sSrc);
|
- もう少し,各マクロの種類ごとに準備した方がよいかも.やや暫定レベルな内容ですが とりあえず. -- maru
|
|