皆さんこんばんは。
下記のコードで、上3のメッセージが6・6・2となるのはどういう理由から
でしょうか?
私の通常使用するVBAで、InStr(1, InStr, "¥")で試しても全て0でした。
よろしくお願い致します。
procedure TForm1.FormClick(Sender: TObject);
var
InStr: string;
begin
InStr := '井上香緒里著';
ShowMessage(IntToStr (Pos('¥', InStr)));
InStr := '井上香緒';
ShowMessage(IntToStr (Pos('¥', InStr)));
InStr := '香緒';
ShowMessage(IntToStr (Pos('¥', InStr)));
InStr := '緒';
ShowMessage(IntToStr (Pos('¥', InStr)));
InStr := '緒里';
ShowMessage(IntToStr (Pos('¥', InStr)));
end;
井上香緒里著 は
88,E4, 8F,E3, 8D,81, 8F,8F, 97,A2, 92,98
¥は
81,8F
そして1文字ずつ比較しているので
88,E4, 8F,E3, 8D,81, 8F,8F, 97,A2, 92,98
~~~~~~
ここに一致するので6が返ってくる
WideStringかAnsiPos使えば 0 が返ってくる
~~~~~~
ずれてるな
KHE00221 さん、こんばんは。
回答ありがとうございます。
何らかの理由でずれが出ているとは思いましたが、こういうことだったん
ですね。
>WideStringかAnsiPos
私の用途だと、AnsiPosがいいみたいですので、変換かけて使用することに
します。
ありがとうございました。
ツイート | ![]() |