(発言者削除)No.01148
ENCODINGSHIFTJIS さん 00/03/06 20:04
 


[ ]
RE:01148 文字列比較の ignore caseNo.01155
安久津 さん 00/03/07 17:38
 

>同値性比較は case sense で
>大小比較は case ignore なのですか?
どうなんでしょ。(^^;

// 私は、メーラー(Outlook Express)で発言しています。
// 機種依存文字は勝手に変換されてしまいます。
// これを回避するために、「compareChar」の引数は文字コードを指定しています。
  call compareChar "\x48","\x63";   // "H","c" // (1)
  call compareChar "\x82\x67","\x82\x83"; // "H","c" // (2)
  call compareChar "\x83\x4A","\x83\x95"; // "カ","ヵ" // (3)
  call compareChar "\x83\xA1","\x83\xC1"; // "Γ","γ" // (4)
  call compareChar "\x83\xA2","\x83\xC1"; // "Δ","γ" // (5)
  call compareChar "\x81\xE3","\x87\x95"; // "√","√" // (6)
  call compareChar "\xEE\xEF","\xFA\x40"; // "@","@" // (7)
endmacro;
compareChar:
  $$op[0] = " < ";
  $$op[1] = " == ";
  $$op[2] = " > ";
  $$op[3] = " 比較不能 ";

  if( $$1 < $$2 ) ##asString = 0;
  else if( $$1 == $$2 ) ##asString = 1;
  else if( $$1 > $$2 ) ##asString = 2;
  else ##asString = 3;

  ##c1 = ascii($$1); ##c2 = ascii($$2);
  if( ##c1 < ##c2 ) ##asCharCode = 0;
  else if( ##c1 == ##c2 ) ##asCharCode = 1;
  else if( ##c1 > ##c2 ) ##asCharCode = 2;
  else ##asCharCode = 3;

  $$mi[0] = "<< 文字の比較 >>";
  // 上の選択アイテムを設けて、以下を見やすくする。
  $$mi[1] = "文字列\t" + $$1 + $$op[##asString] + $$2;
  $$mi[2] = "文字コード\t" + $$1 + $$op[##asCharCode] + $$2;
  if( ##asString == ##asCharCode ) $$mi[3] = "同じ";
  else $$mi[3] = "違うじゃん!";
  $$mi[4] = "&M 終り ( ESC )";
  menuarray $$mi,5;
return;
// 終り。

参考:会議室 2、発言 04191、題名 RE 04185 だぶりの削除のダブり
Ssort32.exe では、B < a や カ < ヵ になります。やっぱ文字コード順。

ではでは。

[ ]
RE:01155 文字列比較の ignore caseNo.01161
ENCODINGSHIFTJIS さん 00/03/08 11:15
 
演算子のヘルプに「辞書引き順」と書いてなかった
だけのようです。"A"=="a" をやりたくてあわててしまいました。
Gー

[ ]