こちらでも検証しているのですが、困った事態になっています。というのも、下記のプログラムを実行すると、どうしても同一と判断されてしまうんです。先に、IfやSelectなどの文字列比較はCompareString(lstrcmpと同じ系列)を呼び出すことで実現しているということを言っておきます。
コード:
#N88BASIC
Print lstrcmp("々","ー")
Print lstrcmp("々","―")
こちら、どう見てもバイトコードが違うんで、異なった結果として処理されなければならないと思うんですが、どうもlstrcmpのそれ自体がおかしな計算をしているんでしょうか…。CompareStringに変えて試してみましたが、こちらも同じ結果となってしまいました。
ABのほかに、VCでも同様の検証を行ったのですが、lstrcmp及びCompareStringは同じように間違った答えが返りました(strcmpやmemcmpでは予想通り、「異なる」という値が返りました)。
"々","ー","―"がそれぞれ同じと扱われては困るので、もう少し検証してみます。余談ですが、どうも最近文字コードの不具合によく遭遇します…(何故だ!?)
引用:
そういえば、If文の"ElseIf"がペアステートメントで表示されないんですが、これは表示しないってことで良いんでしょうか?
Else
ElseIf
End If
というように補完機能をだすと、見辛くなるような気がしたので、あえて
Else
End If
のみの表示にしています(個人的な視点から見たものではありますが…)。Elseを補完した後に"If"と打ち込むだけなので、キーボード操作の回数は大差ないという解釈をしたのも理由の一つです。更に付け加えると、プログラムコードによりますが、"ElseIf" の出現率は、"Else" 及び "End If" と比べると低いものだと思います(これも私の経験上の話です…)。
これらの観点から、ElseIfを補完非表示に設定しておりますので、ご了承いただければ幸いです。