お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE:RE^2:文字変数の比較を簡単に"

この発言は
#00936 kiima さんのRE^2:文字変数の比較を簡単に
に対するコメントです

この発言に対し以下のコメントが寄せられています
#00938 T. Kawanishi さん RE^4:文字変数の比較を簡単に

kiimaさん、こんにちは。 なるほど、表参照の方が速いですね。でも、一回だけ呼び出すときには かえって遅いので、値の初期化をコンパイル時に済ませてしまうと若干速 くなるはずですね。 function func5(ch : char):boolean; const AncTable : array[#0..#255] of boolean = (false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, true ,true ,true ,true ,true ,true ,true ,true , true ,true ,false,false,false,false,false,false, false,true ,true ,true ,true ,true ,true ,true , true ,true ,true ,true ,true ,true ,true ,true , true ,true ,true ,true ,true ,true ,true ,true , true ,true ,true ,false,false,false,false,false, false,true ,true ,true ,true ,true ,true ,true , true ,true ,true ,true ,true ,true ,true ,true , true ,true ,true ,true ,true ,true ,true ,true , true ,true ,true ,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false, false,false,false,false,false,false,false,false); begin result := AncTable[ch]; end; うみゅ、若干速くするだけのためにここまでするかなぁ(^^;)。せめて、 true,false を 1,0 と短く書きたい。型キャストを使う手もあるけれど、 脱線ついでに禁断の absolute を使って、 function func6(ch : char):boolean; const AncTableByte : array[0..255] of byte = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); var AncTableBool : array[#0..#255] of boolean absolute AncTableByte; begin result := AncTableBool[ch]; end; 簡潔さとスピードは両立しないんでしょうかね(^^;)。 ひの Original document by ひの 氏 ID:(GFD03044)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum