お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"ASCIIコード表の配列"

この発言に対し以下のコメントが寄せられています
#00730 寅次 さん 文字列中の Ctrl Code を SPC へ
#00731 寅次 さん バイナリー or テキストファイル判定

 集合型を使った ASCII コード配列です。  initialization で _CharArray 配列に setCharType 集合型を  入れておき、プログラム内では CharType 関数で取り出します。 ctNotSFN in CharType( '=' )  といった使い方をします。  配列の並び方はたぶんコレであってると思いますが  もしも「ここがおかしいぞ」とお気づきの方は 教えてください。 unit CharArr; interface type sCharType = ( ctCtrl, //コントロールコード ctSpc, //SPC,改行,TAB ctNum, //数字(0-9) ctHex, //16進(0-9,A-F,a-f) ctAlpha, //アルファベット ctPun, //記号 ctKanji1, //SJIS1文字目 ctKanji2, //SJIS2文字目 ctKana, //カタカナ ctNotSFN, //SFN不可文字 ctNotLFN //LFN不可文字 ); setCharType = set of sCharType; function CharType(c: char): setCharType; (* c の文字コードを setCharType で返す *) implementation var _CharArray : array [0..$ff] of setCharType; function CharType(c: char): setCharType; begin result := _CharArray[ Ord( c ) ]; end; var i : integer; initialization for i:=0 to 8 do _CharArray[i] :=[ ctCtrl, ctNotSFN, ctNotLFN ]; for i:=9 to $0d do _CharArray[i]:=[ ctCtrl, ctSpc, ctNotSFN, ctNotLFN ]; for i:=$0e to $1f do _CharArray[i] :=[ ctCtrl, ctNotSFN, ctNotLFN ]; {i:=$20} _CharArray[$20]:=[ ctSpc, ctNotSFN ]; {i:=$21} _CharArray[$21]:=[ ctPun ]; {i:=$22} _CharArray[$22]:=[ ctPun, ctNotSFN, ctNotLFN ]; for i:=$23 to $29 do _CharArray[i] :=[ ctPun ]; {i:=$2a} _CharArray[$2a]:=[ ctPun, ctNotSFN, ctNotLFN ]; for i:=$2b to $2c do _CharArray[i] :=[ ctPun, ctNotSFN ]; {i:=$2d} _CharArray[$2d]:=[ ctPun ]; for i:=$2e to $2f do _CharArray[i] :=[ ctPun, ctNotSFN, ctNotLFN ]; for i:=$30 to $39 do _CharArray[i] :=[ ctNum, ctHex ]; {i:=$3a} _CharArray[$3a]:=[ ctPun, ctNotSFN, ctNotLFN ]; {i:=$3b} _CharArray[$3b]:=[ ctPun, ctNotSFN ]; {i:=$3c} _CharArray[$3c]:=[ ctPun, ctNotSFN, ctNotLFN ]; {i:=$3d} _CharArray[$3d]:=[ ctPun, ctNotSFN ]; for i:=$3e to $3f do _CharArray[i] :=[ ctPun, ctNotSFN, ctNotLFN ]; {i:=$40} _CharArray[$40]:=[ ctPun, ctKanji2 ]; for i:=$41 to $46 do _CharArray[i] :=[ ctAlpha, ctKanji2, ctHex ]; for i:=$47 to $5a do _CharArray[i] :=[ ctAlpha, ctKanji2 ]; {i:=$5b} _CharArray[$5b]:=[ ctPun, ctKanji2, ctNotSFN ]; {i:=$5c} _CharArray[$5c]:=[ ctPun, ctKanji2 ]; {i:=$5d} _CharArray[$5d]:=[ ctPun, ctKanji2, ctNotSFN ]; for i:=$5e to $60 do _CharArray[i] :=[ ctPun, ctKanji2 ]; for i:=$61 to $66 do _CharArray[i] :=[ ctPun, ctKanji2, ctHex ]; for i:=$67 to $7a do _CharArray[i] :=[ ctAlpha, ctKanji2 ]; {i:=$7b} _CharArray[$7b]:=[ ctPun ]; {i:=$7c} _CharArray[$7c]:=[ ctPun, ctNotSFN, ctNotLFN ]; for i:=$7d to $7e do _CharArray[i] :=[ ctPun ]; {i:=$7f} _CharArray[$7f]:=[ ctCtrl ]; {i:=$80} _CharArray[$80]:=[ ctKanji2 ]; for i:=$81 to $9f do _CharArray[i] :=[ ctKanji1, ctKanji2 ]; {i:=$a0} _CharArray[$a0]:=[ ctKanji2 ]; for i:=$a1 to $df do _CharArray[i] :=[ ctKana, ctKanji2 ]; for i:=$e0 to $fc do _CharArray[i] :=[ ctKanji1, ctKanji2 ]; for i:=$fd to $ff do _CharArray[i] :=[ ctCtrl ]; end. (PXC07042) - とらじ - Original document by 寅次 氏 ID:(PXC07042)



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

Copyright 1996-2002 Delphi Users' Forum