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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0927
抹茶文字列の操作について6解決


抹茶

リンク

2009/9/27(Sun) 15:48:29|NO.28010

文字列について質問なのですが例えば

a="3255a9c8" という文字列を
a="235589ac" の様にソートしたい場合はどうすればよいでしょうか?

notesel命令とsortnote命令でソートという形がベストでしょうか?
あと文字列内の削除で

b="1235abccccfh" という文字列の中から「c」を2個だけ削除したい場合は
どうすればよいでしょうか?
strtrim命令だと「c」を削除したい場合全て対象になってしまうので…。
はやりこちらもnotesel命令を使う形になるのでしょうか?

よろしくお願いします。



この記事に返信する


通りすがり

リンク

2009/9/27(Sun) 17:34:07|NO.28011

sortnote使わない方法を考えてたらこんなのが出来ました。


a="3255a9c8" dim bucket,256 repeat strlen(a) bucket(peek(a,cnt))++ loop num=0 repeat 256 if bucket(cnt)>0 { cnt2=cnt repeat bucket(cnt) poke a,num,cnt2 num++ loop } loop mes a

半角だけじゃないと動きませんけどね。
sortnote使った時との速度の比較はしてません。



シモン

リンク

2009/9/28(Mon) 01:44:44|NO.28017

文字削除に関しては、正規表現(RegExp)を使った置換および検索モジュールをどうぞ
http://scripttpircs.seesaa.net/article/112296780.html



ANTARES

リンク

2009/9/28(Mon) 02:33:30|NO.28018

 データ数8なら最小値選択ソートで十分(私にはバブルソートより簡単)

a="3255a9c8" mes "a="+a l=strlen(a) i=0 repeat l-1 d=peek(a,i) repeat l-1-i,i+1 c=peek(a,cnt) if c<d { poke a,cnt,d d=c } loop poke a,i,d i++ loop mes "a="+a stop



ANTARES

リンク

2009/9/28(Mon) 02:52:14|NO.28020

>b="1235abccccfh" という文字列の中から「c」を2個だけ削除したい場合は
>どうすればよいでしょうか?
 strmidで必要なものだけ抜き出して結合します。



SYAM

リンク

2009/9/28(Mon) 09:59:09|NO.28021

>2個だけ削除したい場合

1個だけ削除を2回する...



抹茶

リンク

2009/9/28(Mon) 20:55:02|NO.28028

皆様、回答ありがとうございます。
皆様の色々な回答に「なるほど!」ただただ感心するばかりです!

またつまづいた時にはよろしくお願いします。
本当にありがとうございました。



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