[リストへもどる]
一括表示

投稿時間:2003/09/02(Tue) 08:27
投稿者名:フリーダム
Eメール:
URL :
タイトル:
InStr関数について
InStr関数について相談があります。およそ5KB程度のテキストファイルをバイナリでオープンし
strBinData As String *10060なる変数に書き込んでそこからある文字列をInStr関数で見つけるのですが
あるテキストファイルのみヒット位置のずれが起こります。正常に動作するファイルと内容は殆ど変わらないのですが…。
InStr関数のバグ?なのでしょうか?何かわかるようでしたら教えてください。
宜しくお願いします。

投稿時間:2003/09/02(Tue) 09:40
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re: InStr関数について
> InStr関数について相談があります。およそ5KB程度のテキストファイルをバイナリでオープンし
> strBinData As String *10060なる変数に書き込んでそこからある文字列をInStr関数で見つけるのですが

どんなコードでどういうふうにデータを読み込んでいるのでしょう?
この説明ではわかりませんので、読み込んでいる部分のコードを提示してください。

> あるテキストファイルのみヒット位置のずれが起こります。正常に動作するファイルと内容は殆ど変わらないのですが…。

ほとんど変わらないとありますが、期待する結果になるファイルも期待しない結果になるファイルも
あなたしか知らないわけで、どう違うのかこの投稿を読んでいる人にはわかりません。
どう違うのか調べて提示して下さい。
テキストファイルといっても英数字だけのファイルもあれば、日本語まじりのものもあるでしょうし、
文字コードだってSJISとは限りませんし。

> InStr関数のバグ?なのでしょうか?何かわかるようでしたら教えてください。

まずは御自身のコードを疑って下さい。

投稿時間:2003/09/02(Tue) 10:02
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: InStr関数について
> InStr関数について相談があります。およそ5KB程度のテキストファイルをバイナリでオープンし

バイナリで開いているなら、InStrB関数を試してみるとか。

投稿時間:2003/09/02(Tue) 10:08
投稿者名:匿名
Eメール:
URL :
タイトル:
Re: InStr関数について
> InStr関数のバグ?なのでしょうか?

原因が分からない状態なのに、
「 InStr 関数のバグ」っていう発言はしない方が良いですよ。
# バグなのか仕様なのかということは置いといて、
バグであることが確実ならば、別に構いませんが、
バグではなく自分のコードなどに問題があった場合、
『 InStr 関数』の作成者(この場合 Microsoft かな)に失礼かと思います。

投稿時間:2003/09/02(Tue) 11:46
投稿者名:フリーダム
Eメール:
URL :
タイトル:
Re: InStr関数について
回答ありがとうございました。
どうやら、まずいファイルは半角英数字と全角文字が混じってずれてしまっていた模様です。
Instr関数は半角・全角関係無しに1文字と見なしてしまうんでしたよね…。
やはり、ここはInstrB関数を使わないとまずいでしょうか?

投稿時間:2003/09/02(Tue) 13:54
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^2: InStr関数について
> やはり、ここはInstrB関数を使わないとまずいでしょうか?

まずいかどうかは貴方が判断するところ。

でもInStrBだけではInStrを使ってるのとあんまり変わらないと思います(Unicodeなので)。
StrConvを併用してください。