HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0817
けーぼー置き換え8解決


けーぼー

リンク

2007/8/17(Fri) 21:11:43|NO.10473

hsp初心者です。
変数に「ひらがな、カタカナ、漢字」が含まれていたらその文字を
1文字1文字半角の[ a ]に置き換えるにはどうしたらいいですか御願いします。

(例) 実行前 ○△□ = "あア亜" 実行後 ○△□ = "aaa"



この記事に返信する


eller

リンク

2007/8/17(Fri) 21:34:50|NO.10475

「ひらがな・カタカナ・漢字」の判定は難しいですが、もう少し広げて「全角文字」にすれば容易に判定できます。ヘルプの「HSP3文字列のひみつ」にある「日本語文字列のしくみ」をご覧ください。

置き換えは「HSP 置換」等のキーワードで検索すればすぐに見つかります。このBBSの過去ログも参考になるでしょう。



けーぼー

リンク

2007/8/17(Fri) 21:59:31|NO.10477

難しいですねぇ。。。難しい用語がいっぱい。。。
変数にいくつ全角文字があるか求めるにはどうすればいいのでしょうか?



eller

リンク

2007/8/17(Fri) 22:41:35|NO.10480

> 難しい
文字列操作にはある程度の慣れと知識が必要になります。とはいえ決して難解なジャンルではないので、簡単なスクリプトを組みながら慣れていけばOKです。

> 変数にいくつ全角文字があるか求める
もっとも簡単なのはループを使って求めることでしょう。

target = "この文字列に'何文字全角文字が含まれているのか'を調べます。" len = strlen( target ) mes target repeat len p = peek( target, cnt ) if (( 129 <= p ) & ( p <= 159 )) | (( 224 <= p ) & ( p <= 252 )) { // targetのcntバイト目は全角文字の1バイト目である count++ continue cnt + 2 } loop mes "全角文字は" + count + "文字ありました。" mes "ちなみに長さが" + len + "バイトですので、半角文字は" + ( len - count * 2 ) + "文字ある計算になります。" stop



けーぼー

リンク

2007/8/17(Fri) 22:50:04|NO.10481

ありがとうございました。



D

リンク

2007/8/17(Fri) 22:58:27|NO.10483

解決済みのようですが一応

a = "1あ2ア3亜4" b = strlen (a) c = "" repeat b d = strmid (a, cnt, 1) cnvstow code, d if code { c + d } else { c + "a" continue cnt + 2 } loop a = c mes a



GENKI

リンク

2007/8/18(Sat) 00:16:19|NO.10484

文字列操作ってなれないと難しいですよね。理解してても…。

とりあえず参考資料どうぞ。
http://hspwiki.tm.land.to/?String%2F%B2%FE%B9%D4#o681c775



begriff -いくす-

リンク

2007/8/18(Sat) 12:08:20|NO.10493

hspに正規表現があったらな〜って思ったりするのは自分だけ…?



eller

リンク

2007/8/18(Sat) 16:11:08|NO.10498

COMを使えば正規表現(RegExp)による検索・置換は可能ですよ。
付属サンプルのcomobj/comtest8.hspおよびcomtest9.hspをご覧ください。



ONION software Copyright 1997-2023(c) All rights reserved.