#33..#59, #61..#255ってなんですか?

解決


のど飴  2009-09-08 23:12:05  No: 35618  IP: 192.*.*.*

#33..#59, #61..#255:

ポインタのCase文の中に出てきたんですが。
googleで検索しようとしましたが、’’でくくっても、解釈されるのか、無視されている感じで。
もし、行っていたらお願いいたします。

編集 削除
ぽむぽむ  2009-09-09 08:25:24  No: 35619  IP: 192.*.*.*

アスキーコード
関数で言えば、Chr(33)とか。
16進で書けば
#$21..#$3B
#$3D..#$FF
ということではないかな?

編集 削除
HOta  2009-09-09 08:27:50  No: 35620  IP: 192.*.*.*

Case文はIntegerでないいけません。文字を対象にしたCase文で文字に対する動作をしているのでしょう。ASCIIコード表を見てください。

編集 削除
ぽむぽむ  2009-09-09 10:04:05  No: 35621  IP: 192.*.*.*

> Case文はIntegerでないいけません
case 文は、char 型なら大丈夫ですよ。
下位互換性があると思うので、Delphi 5 で通じるなら、Delphi2009とかも
大丈夫と思うのだけど、新しいの使っていないのでわかりません。

procedure TForm1.Button8Click(Sender: TObject);
var
  c1: Char;
begin
  c1 := Edit1.Text[1];
  case c1 of
    'a'..'z': Button1.Caption := 'OK';
  else        Button1.Caption := 'No';
  end;
end;

ちなみに、Delphi 5 のヘルプには、『7,True,4 + 5 * 3,'A',および
 Integer('A')はすべてケースリストとして使用できる 』というように書かれています。

編集 削除
のど飴  2009-09-10 20:17:09  No: 35622  IP: 192.*.*.*

どうやら記号や、文字のようですね。
googleで検索しにくかったので、大変助かりました。
ありがとうございました。

編集 削除
ググるのもいいけれど  2009-09-10 23:16:59  No: 35623  IP: 192.*.*.*

> googleで検索しにくかったので
付属のヘルプでは調べてみたのでしょうか?
Delphi 6, 7 であれば、キーワード検索すると「#(シャープ記号)」がひっかかって
Object Pascal言語ガイドの「文字列」の説明にとぶようになっています。

編集 削除