FrontPage

[#ref:file not found:ExifTags.xlsx]
[#ref:file not found:exif_tags.csv]

以下、CSVからDelphiのソースを生成するスクリプト

場所=""
タグ=""
タイプ=「」
名前=「」
個数=「」
名前定数=「」
重複=「」
「exif_tags.csv」を開く
CSV取得
反復
  #
  V=「{対象\1}」の「0x」を「$」に置換
  場所に(「F_{対象\0}」)を配列追加
  タグに(V)を配列追加
  名前に(「'{対象\2}'」)を配列追加
  タイプに(タイプチェック(対象\3))を配列追加
  個数に(INT(対象\4))を配列追加
  もし、重複@V=1ならば、続ける
  重複@V=1
  名前定数=名前定数&「  EXIFTAG_{対象\2}={V};」&改行

F場所=場所を「,」で配列結合
Fタグ=タグを「,」で配列結合
F名前=名前を「,{改行}」で配列結合
Fタイプ=タイプを「,」で配列結合
F個数=個数を「,」で配列結合
C=場所の要素数

「
unit unit_exif_taglist;
interface
const
  F_IFD0   = 0;
  F_SubIFD = 1;
  F_IIFD   = 2;
  F_IFDx   = 3;
const
  F_EXIF_PLACE: array[0..{C-1}]of Integer = ({F場所});
  F_EXIF_TAG  : array[0..{C-1}]of Integer = ({Fタグ});
  F_EXIF_TYPE : array[0..{C-1}]of Integer = ({Fタイプ});
  F_EXIF_COUNT: array[0..{C-1}]of Integer = ({F個数});
  F_EXIF_NAME : array[0..{C-1}]of String = ({F名前});
const
{名前定数}

implementation
end.
」を「unit_exif_taglist.pas」へ保存
終わる。

●タイプチェック(T)
    T=Tを小文字変換
  それは100
  もし、T=「unsigned byte」ならば、それは1
  もし、T=「ascii strings」ならば、それは2
  もし、T=「ascii string」ならば、それは2
  もし、T=「unsigned short」ならば、それは3
  もし、T=「unsigned long」ならば、それは4
  もし、T=「unsigned short/long」ならば、それは4
  もし、T=「unsigned rational」ならば、それは5
  もし、T=「signed byte」ならば、それは6
  もし、T=「undefined」ならば、それは7
  もし、T=「signed short」ならば、それは8
  もし、T=「signed long」ならば、それは9
  もし、T=「short or long」ならば、それは9
  もし、T=「signed rational」ならば、それは10
  もし、T=「single float」ならば、それは11
  もし、T=「double float」ならば、それは12
  #
  もし、それ=100ならば
    Tを言う。