And,Or をstring型で使うには?

解決


KK  2003-08-23 11:42:14  No: 4462

EXEファイルにD&Dされたファイルの拡張子を判別するために、

If ExtractFileExt(ParamStr(1)) = ".jpg" And ".jpeg" then
....

としたいのですが、どうやらAndやOrはString型では使えないらしく、エラーになります。String型でAndやOrと同じことをするには、どうすればよいでしょうか?


KK  2003-08-23 11:44:01  No: 4463

修正です。
""は''の間違いです。


たかみちえ  URL  2003-08-23 15:47:07  No: 4464

二つの条件は別々のものとして扱われます。
If ExtractFileExt(ParamStr(1)) = ".jpg" And ".jpeg" then
ではなく
If ExtractFileExt(ParamStr(1)) = ".jpg" And ExtractFileExt(ParamStr(1)) = ".jpeg" then
としてあげてください(ちょっと面倒ですけど)
ところで上記の式は絶対にtrueにならないような気がしますけど…。

  ちなみにorはわたしが作っているユニット、stdStringsにあるifor関数が使えます。
この関数を使えば、
If ExtractFileExt(ParamStr(1)) = ".jpg" or ExtractFileExt(ParamStr(1)) = ".jpeg" then
という文を、
If ifor(ExtractFileExt(ParamStr(1)), ".jpg", ".jpeg") then
という文にまとめられます。
どうも挙動がおかしい(実際に動くときに問題があるわけではなく、コンパイル時に文句が多い…)ですけど。


にしの  2003-08-23 18:15:10  No: 4465

たしか、=よりもAndの方が優先度が高かったと思います。
なので、

If (ExtractFileExt(ParamStr(1)) = '.jpg') Or (ExtractFileExt(ParamStr(1)) = '.jpeg') then
ですね。
ちなみに、OrでなくAndだと絶対に通りません。


たかみちえ  URL  2003-08-23 19:11:25  No: 4466

ああ、そうでした。ごめんなさいm(__)m
にしのさんの言うとおりです。


KK  2003-08-24 05:11:22  No: 4467

ありがとうございました。
ぜひ今から試してみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加