📄 tran_acc.ec
字号:
scanw("%hd",&j); if(j<1) break; move(20,28); if(j>i) { printw("序号太大, "); mess((short)2); continue; } else if(j==i) { i++; d=0; x=0.0; } else { fseek(pf,j*12,0); fread(&d,4,1,pf); fread(&x,8,1,pf); } addspace(20); move(11,10); addstr("帐 号:"); move(11,48); prt_inum(d,9); move(13,10); addstr("金 额:"); move(13,48); prt_dnum(x,16); move(11,22); c=readdv(&sum,9); if(c==10) d=sum; move(11,22); addspace(10); move(11,48); prt_inum(d,9); move(13,22); c=readdv(&sum,13); if(c==10) x=sum; move(13,22); addspace(14); move(13,48); prt_dnum(x,16); fseek(pf,j*12,0); fwrite(&d,4,1,pf); fwrite(&x,8,1,pf); } fseek(pf,12,0); sum=0.0; while(1) { fread(&d,4,1,pf); fread(&x,8,1,pf); if(feof(pf)) break; sum+=x; } fseek(pf,4,0); fwrite(&sum,8,1,pf); fclose(pf); break; case 6: move(2,29); addstr("转 存 帐 户 目 录"); move(3,29); addstr("======================"); pf=fopen("/u/ebcsav/data/tran_sec.dat","r"); while(1) { move(5,10); addstr("请输入单位编号( 0 返回) "); scanw("%hd",&sec_num); move(20,30); if(sec_num<1) break; fseek(pf,(sec_num-1)*24,0); fread(s,24,1,pf); if(feof(pf)||s[0]=='\0') { printw("该单位不存在, "); mess(2); } else break; } fclose(pf); if(sec_num==0) break; move(7,10); addstr("请输入营业部门编号( 0 返回) "); scanw("%hd",&i); s_num[0]=i; if(i<1) break; move(9,10); addstr("请输入储蓄类型( 0-返回, 1-人民币活期, 2-人民币零存整取): "); scanw("%hd",&t); if(t<1) break; move(4,0); clrtobot(); block(1,0,22,80); move(4,15); s[24]='\0'; printw("单位编号: %3d 单位名称: %s",sec_num,s); strcpy(s,"/u/ebcsav/data/tran001.dat"); s[19]=sec_num/100+48; s[20]=(sec_num%100)/10+48; s[21]=(sec_num%10)+48; pf=fopen(s,"r"); fseek(pf,4,0); fread(&sum,8,1,pf); i=0; l=6; j=2; move(5,2); printw("序号 帐 号 户 名 金 额 序号 帐 号 户 名 金 额 "); while(1) { fread(&d,4,1,pf); fread(&x,8,1,pf); if(feof(pf)) break; a_num=d; if(t==1) { $ select name into $nam from r_demand where sec_num=$s_num and acc_num=$a_num; } else { $ select name into $nam from r_dated where sec_num=$s_num and acc_num=$a_num; } if(sqlca.sqlcode!=0) strcpy(nam,"(不存在)"); i++; move(l,j); printw("%3d ",i); prt_inum(d,9); printw(" %-8s ",nam); prt_dnum(x,13); l++; if(j==2&&l==22) { j=40; l=6; } else if(j==40&&l==22) { move(23,30); addstr("暂停显示, "); mess((short)4); getch(); l=6; j=2; move(6,0); clrtobot(); block(1,0,22,80); } } move(23,23); addstr("全部显示, 合计"); prt_dnum(sum,16); addstr("元. "); mess((short)3); getch(); fclose(pf); break; case 8: move(2,16); addstr("从 软 盘 以 编 码 方 式 装 入 转 存 帐 户 信 息"); move(3,16); addstr("==============================================="); pf=fopen("/u/ebcsav/data/tran_sec.dat","r"); while(1) { move(5,10); addstr("请输入单位编号( 0 返回) "); scanw("%d",&sec_num); move(20,30); if(sec_num<1) break; fseek(pf,(sec_num-1)*24,0); fread(s,24,1,pf); if(feof(pf)||s[0]=='\0') { printw("该单位不存在, "); mess(2); } else break; } fclose(pf); if(sec_num==0) break; addspace(28); move(7,10); s[24]='\0'; printw("单位名称: %s",s); move(20,20); printw("是否装入 (Y/N)? "); c=y_n('Y','N','N'); if(c=='Y') { strcpy(s,"doscp b:tran001.txt /u/ebcsav/tmp"); s[12]=sec_num/100+48; s[13]=(sec_num%100)/10+48; s[14]=(sec_num%10)+48; move(20,20); addstr("请将软盘片插入 B: 驱动器, "); mess((short)4); getch(); move(20,20); addspace(40); if(system(s)!=0) { addstr("读软盘出错, "); mess((short)3); getch(); break; } strcpy(s,"/u/ebcsav/data/tran001.dat"); s[19]=sec_num/100+48; s[20]=(sec_num%100)/10+48; s[21]=(sec_num%10)+48; pf=fopen(s,"w"); strcpy(s,"/u/ebcsav/tmp/tran001.txt"); s[18]=sec_num/100+48; s[19]=(sec_num%100)/10+48; s[20]=(sec_num%10)+48; pf1=fopen(s,"r"); fseek(pf,12,0); i=0; sum=0.0; while(1) { fscanf(pf1,"%10s%lf",s2,&x); move(10,10); printw("编号: %10s 金额: %f",s2,x); if(feof(pf1)) break; strcpy(s,"/u/ebcsav/data/num_acc001.dat"); s[22]=sec_num/100+48; s[23]=(sec_num%100)/10+48; s[24]=(sec_num%10)+48; if((pf2=fopen(s,"r"))==NULL) { move(15,15); printw("无 %d 单位编码对照表!",sec_num); getch(); move(15,15); printw(" "); break; }; bz=0; while(1) { fread(s1,10,1,pf2); fread(&d2,4,1,pf2); /* fscanf(pf2,"%10s%ld",s1,&d2);*/ if(feof(pf2)) { bz=1; break;} move(15,15); if((d=strcmp(s1,s2))==0) break; /* printw(" s1=%10s ",s1); printw(" s2=%10s d=%d",s2,d); getch();*/ } fclose(pf2); if(bz==1) { move(15,15); printw("无编码 %10s 对照关系",s2); getch(); move(15,15); printw(" "); } if(bz==0) { fwrite(&d2,4,1,pf); fwrite(&x,8,1,pf); sum+=x; i++; } bz=0; } fseek(pf,4,0); fwrite(&sum,8,1,pf); fclose(pf); fclose(pf1); move(20,10); printw("装入完成, 共有%3d个帐户, 合计",i); prt_dnum(sum,16); addstr("元. "); mess((short)3); getch(); } break; case 9: case 10: move(2,19); addstr("从 键 盘 输 入 转 存 帐 户 编 码 对 照 表"); move(3,19); addstr("=========================================="); pf=fopen("/u/ebcsav/data/tran_sec.dat","r"); while(1) { move(5,10); addstr("请输入单位编号( 0 返回) "); scanw("%d",&sec_num); move(20,30); if(sec_num<1) break; fseek(pf,(sec_num-1)*24,0); fread(s,24,1,pf); if(feof(pf)||s[0]=='\0') { printw("该单位不存在, "); mess(2); } else break; } fclose(pf); if(sec_num==0) break; addspace(28); move(7,10); s[24]='\0'; printw("单位名称: %s",s); strcpy(s,"/u/ebcsav/data/num_acc001.dat"); s[22]=sec_num/100+48; s[23]=(sec_num%100)/10+48; s[24]=(sec_num%10)+48; bz=0; if(num_c==9) pf=fopen(s,"w"); else if((pf=fopen(s,"r+"))==NULL)bz=1; i=1; if(num_c==10&&bz==1)break; if(num_c==10) while(1) { fread(s1,10,1,pf); fread(&d,4,1,pf); if(feof(pf)) break; i++; } while(1) { move(9,10); printw("请输入序号(≤%3d, 按 0 返回)",i); scanw("%hd",&j);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -