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)) 変数aは1,2,3,4,5,6,7,8次元配列 a.0.0=1
; sdim((a)(32)(5)) 変数aは32文字までの文字列を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);
}
}
;------------------------------------------------------------------------------
|