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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0825
サンダーボルト文字列検索がよくわかりません17未解決


サンダーボルト

リンク

2014/8/25(Mon) 21:49:18|NO.64268


sdim name,5 name="aaa\n" s=instr(name,0,"a") mes ""+s+""
です。3と表示されるはずなのに・・・



この記事に返信する


Flat

リンク

2014/8/25(Mon) 21:54:38|NO.64269

マニュアルはご覧になりましたか?
標準のスクリプトエディタに「instr」とご入力いただき、
F1キーをお押しいただくとマニュアルがご覧になれます。
今一度、ご確認ください。



サンダーボルト2

リンク

2014/8/25(Mon) 22:20:28|NO.64271

ご覧になりましたが、\nをのけても、変わりませんよ。0のままです。



あり

リンク

2014/8/25(Mon) 22:28:34|NO.64272

instrは一回しか使われていないのですから
最初のaのインデックスである0が表示されるのは正しい結果です。
少なくともinstrではその文字列から直接3という数字は絶対に出ません。

instrは指定したインデックスから検索して
見つかった『最初の文字のインデックス』を返す関数ですが
それでなぜ文字数が取得できると思ったのでしょう?



Flat

リンク

2014/8/25(Mon) 22:29:32|NO.64273

本当にご覧になりましたか?
もし、マニュアルの内容で意味がご不明な点等ございましたら、このスレッドにてご質問願います。



サンダーボルト

リンク

2014/8/25(Mon) 22:59:11|NO.64280

え?
ぼくは、nameはaaa
でaが3つ、検索するのはaということはaは3つなので3になるんじゃないんですか?



fortunehill

リンク

2014/8/25(Mon) 23:08:00|NO.64281

/*ご参考(目的が個数なら下記で)*/


name="aaa" split name,"a",ss mes stat-1



サンダーボルト

リンク

2014/8/25(Mon) 23:59:47|NO.64282

個数目的じゃないです。
サンプルですので
nameはabcaでもいいです。この場合2と表示されると思うのですが?



kanahiron

リンク

2014/8/26(Tue) 00:13:28|NO.64283

インデックスの意味わかってますか?



サンダーボルト

リンク

2014/8/26(Tue) 00:51:01|NO.64288

・・・たぶんわかってないです



あり

リンク

2014/8/26(Tue) 00:58:12|NO.64289

>個数目的じゃないです。
>サンプルですので
>nameはabcaでもいいです。この場合2と表示されると思うのですが?
この場合instrだけで求められる可能性のある数値は0か3しかないのですが
aの数(個数)を求めたいのでもないと言うのなら
この2という数字は何を指すものなのでしょう?

くどいようですが
instrで取得できるのは『量・数』ではなく『位置・場所(インデックス)』ですよ。



MonoChrome

リンク

2014/8/26(Tue) 10:31:57|NO.64302

サンダーボルト兇気鵑呂そらく「文字列1のなかに文字列2が何個含まれているか」を取得したいのではないかと思います。
以下のスクリプトでは変数"文字列"の中に含まれている「テスト」という文字列の数をカウントしています。

	文字列 = "文字列検索テストです\n文字列内の\"テスト\"の数を調べます"
文字列数 = 0 検索開始インデックス = 0 repeat インデックス = instr(文字列, 検索開始インデックス, "テスト") if インデックス = -1 : break 検索開始インデックス += インデックス+1 文字列数 += 1 loop mes 文字列+"\n\n結果 "+文字列数


>>ありさん
2というのは「abca」に含まれる「a」の数の事だと思います。



mamo

リンク

2014/8/26(Tue) 11:18:06|NO.64303

>nameはabcaでもいいです。この場合2と表示されると思うのですが?
ここで「2」がかかる表現に個数を含まないものは存在する?



あり

リンク

2014/8/26(Tue) 11:23:33|NO.64305

>>MonoChromeさん
>2というのは「abca」に含まれる「a」の数の事だと思います。

私もそう思っていましたし、aの数を求めるのが目的なら
fortunehillさんのスクリプトで問題ないはずなのですが
個数が目的ではないと本人が仰っていますので
齟齬を無くす為に真意を確認しています。



サンダーボルト

リンク

2014/8/26(Tue) 14:39:28|NO.64307

みなさんありがとうございます。言い方が悪かったようですみません。
ぼくは、ある文字列の中に検索する文字が何個あるかが変数に代入されるんじゃないかと思っていたんですが
違うのでしょうか?



あり

リンク

2014/8/26(Tue) 15:21:47|NO.64314

助言やサンプルを確認もせずに、自分の思い込みだけで
同じ事を繰り返している人にこれ以上伝えられる言葉は何一つありませんよ
必要な情報は既に全て出ているのですから自分で確認してください。



mamo

リンク

2014/8/26(Tue) 16:34:12|NO.64319

NO.64289の
>instrで取得できるのは『量・数』ではなく『位置・場所(インデックス)』ですよ。
これを理解しましょう。
「a」がいくつあろうとも、一番初めに見つけた「a」の『位置・場所(インデックス)』を返します。
「abcda」なら一番左の「a」の場所 = 0



ZAP

リンク

2014/8/26(Tue) 18:34:10|NO.64326

インデックス(index)
元々の単語の意味は「索引、目録」という意味ですね。

コレに限らずプログラムにおいては英語力、日本語力がある程度必要とされる場面があります。
判らない言葉はその都度、yahooの辞書でもいいので面倒くさがらずに調べて、
意味を理解するようにするのが後々のためにも有効です。

あと、「人の話に聞く耳を持つ」というのも大人になるまでに付けておいたほうが役に立つスキルです。
これができない大人になってしまうと、本人も廻りも悲惨です。



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