以下、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を言う。