[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[756] 文字数をカウント(全角文字を2文字)

ありがとうございます [2023/07/04 11:02:58]

いつも便利に使わせていただきありがとうございます。
連続投稿をすみません


https://www.asukaze.net/soft/cassava/bbs/index.cgi?t=69&r=4
こちらの文字数カウントと少し違うのですが

・半角文字を1文字
・全角文字を2文字

としてカウントできるものを作成していただくことは可能でしょうか?

よろしくお願いいたしますm(_ _)m

Re: [756] 文字数をカウント(全角文字を2文字)

ありがとうございます [2023/07/04 15:10:47]

ほしい機能の説明が足りていなくてすみません

文字数と言いますか、バイト数をカウントしたいと思っていまして

・半角文字…1バイト
・全角文字…2バイト
・改行…2バイト

とカウントさせることは可能でしょうか?
よろしくお願いいたしますm(_ _)m

Re: [756] 文字数をカウント(全角文字を2文字)

あすかぜ [2023/07/05 21:25:02]

lenB() 関数を使うと Shift-JIS でのバイト数を取得できます。
ただし、lenB() は改行を 1 文字と数えるので、2 バイトと数えたい場合には改行を 2 文字に置換する必要があります。

[x+1,y] = lenB([x,y].replaceAll("\n", "\r\n"));

とすると現在のセルの Shift-JIS でのバイト数を 1 つ右のセルに出力します。

Re: [756] 文字数をカウント(全角文字を2文字)

ありがとうございます [2023/07/06 09:07:53]

どうもありがとうございます!
期待通りにカウントされました!

1つのセルだけではなく
列全体をカウントする方法はございますでしょうか?

よろしくお願いいたしますm(_ _)m

Re: [756] 文字数をカウント(全角文字を2文字)

あすかぜ [2023/07/06 21:29:13]

次のようなマクロでどうでしょうか。

count = 0;
for (y = 1; y <= Bottom; y++) {
  count += lenB([x,y].replaceAll("\n", "\r\n"));
}
[x+1,Row] = count;

よろしくお願いします。

Re: [756] 文字数をカウント(全角文字を2文字)

ありがとうございます [2023/07/07 09:53:13]

さっそく作っていただきまして、どうもありがとうございます

http://www.asukaze.net/soft/cassava/macro/asukaze/LengthCount/LengthCount.cms

こちらのように、一つ一つのセル(各セル、各行)の隣にそれぞれ カウント表示されるようにしていただくことは可能でしょうかm(_ _)m?

よろしくお願いいたしますm(_ _)m

Re: [756] 文字数をカウント(全角文字を2文字)

あすかぜ [2023/07/07 21:16:54]

その場合は次のようにしてください。

for (y = 1; y <= Bottom; y++) {
  [x+1,y] = lenB([x,y].replaceAll("\n", "\r\n"));
}

「for (y = 1; y <= Bottom; y++) { ... }」は 1 行目から一番下まで処理を繰り返すことを表しています。
[x,y] を使った他のマクロにも応用できるのではないかと思います。
よろしくお願いします。

Re: [756] 文字数をカウント(全角文字を2文字)

ありがとうございます [2023/07/10 09:13:48]

いつもありがとうございます。
期待通動作いたしましたm(_ _)m!

スレッド一覧に戻る返信