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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0916
ion検索したい文字が何行目にあるかを知りたい3解決


ion

リンク

2011/9/16(Fri) 00:42:56|NO.41374

RPGのマップデータを作る時に印となる文字列を作って
エディタでデータを書き込むときの目印にしたいです。
その印が何行目にあるかがわかれば
メモリノートパッド機能で簡単に書き換えたり
挿入したりする事ができると思うのですが、
肝心の印が何行目にあるかを上手く求める方法が思いつきません。
今のところinstr命令を使って改行コードと求めたい印の
インデックス値を比較するという方法で求めているのですが、
変数を4つも使ってちょっと回りくどい気がします。
これをもうちょっと上手く求める方法はないでしょうか。
参考までに今使っているコードを載せておきます。

	s="0000000\n000000000\n000000\nt\n00000\n000000000"
repeat a=instr(s,a,"\n") b=instr(s,0,"t") if n>b : break n+=a a+=2 c++ loop stop



この記事に返信する


晩御飯

リンク

2011/9/16(Fri) 00:56:24|NO.41375

s="0000000\n000000000\n000000\nt\n00000\n000000000"
split s, "\n", results foreach results r = instr( results(cnt), 0, "t" ) if r != -1 : mes "" + r + ", " + (cnt+1) loop
よく分からなかったけど、4行目と出ればいいんでしょうか。



ion

リンク

2011/9/16(Fri) 01:07:12|NO.41376

>晩御飯さん

すみません!肝心なことを書きわすれてました。
仰るとおりサンプルではtを探したかったので
4と言う数字を求めたかったのでした。
split命令を使った事がなかったので思いつきませんでしたが
晩御飯さんのサンプルであればinstrが1ループ1回で済んですっきりしますね。
説明下手ですみませんでした。ありがとうございました。



Lisa

リンク

2011/9/16(Fri) 21:38:33|NO.41401

> 1ループ1回で済んですっきりしますね。

すっきりだけなら、

s="0000000\n000000000\n000000\nt\n00000\n000000000" a = strmid(s, 0, instr(s,0, "t")) split a, "\n", c mes length(c)
こんなのも



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