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 }