EA
無料人口知能外貨分析ダウンロード
●人口知能に新しい、売買シグナルプログラム完成(1300本以上)どれも成績優秀
半間巌先生の運用中EA成績公開中

クロスモジュールコンパイラー(最強コンピュータ言語) version 1.0  昭和63年 MSD DOS用(ターボC言で語記載) 

私が東京都世田谷区下馬一丁目に幼い時に日本ビジネスコンピューター()を自分の家に創業しているが、
クロスモジュールコンパイラーの私の発明は私が0才の時、東京都世田谷区成城町555番地に通常住み、
家に置かれた積木を私が規則正しく積み上げることをして、より正しい安定のあるモジュールに積み重ねて城を作った時に考えが確かに浮かんでいる。
その時代1958年に私がコンピューター言語、クロスモジュールーコンパイラーを考案した歳である 
昭和63年に私が発明した、コンピュータ言語の最強スクリプトを作り性能を調べたところ、世界一番の開発言語と解った古くないが当時、ターボC言語で記載している。
昭和63年に、アメリカの大学300件、国内の大学の500件に概略で同じ物を手紙で発表してある。
ヨーロッパや中国にも、本物のディスクを外国に送り、発表して性格に発表してある。
地球で一番良い、ソフトの理論を明記して発明している。(2007年07月の現在でも、私が発明した、クロスモジュールコンパイラーよりより進んだ言語は開発されていない)

これが当時の理論構成のスクリプトである。(後半が当時のそのままのソースだ)
;☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
00、00、MAIN.TXT改行
 ┃  ┃   ┃┃┃┃┃┃┃┃
 ┃  ┃   ┗┻┻┻┻┻┻┻━━━━━   定義文(コメント)
 ┃  ┗━━━━━━━━━━━━━━━    PAD公文番号 (label,doloop,loop,goto,ongoto,if,pak,file,txt)
 ┗━━━━━━━━━━━━━━━━━━    構造断層ネスト括弧数
;☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
;       dim     4bit  + 28bit                   dim 32bit       sdim 8byt +     247bytMAX  +    255bytMAX 
;       -------------------------               --------        --------        ------------    ---------
;       0       nc      nc                      nc              nc              nc              nc      
;       1       {       jr_cut(0でファイル指定)        ラインアドレス ラインアドレス コメント    nc
;       2       file    fuksa_cut               ラインアドレス ラインアドレス コメント    PGM
;       3       if      fuksa_cut               ラインアドレス ラインアドレス コメント    PGM
;       4       loop    fuksa_cut               ラインアドレス ラインアドレス コメント    PGM
;       5       jmp     fuksa_cut               ラインアドレス ラインアドレス *飛先ラベル名 nc
;       6       label   fuksa_cut               ラインアドレス ラインアドレス *入込ラベル名 nc
;       7       }       優先率                     ラインアドレス ラインアドレス ファイル名   nc
;       8       nc      nc                      nc              nc              nc              nc
;       9       nc      nc                      nc              nc              nc              nc
;       a       nc      nc                      nc              nc              nc              nc
;       b       nc      nc                      nc              nc              nc              nc
;       c       nc      nc                      nc              nc              nc              nc
;       d       nc      nc                      nc              nc              nc              nc
;       e       nc      nc                      nc              nc              nc              nc
;       f       nc      nc                      nc              nc              nc              nc
;------------------------------------------------------------------------------
;       タスクアクセスのサブルーチンの変数書換変数は共用出来ない、使うサブルーチンプログラム事に別に作成する。
;       変数には    1)グローバル名前変数     2)外で効かない名前変数 3)受渡し名前変数
;------------------------------------------------------------------------------
;       int(-2147483647)int(2147483647)        10進整数(32bit)
;       dim((a)(10)(5))                         変数a1,,3,4,5,6,7,8次元配列 a.0.0=1
;       sdim((a)(32)(5))                        変数a32文字までの文字列を5つの要素で扱えます       a.0="test"
;       hex(0)hex(FFFFFFFF)                    16進整数
;       bit(0)bit(111111...)                   2進整数 
;       byt(A)                                  文字コード(1バイト) 
;       str(a)                                  ストリング変数
;       k(1.0)                                  固定小数値
;       f(1.0)                                  単精度浮動小数値 
;       d(1.0)                                  倍精度浮動小数値
;       +,-,*,/,&,|,^,\,<,>                     加算,減算,乗算,除算     論理演算  割算余 左、右方向にビットシフト
;       ==,<<,>>,<=,>=,!=,&&,||                 条件式(同じ,小さい,大きい,同小さい,同大きい,同じでない,,また)  
;------------------------------------------------------------------------------
;       main{}                                  マクロは鍵括弧で記載
;       プログラムから変数を返せるように              a=pgm1()        $a=pgm1()       
;------------------------------------------------------------------------------
;       in(filename)                            別ファイルを結合
;       pgm(label)                              ファイルを実行する
;       go(label)                               指定ラベルにジャンプ
;       do(a==0)                                条件ループの開始
;       lp()                                    ループの始まりに戻る
;       on(n)                                   数字0からnの指定ラベルにジャンプ
;       if((a==n)())                            条件を満たしていればその命令を実行
;       sub(*label)                             指定ラベルにサブルーチンジャンプ
;       ret(n)                                  サブルーチンから復帰
;       wait(n)                                 一定時間待つ(ACTIVE)
;       stop()                                  プログラム中断
;       end()                                   プログラム終了
;------------------------------------------------------------------------------
;16進数から2進数変換、2進数から16進数変換、16進数から10進数変換、10進数から16進数変換を命令に追加すること。
kagikako_check(fi1)
include_tenkai(fi1,fi2);
mov_file_kakononaka(fi2,"main","HANMA1");
mov_file_kakonosoto(fi2,"main","HANMA2");
if(x0==3)
        {
        printf("\nmainプログラムをファイルのHANMA1に転回した。");
        printf("\nヘッダープログラムをファイルのHANMA2に転回した。");
        remove("HANMA0");exit(1);
        }
while((long)sachi_kansu_naiyou_in((long)0,"HANMA1",di0)!=-1)
        {
        if(x0==1)printf("\n00%ld:\t関数名は{%s}です。",k1++,di0);
        mov_file_kakononaka("HANMA1",di0,"HANMA3");
        mov_file_kakononaka("HANMA2",di0,"HANMA4");
        if(x0==1)type_file("HANMA4");
        local_nbr_adr_set("HANMA4");
        ps_nanber_tenkai("HANMA4",(long)save_fukugou("HANMA3"));
        if(x0==1)type_file("HANMA4");
        xmov_file("HANMA1",di0,"HANMA4","HANMA3");
        point_save_file("HANMA3",(long)0,(long)2147483647,"HANMA1");
        }
if(x0!=4){copy_filex("HANMA1","HANMA2");}else{point_save_file("HANMA1",(long)0,(long)2147483647,"HANMA2");}
printf("\n");point_save_file("HANMA2",(long)0,(long)2147483647,fi2);
if(x0==1){for(k0=0;k0<80;k0++)printf("$");type_file(fi2);}
printf("\n\n*** NO ERROR ***\n\n ");
printf("<AREA SIZE>\n\n    SOURCE CODE :  %ld BYTES\n",kunt0);
printf("\n%s SUCCESSFULLY COMPILED\n",fi1);
for(k0=0;k0<30;k0++)
        {stpcpy(s1,"HANMA");ltoa((k0),s2,10);strcat(s1,s2);remove(s1);}
printf("\a\a\a\a\a");
}
;------------------------------------------------------------------------------
;       パーセント ナンバー数のモジュールを 置き換える
;------------------------------------------------------------------------------
ps_nanber_tenkai(char *file1,long kx2)
{
char s1[32],s2[32],s3[32],frag0=0,di1[Mojisu];long kx1,kx3=10;
while((kx1=(long)sachi_ps_nanber(file1))!=-1)
        {
        point_save_file(file1,(long)0,(long)ek0-1,"HANMA0");
        if(kx1<=kx2)
                {
                do      {
                        stpcpy(s1,"HANMA");ltoa(kx1+kx3,s2,10);strcat(s1,s2);
                        sachi_kansu_naiyou_inx((long)0,s1,di1);
                        if(strcmp(di1,"c")==0){frag0=-1;kx3++;}
                        else            {frag0=0;}
                        }while(frag0==-1);
                point_apend_save(s1,(long)0,(long)2147483647,"HANMA0");
                }
        point_apend_save(file1,(long)ek1+1,(long)2147483647,"HANMA0");
        point_save_file("HANMA0",(long)0,(long)2147483647,file1);
        }
}
;------------------------------------------------------------------------------
;       ファイルの ?xxxx番地を 固定(ラベル)番地に変換する。ローカル設定
;------------------------------------------------------------------------------
local_nbr_adr_set(char *file1)
{
char s1[32],s2[32],s3[32];
while((long)jmp_nbr_aruka(file1,s3)!=-1)
        {
        stpcpy(s1,"I");ltoa((jmp_rabel_nab),s2,10);strcat(s1,s2);
        while((long)sachi_file(file1,(long)0,s3)!=-1)
                {
                point_save_file(file1,(long)0,(long)ek0-1,"HANMA0");
                hairetu_file_apend(s1,"HANMA0");
                point_apend_save(file1,(long)ek1+1,(long)2147483647,"HANMA0");
                point_save_file("HANMA0",(long)0,(long)2147483647,file1);
                }jmp_rabel_nab++;
        }
}
;------------------------------------------------------------------------------
;       includeファイルの転換処理
;------------------------------------------------------------------------------
include_tenkai(char *file1,char *file2)
{
point_save_file(file1,(long)0,(long)2147483647,file2);point_save_file(file2,(long)0,(long)2147483647,"HANMA0");
while((long)file_point("include","HANMA0")!=-1)
        {
        point_save_file("HANMA0",(long)0,(long)ek0-1,file2);
        point_name("HANMA0","include",di0);
        if(x0==1)printf("\ninclude{%s}",di0);
        point_apend_save(di0,(long)0,(long)2147483647,file2);
        point_apend_save("HANMA0",(long)ek2+1,(long)2147483647,file2);
        point_save_file(file2,(long)0,(long)2147483647,"HANMA0");
        }
}
;------------------------------------------------------------------------------
;       ファイルの中で 先頭から%sをサーチ、 %sのナンバー数をかえす,なければー1変数を返す
;------------------------------------------------------------------------------
sachi_ps_nanber(char *file1)
{
FILE *from;char s0,stop_frag=0,datx[32];long k0=0,k1=0,k2=0;
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)&&stop_frag!=-1)
        {if(fgetc(from)=='%'){stop_frag=-1;ek0=k2;}else{k2++;}}fclose(from);
if(stop_frag==-1)
        {
        stop_frag=0;if((from=fopen(file1,"r"))==NULL)err_exit(1);
        while(!feof(from)&&stop_frag!=-1)
                {
                s0=fgetc(from);
                if(k0>ek0)
                        {
                        if(!(s0=='0'|s0=='1'|s0=='2'|s0=='3'|s0=='4'|
                             s0=='5'|s0=='6'|s0=='7'|s0=='8'|s0=='9'))
                                 {stop_frag=-1;ek1=k0-1;datx[k1]='\0';}
                        else     {datx[k1++]=s0;}if(k1>=10)stop_frag=-1;
                        }k0++;
                }fclose(from);if(k1<10)return((long)atol(datx));
        }return((long)-1);
}
;------------------------------------------------------------------------------
;       ファイルの中に?xxxx番地の指定コマンドがあるか あれば配列に文字を入れ,変数0を返す。なければー1変数を返す
;------------------------------------------------------------------------------
jmp_nbr_aruka(char *file1,char *datx)
{
FILE *from;char s0=Hspc,s1=Hspc,s2,stop_frag=0,frag0=0;long k0=0,k1=0;
if(access(file1,0)!=-1)
        {
        if((from=fopen(file1,"r"))==NULL)err_exit(1);
        while(!feof(from)&&stop_frag!=-1)
                {
                s2=s1;s1=s0;s0=fgetc(from);
                if(frag0!=-1)
                        {
                        if((s2==Hcr|s2==Htab|s2==Hspc|s2=='{'|s2=='}')&&
                            s1=='?'&& !(s0=='{'|s0=='}'|s0==':'|s0=='%'|
                            s0==Hcr|s0==Htab|s0==Hspc)
                          ){frag0=-1;ek0=k0-2;datx[k1++]=s1;}
                        }
                if(frag0==-1)
                        {
                        if(s0==Hcr|s0==Htab|s0==Hspc|s0==-1|
                           s0==':'|s0==','|s0=='.'|s0=='+'|
                           s0=='-'|s0=='/'|s0=='{'|s0=='}'|k1>=32)
                                {stop_frag=-1;datx[k1]='\0';ek1=k0-1;}
                        else    {datx[k1++]=s0;}
                        }k0++;
                }fclose(from);
        }if(k1>=32)err_exit(4);
if(stop_frag!=-1){return((long)-1);}else{return((long)0);}
}
;------------------------------------------------------------------------------
;       ファイルの関数第1断層を分割コピーする
;------------------------------------------------------------------------------
save_fukugou(char *file1)
{
FILE *from,*to;long k0=0,k1=0,kako=Kakomj;
char s0,s1[15],s2[15],stop_frag=0,frag0=0,frag1=0,frag2=0;
if(access(file1,0)==-1){k0=0;}
else    {
        if((from=fopen(file1,"r"))==NULL)err_exit(1);
        while(!feof(from))
                {
                s0=fgetc(from);if(s0=='{')kako++;if(s0=='}')kako--;
                if(kako==Kakomj&&s0=='}')k0++;
                }fclose(from);
        if(k0==0){k0=1;point_save_file(file1,(long)0,(long)2147483647,"HANMA11");}
        else    {
                if((from=fopen(file1,"r"))==NULL)err_exit(1);
                for(k1=0;k0>k1&&!feof(from);k1++)
                        {
                        kako=Kakomj;frag0=0;frag1=0;frag2=0;
                        stpcpy(s1,"HANMA");ltoa((k1+11),s2,10);strcat(s1,s2);
                        if((to=fopen(s1,"w"))==NULL)err_exit(1);stop_frag=0;
                        while(!feof(from)&&stop_frag!=-1)
                                {
                                s0=fgetc(from);
                                if(s0=='{')kako++;if(s0=='}')kako--;
                                if(kako==Kakomj && s0=='}')stop_frag=-1;
                                if(!(s0==Hcr|s0==Htab|s0==Hspc|s0==-1))frag2=1;
                                if(frag2==1)
                                        {
                                        if((frag0==0&&frag1==0&&s0=='{')|
                                           (frag1==1&&kako==Kakomj&&s0=='}'))
                                                {frag1=1;}
                                        else    {if(s0!=-1)fputc(s0,to);}
                                        frag0++;
                                        }
                                 }fclose(to);
                        }fclose(from);
                }
        }
ltoa(k0,s1,10);hairetu_file(s1,"HANMA10");return((long)k0);
}
;------------------------------------------------------------------------------
;       ファイルの中から指定された関数を捜して サーチした場所の一番最初(ek0)と最後(ek1)にポイント変数を入れる
;       なければー1あれば0変数を返す
;------------------------------------------------------------------------------
file_point(char *stg0,char *file1)
{
FILE *from;char s0,datxx[Mojisu],stop_frag=0;long k0=0,kako=Kakomj;
do      {
        if(sachi_file(file1,(long)k0,stg0)==-1)return((long)-1);k0=ek0-1;
        if((long)sachi_kansu_naiyou_in((long)k0,file1,datxx)==-1)
                return((long)-1);
        k0=ek1+1;
        }while((strcmp(datxx,stg0)!=0));
k0=0;
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from) && stop_frag!=-1)
        {
        s0=fgetc(from);
        if(k0>=ek1){if(s0=='{')kako++;if(s0=='}')kako--;
                    if(s0=='}'&&kako==Kakomj){stop_frag=-1;ek2=k0;}
                   }k0++;
        }fclose(from);return((long)0);
}
;------------------------------------------------------------------------------
;       ファイルの中から ポイントで示す所からc{}以外の関数をサーチして 配列に
;       その関数名を入れる。 なければ ー1 あれば 0変数 を返す
;------------------------------------------------------------------------------
sachi_kansu_naiyou_in(long kk0,char *file1,char *datx)
{
FILE *from;char stop_frag=0,s0,s1=':';long k0=0,k1=0,kako=Kakomj;
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)&&stop_frag!=-1)
        {
        s0=fgetc(from);if(s0=='{')kako++;if(s0=='}')kako--;
        if(k1>=kk0)
                {
                if(s0==Hcr|s0==Htab|s0==Hspc|s0==-1|s0==':'|s0==','
                |s0=='.'|s0=='('|s0==')'|s0=='"'|s0=='{'|s0=='}'|k0>=Mojisu)
                        {k0=0;}
                else    {if(k0==0)ek0=k1;datx[k0++]=s0;datx[k0]='\0';}
                if(!(s0==Hcr|s0==Htab|s0==Hspc|s0==-1))
                        {
                        if(!(s1==':'|s1=='}'|s1=='{')&&s0=='{'&&kako==Kakomj+1)
                                {
                                if(strcmp(datx,"c")!=0)stop_frag=-1;
                                ek1=k1;
                                }
                        s1=s0;
                        }
                }k1++;
        }
fclose(from);
if(stop_frag==-1)
        {return((long)0);}
else    {datx[0]='\0';datx[1]='\0';return((long)-1);}
}
;------------------------------------------------------------------------------
;       ファイルの中からポイントで示す所から 関数をサーチして 配列にその関数名を入れる。 なければ ー1 あれば 0変数 を返す
;------------------------------------------------------------------------------
sachi_kansu_naiyou_inx(long kk0,char *file1,char *datx)
{
FILE *from;char stop_frag=0,s0,s1=':';long k0=0,k1=0,kako=Kakomj;
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)&&stop_frag!=-1)
        {
        s0=fgetc(from);if(s0=='{')kako++;if(s0=='}')kako--;
        if(k1>=kk0)
                {
                if(s0==Hcr|s0==Htab|s0==Hspc|s0==-1|s0==':'|s0==','
                |s0=='.'|s0=='('|s0==')'|s0=='"'|s0=='{'|s0=='}'|k0>=Mojisu)
                        {k0=0;}
                else    {datx[k0++]=s0;datx[k0]='\0';}
                if(!(s0==Hcr|s0==Htab|s0==Hspc|s0==-1))
                        {
                        if(!(s1==':'|s1=='}'|s1=='{')&&s0=='{'&&kako==Kakomj+1)
                                {stop_frag=-1;}
                        s1=s0;
                        }
                }k1++;
        }
fclose(from);
if(stop_frag==-1)
        {return((long)0);}
else    {datx[0]='\0';datx[1]='\0';return((long)-1);}
}
;------------------------------------------------------------------------------
;       ファイルの中で ポイントで示すところから文字をサーチして 見つかった1番先頭
;       (ek0)と 最後(ek1)に 変数を入れる。なければ ー1 あれば0を返す
;------------------------------------------------------------------------------
sachi_file(char *file1,long point1,char *stg0)
{
FILE *from;char stop_frag=0,s0;long k0=0,k1=0,k2=0,sk0[Mojisu];
k1=(long)strlen(stg0);if(k1>=Mojisu)err_exit(5);
for(k2=0;k2<=k1;k2++)sk0[k2]=0;if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)&&stop_frag!=-1)
        {
        s0=fgetc(from);
        if(k0>=point1)
                {
                for(k2=0;(k2<k1)&&(stop_frag!=-1);k2++)
                        {
                        if(s0==stg0[sk0[k2]]){sk0[k2]++;}else{sk0[k2]=0;}
                        if(sk0[k2]==k1) {stop_frag=-1;}
                        }
                }k0++;
        }fclose(from);
if(stop_frag==-1)       {ek1=k0-1;ek0=k0-k1;return((long)0);}
else                    {return((long)-1);}
}
;------------------------------------------------------------------------------
;       ファイルの中でキャラクターで示す 関数カッコの中みだけを配列に入れる
;------------------------------------------------------------------------------
point_name(char *file1,char *namex,char *datx)
{
FILE *from;char stop_frag=0,s0=0;long k0=0, k1=0;
if(((long)file_point(namex,file1))==-1)err_exit(3);
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)&&stop_frag!=-1)
        {
        s0 = fgetc(from);
        if(k1>ek1)
                {
                if(!(s0==Hcr|s0==Htab|s0==Hspc))
                        {
                        if(s0=='}'|k0>=Mojisu)
                                {datx[k0]='\0';stop_frag=-1;}
                        else    {datx[k0++]=s0;}
                        }
                }k1++;
        }fclose(from);
}
;------------------------------------------------------------------------------
;       ファイルの二重crを 一重 処理をして ファイル2にコピー
;------------------------------------------------------------------------------
copy_filex(char *file1,char *file2)
{
point_save_file(file1,(long)0,(long)2147483647,file2);
while((long)sachi_file_cr(file2)!=-1)
        {
        if(x0==0|x0==1|x0==2|x0==3|x0==4)
                {
                point_save_file(file2,(long)0,(long)ek0-1,file1);
                point_apend_save(file2,(long)ek0+1,(long)2147483647,file1);
                }
        if(x0==5)
                {
                point_save_file(file2,(long)0,(long)ek0,file1);
                point_apend_save(file2,(long)ek1+1,(long)2147483647,file1);
                }
        point_save_file(file1,(long)0,(long)2147483647,file2);
        }
}
;------------------------------------------------------------------------------
;       ファイルの二重crを サーチ
;------------------------------------------------------------------------------
sachi_file_cr(char *file1)
{
FILE *from;char s0,stop_frag=0;long k0=0,k1=0;
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)&&stop_frag!=-1)
        {
        s0=getc(from);
        if(k1==2)
                {if(s0==Hcr|s0==Htab|s0==Hspc|s0==-1)   {ek1=k0;}
                  else                                  {stop_frag=-1;}
                }
        else    {
                if(s0==Hcr){if(k1==0)ek0=k0;if(k1==1)ek1=k0;k1++;}
                if(!(s0==Hcr|s0==Htab|s0==Hspc|s0==-1))k1=0;
                }
        k0++;
        }
fclose(from);if(k1!=2){ek1=k0-1;return((long)-1);}else{return((long)0);}
}
;------------------------------------------------------------------------------
;       ファイルの中で 関数で示すプログラム以外を ファイル2に コピーさせる
;------------------------------------------------------------------------------
mov_file_kakonosoto(char *file1,char *namex,char *file2)
{
if((long)file_point(namex,file1)==-1)err_exit(3);
point_save_file(file1,(long)0,(long)ek0-1,file2);
point_apend_save(file1,(long)ek2+1,(long)2147483647,file2);
}
;------------------------------------------------------------------------------
;       ファイルの中で 関数カッコの中みだけをファイル2に入れる
;------------------------------------------------------------------------------
mov_file_kakononaka(char *file1,char *namex,char *file2)
{
if((long)file_point(namex,file1)==-1)err_exit(3);
if(ek1!=ek2-1)  {point_save_file(file1,(long)ek1+1,(long)ek2-1,file2);}
else            {remove(file2);}
}
;------------------------------------------------------------------------------
;       ファイルの中で 指定された関数プログラムと ファイル2を置き返て、ファイル3にコピーする。                                                */
;------------------------------------------------------------------------------
xmov_file(char *file1,char *namex,char *file2,char *file3)
{
if((long)file_point(namex,file1)==-1)err_exit(3);
point_save_file(file1,(long)0,(long)ek0-1,file3);
point_apend_save(file2,(long)0,(long)2147483647,file3);
point_apend_save(file1,(long)ek2+1,(long)2147483647,file3);
}
;------------------------------------------------------------------------------
;       ファイルの内容カギカッコの文法を チェックする
;------------------------------------------------------------------------------
kagikako_check(char *file1)
{
FILE *from;char ska;long kako=Kakomj;
if((from=fopen(file1,"r"))==NULL)err_exit(1);
while(!feof(from)){ska=fgetc(from);if(ska=='{')kako++;if(ska=='}')kako--;}
fclose(from);if(kako!=Kakomj)err_exit(2);
}
;------------------------------------------------------------------------------
;       ファイルの type out
;------------------------------------------------------------------------------
type_file(char *file1)
{
FILE *from;int k0;kunt0=0;
if(access(file1,0)!=-1)
        {
        printf("\n");for(k0=0;k0<80;k0++)printf(".");
        if((from=fopen(file1,"r"))==NULL)err_exit(1);
        while(!feof(from)){putchar(fgetc(from));kunt0++;}
        fclose(from);
        }
}
;------------------------------------------------------------------------------
;       ファイル内容を 配列に入れる
;------------------------------------------------------------------------------
file_hairetu(char *file1,char *datx)
{
FILE *from;
long k0=0;
if(access(file1,0)!=-1)
        {
        if((from=fopen(file1,"r"))==NULL)err_exit(1);
        while(!feof(from))datx[k0++]=fgetc(from);
        fclose(from);
        if(datx[k0-1]==0xff)--k0;
        datx[k0]='\0';
        printf("\ncopy\t%s\t[DIM]",file1);
        }
}
;------------------------------------------------------------------------------
;       配列の内容をファイルに入れる
;------------------------------------------------------------------------------
hairetu_file(char *datx,char *file1)
{
FILE *to;
long k0=0;
if((to=fopen(file1,"w"))==NULL)err_exit(1);
while(datx[k0]!='\0')   fputc(datx[k0++],to);
fclose(to);
printf("\ncopy\t[DIM]\t%s",file1);
}
;------------------------------------------------------------------------------
;       配列の内容をファイルにアペンドする(1aHが後に入ることあり)
;------------------------------------------------------------------------------
hairetu_file_apend(char *datx,char *file1)
{
FILE *to;       long k0=0;
if((to =fopen(file1,"a"))==NULL)err_exit(1);
while(datx[k0]!=0x0)    fputc(datx[k0++],to);
fclose(to);
printf("\napend\t[DIM]\t%s",file1);
}
;------------------------------------------------------------------------------
;       ファイルでポイント1からポイント2で示す内容をファイル2に アペンド
;------------------------------------------------------------------------------
point_apend_save(char *file1,long point1,long point2,char *file2)
{
FILE *from,*to;long k0=0;char s0;
if(access(file1,0)!=-1)
        {
        if((from=fopen(file1,"r"))==NULL)err_exit(1);
        if((to =fopen(file2,"a"))==NULL)err_exit(1);
        while(!feof(from)&&k0++<=point2)
                {s0=fgetc(from);if(k0>point1&&s0!=-1)fputc(s0,to);}
        fclose(from);fclose(to);
        printf("\napend_%ld_%ld\t%s\t%s",point1,point2,file1,file2);
        }
}
;------------------------------------------------------------------------------
;       ファイルで示すポイント1からポイント2までの内容をファイル2にコピー
;       (最後の1aHが有るときデーターとして入るので、注意)
;------------------------------------------------------------------------------
point_save_file(char *file1,long point1,long point2,char *file2)
{
FILE *from,*to; long k0=0;char s0;kunt0=0;
if(access(file1,0)!=-1)
        {
        if((from=fopen(file1,"r"))==NULL)err_exit(1);
        if((to =fopen(file2,"w"))==NULL)err_exit(1);
        while(!feof(from)&&k0++<=point2)
                {s0=fgetc(from);if(k0>point1&&s0!=-1){fputc(s0,to);kunt0++;}}
        fclose(from);fclose(to);
        if(kunt0>Dmax)err_exit(7);
        printf("\ncopy_%ld_%ld\t%s\t%s",point1,point2,file1,file2);
        }
}
;------------------------------------------------------------------------------

[PR]≪占い奇跡の恋愛術≫初回無料:幸せな結婚へ導きます。本格結婚鑑定