RPG であればレコードを外部定義として配列でオーバーレイ定義してLOOKUP で分割を繰り返すことができます。以下はテストはしていませんがサンプルとして作成したソースです。また C/400 であれば、strtok いう分割用の関数がありますのでもっと簡単になります。RPG から分割対象のフィールドのポインターをパラメータとして渡せば、この C/400 を使って項目を取り出すことができます。【PPG サンプル: TESTTOK 】http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QRPGLESC.FILE/TESTTOK.MBR-----------------------------------------------------------------------------------------------0001.00 H DFTNAME(TESTTOK) DATEDIT(*YMD/) 0002.00 F******** 項目の分割 ************************************************** 0003.00 FDATAFL IF E K DISK 0004.00 F********************************************************************** 0005.00 D DDS001 E DS EXTNAME(DATAFL) 0006.00 D VAR 1 1024 0007.00 D DIM(1024) 0008.00 D CRLF S 1B 0 INZ(X'00') 0009.00 D LEN S 4S 0 0010.00 C Z-ADD 1 M 4 0 0011.00 C DO *HIVAL 0012.00 C CRLF LOOKUP VAR(N) 50 0013.00 C *IN50 IFEQ *ON 0014.00 C SUB 1 N 0015.00 C EVAL LEN = N - M + 1 0016.00 C LEN SUBST DDS01:M ITEM 256 0017.00 C N ADD 2 M 0018.00 C ELSE 0019.00 C LEAVE 0020.00 C END 0021.00 C END-----------------------------------------------------------------------------------------------【C/400 サンプル: TESTTOK】http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QCSRC.FILE/TESTTOK.MBR-----------------------------------------------------------------------------------------------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 int main(int argc, char *argv[]){ 0009.00 char* str; 0010.00 char* tokenPtr; 0011.00 0012.00 memcpy(str, argv[1], 16); 0013.00 tokenPtr = strtok(str, 0x05); 0014.00 while(tokenPtr != NULL){/*while*/ 0015.00 printf("tokenPtr = %sn", tokenPtr); 0016.00 tokenPtr = strtok(NULL, 0x05); 0017.00 }/*while*/ 0018.00 } -----------------------------------------------------------------------------------------------