C/400を使用しているとIFSファイルを扱う機会が多いが IFSの大半は ASCII 形式で保管されている。
ちょっとしたデータの比較などに EBCDIC変換などを行っていたのでは面倒だし、レスポンスも低下する。
パフォーマンスに優れたC言語を使用している意味がない。ここでは簡単にASCIIデータの比較などを
行う方法について紹介する。
#pragma convert(850) から "pragma convert(0) までのあいだの固定値はASCII コードであると
コンパイラーにみなされるのである。
以下に示すサンプル・コードでの文字列「ABC」はEBCDICコードでなく ASCIIコード として解釈される。
よって data にもしASCII コードが保管されている場合もこの比較に使用することができる。
0001.00 #include <stdio.h> 0002.00 #include <stdlib.h> 0003.00 #include <string.h> 0004.00 0005.00 #define TRUE 0 0006.00 #define FALSE -1 0007.00 0008.00 void main(void){ 0009.00 char data[128]; 0010.00 0011.00 #pragma convert(850) 0012.00 if(strncmp(data, "ABC", 3) == 0){ 0013.00 #pragma convert(0) 0014.00 printf("ASCII found\n"); 0015.00 } 0016.00 getchar(); 0017.00 }