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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0806
kamikaze1012バイナリデータの検索10解決


kamikaze1012

リンク

2007/8/6(Mon) 13:49:16|NO.10156

今アイコンを書き換えるツールを作っているんですが、
バイナリデータを検索することができなくて困っています。
instrなどで試してみましたが無理でした。
誰かバイナリデータに詳しい方がいたら教えてください。



この記事に返信する


f

リンク

2007/8/6(Mon) 14:01:33|NO.10158

純粋にデータ同士が一致する場所を探すなら、peekで1文字づつ調べればいいんでね。



Akim

リンク

2007/8/6(Mon) 21:14:30|NO.10170

HSPラウンジを検索すると 大概のことは 解決するかも?

バイナリデータ内を検索をするには?
http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200601/06030052.txt



eller

リンク

2007/8/8(Wed) 07:03:55|NO.10209

HSPラウンジさんのスクリプトで解決できればそれでいいのですが、まだ解決チェックがないということは不十分だったのでしょうか。

マシン語はちょっと敷居が高いのかもと思い、fさんの仰っている方法のサンプルを作ってみました。動作原理が分かりやすいかも知れません。
// 文字列でやっているが、文字列以外のバイナリデータでも原理は同じ。
sTarget = "Hot Soup Processor" // 検索されるバイナリデータ(この中から検索するバイナリデータを探す) sSerch = "oce" // 検索するバイナリデータ // ここから検索処理。 // バイナリデータではstrlenは使えないので、何らかの方法で大きさを調べてください。 repeat strlen( sTarget ) - ( strlen( sSerch ) - 1 ) _cnt = cnt : iResult = cnt repeat strlen( sSerch ) if peek( sTarget, _cnt + cnt ) != peek( sSerch, cnt ) { // peekで1バイトずつ比較する iResult = -1 break } loop if ( iResult >= 0 ) : break // 見つかったので検索終了 loop // 検索処理ここまで。 if ( iResult >= 0 ) { // バイナリデータが見つかった場合 sdim sMarker, strlen( sTarget ) + 1 memset sMarker, ' ', strlen( sTarget ) memset sMarker, '^', strlen( sSerch ), iResult // 見つけた文字列の部分にマークする mes sTarget mes sMarker mes sSerch + "を" + iResult + "バイトめに見つけました。" mes "instr()の結果(" + instr( sTarget, 0, sSerch ) + ")と一緒でしょ?" } else { // バイナリデータが見つからなかった場合 mes "見つかりませんでした。" } stop



f

リンク

2007/8/8(Wed) 07:17:48|NO.10210

絶対、ぷまのBMサーチ出してくる能無しが一人はいると思ったよwww
>HSPラウンジを検索すると 大概のことは 解決するかも?
そういったサイトの紹介 俺は嫌い。
過去にそういった勧め方されてHSP HELP CENTERが崩壊寸前になったことを知らないだろ。
そうやって「ここに質問すれば解決してくれる」目的で書き込まれると迷惑なんだよ。



eller

リンク

2007/8/8(Wed) 08:20:17|NO.10212

> だるだるじゃないfさん
「質問すると」ではなく「検索すると」と仰っていますし、Akimさんはきちんと理解されていると思いますよ。
推測ですが、Akimさんが言いたかったのは「質問前に一度検索してみては」ということなのではないでしょうか。HSPラウンジさんの蓄えていらっしゃる知識・テクニックは量・質ともに素晴らしいものですし、私も質問する前に検索することは間違いなく有用だと思います。
もちろんfさんの危惧も重大な問題ですし、みんなでしっかり気をつけていきたいですね。

話がそれるのは運営上良くない(気がする)ので、この話題はここまでにして、質問者さんの書き込みを待ちましょう。
勝手に仕切って申し訳ないです。m(_ _)m



kamikaze1012

リンク

2007/8/8(Wed) 09:27:02|NO.10218

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



Yoshi

リンク

2007/8/8(Wed) 10:32:31|NO.10220

>過去にそういった勧め方されてHSP HELP CENTERが崩壊寸前になったことを知らないだろ。

fさん>
私は長年 HSPラウンジの管理を お手伝いさして頂いておりますが、
HSPラウンジが崩壊寸前になったという事は過去にも一度もありません。

こういう場で 事実と異なる発言されるのは 大変迷惑ですので
そういう事は やめて下さい。

それから 見ず知らずの方を呼び捨てにするというのは
大変失礼な事です。もう少し礼儀というものをわきまえて下さい。

お願いします。



f

リンク

2007/8/8(Wed) 17:33:02|NO.10223

>Yoshi君
リダイレクトの使い方が違うよ。

サイトの崩壊とは言ってないんだが、も少し細かくいおうか。
HSP HELP CENTERの調和崩壊。

代表的な例を挙げてみよう。
ゆ○とかいう小学生がHSPBBSに初登場。しばらくしてHSP HELP CENTERに漂流。
以来、小学生という立場でずばずば書き込み。
「担任の先生」現れて文章を改める。

ゆ○に続けと言わんばかりに適当な名前・超初歩的な質問・デバッグ依頼の書きこみが増える。

質問とは関係ない雑談スレが立って、激しく論争。
「初心者に優しく」という管理者から回答者へのメッセージを逆手にとった質問者は、
「書き込めば答えを教えてくれる」「書き込めばサンプルを書いてくれる」と信じ、
何を調べて、どこまで出来ていて、何が分からないのか、という情報は不足し、
「どういうわけか○○が△△になってしまいます」という症状だけ言われて、
いきなり「よろしくお願いします」のオンパレード。

アドバイスをしたところで、
「動きません」
「動きました。しかし私がしたいのはこうじゃなくて○○を△△」
100%の回答なんか用意するわけないじゃん、自分でそれくらい調べて考えろよ、
という本音を押し殺して、管理者が望むような調和を維持しようとした俺。

しかし相変わらず質問者は回答者の切なる願いなんかそっちのけ。
本家BBSの悪い流れがHSP HELP CENTERにも及ばなかったとでも?



Akim

リンク

2007/8/9(Thu) 01:37:49|NO.10236

Yoshiさん>
HSP HELP CENTERにまで 飛び火させてしまって
大変申し訳ありません。


ellerさん>
>推測ですが、Akimさんが言いたかったのは
>「質問前に一度検索してみては」ということなのでは

フォロー有り難うございます。
そういう意味も無い事は無いですが、私の回答は このスレッドを
fの回答で終わらせるべきではないと考えたからです。

あとで 同じ疑問を持つ人が 検索したとしても
この掲示板には HSP本家でありながら ろくな情報がない。
見つかるのは 検索しろ、fの ゴミ投稿、初心者的回答。。。
私は質問者のためだけに書き込んだ訳ではありません。

ここを見ている人や あとで検索する人に対しても
BM法という検索アルゴリズムがあるという情報を残したつもりです。

長くなってしまったので このへんで。



f

リンク

2007/8/9(Thu) 16:14:49|NO.10244

>Akim
Akim君の思いは儚くも質問者へ届きません。
BM法というアルゴリズムだって?
肝心のアルゴリズムはマシン語で隠蔽されてんじゃん。
どこがアルゴリズムよ。
探索の原理も分からないような質問者にマシン語が読めるとでも思ったの?
ふっ。今回の俺の意見は正論だな。(▼一▼メ
質問者はAkim君の思いなんか受け止めてないよ。
ただ、リンク先にはpeekで線形探索するよりも高速な探索のできるモジュールがあって、
そのモジュールを使えば誰でもぷま様レベルの高速な探索が出来るんだ、
そう思うだけ。
情報は手にする人によって有益にも無益にもなるんだよ。
だるだるのfは質問者のレベルに合わせた単純なアルゴリズムを教えたんだ。
単純なアルゴリズムを覚えずしてBM法の良さなど分かるわけがない。
うほっ。今日の俺って冴えてない?w(▼一▼メ
>この掲示板には HSP本家でありながら ろくな情報がない。
>見つかるのは 検索しろ、fの ゴミ投稿、初心者的回答。。。
これは聞き捨てならないな。別スレで大々的に取り上げよう。



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