📄 stkfile.c
字号:
else recsum = szstocksum; for(i=1;i< recsum;i++){ if(bz==SHBZ){ if(!strcmp(code,shtbl[i].code)){ strcpy(stockname,shtbl[i].name); iffind=SUCCESS; break; } } else{ if(!strcmp(code,sztbl[i].code)){ strcpy(stockname,sztbl[i].name); iffind=SUCCESS; break; } } }// printf("%d %s\n",iffind,stockname); return iffind;}/*----------------------------------------/通过股票代码判断股票类别/ BZ -- 上海,深圳标志/ CODE -- 股票代码/--------------------------------------------------*/char juiceStockType(char bz,char *code){ char type; type=0; if(bz == SHBZ){ if(!strncmp(code,"5",1) ||!strncmp(code,"6",1)) type=17; if(!strncmp(code,"1A",2) ||!strncmp(code,"1B",2)) type=16; if(!strncmp(code,"9",1) ||!strncmp(code,"00",2) ||!strncmp(code,"10",2) ||!strncmp(code,"12",2) ||!strncmp(code,"2",1)) type=18; if(!strncmp(code,"7",1)) type=19; } else{ if(!strncmp(code,"2A",2) ||!strncmp(code,"2B",2) ||!strncmp(code,"2C",2)) type=32; if(!strncmp(code,"0",1) ||!strncmp(code,"4",1)) type=33; if(strncmp(code,"20",2)>=0 && strncmp(code,"2A",2)<0) type=34; if(!strncmp(code,"1",1) ||!strncmp(code,"3",1) ||!strncmp(code,"5",1) ||!strncmp(code,"8",1)) type=35; } return type; }/*----------------------------------------------------/保存股票代码表到文件nametbl.sha nametblszn中/--------------------------------------------------*/int saveStockNameTblToFile(){ char filename[50]; FILE *id; int i=1; char end; strcpy(filename,SHTBLPATH); strcat(filename,"nametbl.sha"); id=fopen(filename,"w"); if(id == NULL){ printf("write file nametbl.sha error.\n"); return FAIL; } end=0; fseek(id,0,SEEK_SET); while(i<=shstocksum && !feof(id)){ fwrite(&shtbl[i].type,1,sizeof(char),id); fwrite(shtbl[i].code,6,sizeof(char),id); fwrite(shtbl[i].name,8,sizeof(char),id); fwrite(&end,1,sizeof(char),id); fseek(id,i*16,SEEK_SET); i++; } fclose(id); strcpy(filename,SZTBLPATH); strcat(filename,"nametbl.szn"); id=fopen(filename,"w"); if(id == NULL){ printf("write file nametbl.szn error.\n"); return FAIL; } fseek(id,0,SEEK_SET); i=1; while(i<=szstocksum && !feof(id)){ fwrite(&sztbl[i].type,1,sizeof(char),id); fwrite(sztbl[i].code,6,sizeof(char),id); fwrite(sztbl[i].name,8,sizeof(char),id); fwrite(&end,1,sizeof(char),id); fseek(id,i*16,SEEK_SET); i++; } fclose(id); return SUCCESS; }/*----------------------------------------/保存股票代码表到sql数据库/--------------------------------------------------*/int saveStockNameTbl(){ if(!stocksql->isExistNameTblTable(SHBZ)) stocksql->createNameTblTable(SHBZ); if(!stocksql->isExistNameTblTable(SZBZ)) stocksql->createNameTblTable(SZBZ); if(stocksql->deleteNameTblData(SHBZ) && stocksql->deleteNameTblData(SZBZ)){ if(stocksql->insertNameTblData(SHBZ,shstocksum,shtbl) && stocksql->insertNameTblData(SZBZ,szstocksum,sztbl)) return SUCCESS; } return FAIL;}/*-----------------------------------------/ 显示股票F10资料/--------------------------------------*/void showF10Info(){ GtkWidget *tmpwin; GtkWidget *tmpvbox; GtkWidget *tmptext; char filename[50]; FILE *id; char tmpstr[100]; if(!frechflag) return; if(strlen(stockcode) != SHCODELEN && strlen(stockcode) != SZCODELEN) return ; if(strlen(stockcode) == SHCODELEN){ strcpy(filename,SHBASEPATH); strcat(filename,stockcode); strcat(filename,".txt"); } if(strlen(stockcode) == SZCODELEN){ strcpy(filename,SZBASEPATH); strcat(filename,stockcode); strcat(filename,".txt"); } id=fopen(filename,"r"); if(id == NULL){ showMessage("信息提示","无该股票F10资料"); return; } sprintf(tmpstr,"F10资料:%s",stockname); tmpwin = createWindow(tmpstr,600,480,0,0,2, GTK_SIGNAL_FUNC(endProgram)); tmpvbox = createBox(tmpwin,VERTICAL,0); tmptext=createText(tmpvbox,FALSE); insertFileInText(tmptext,id); fclose(id); }/*-----------------------------------------/ 显示股票历史价位资料/--------------------------------------*/void showPrice(){ GtkWidget *tmpwin; GtkWidget *tmpvbox;// GtkWidget *i_box2,*i_but; float tkpj,tzgj,tzdj,tspj,tzdf; char tmpstr[200]; int i; GtkWidget *tmplist; gchar *tmprec[8]; gchar str0[88]; gchar str1[88]; gchar str2[88]; gchar str3[88]; gchar str4[88]; gchar str5[88]; gchar str6[88]; gchar str7[88]; if(!frechflag) return; tmprec[0]=str0; tmprec[1]=str1; tmprec[2]=str2; tmprec[3]=str3; tmprec[4]=str4; tmprec[5]=str5; tmprec[6]=str6; tmprec[7]=str7;
/* --- Call the timer. --- */
sprintf(tmpstr,"%s价格明细",stockname); tmpwin=createWindow(tmpstr,600,300,0,0,2, GTK_SIGNAL_FUNC(endProgram)); gtk_window_set_policy(GTK_WINDOW(tmpwin),FALSE,FALSE,TRUE); tmpvbox=createBox(tmpwin,VERTICAL,0); tmplist=createClist(tmpvbox,8,GTK_SIGNAL_FUNC(NO_FUNC)); setupClist(tmplist,0,"日期",72); setupClist(tmplist,1,"开盘价",64); setupClist(tmplist,2,"最高价",64); setupClist(tmplist,3,"最低价",64); setupClist(tmplist,4,"收盘价",64); setupClist(tmplist,5,"成交量",64); setupClist(tmplist,6,"成交金额",64); setupClist(tmplist,7,"涨跌幅",64); for(i=1;i<=stocksum;i++){ sprintf(tmprec[0],"%d",stock[i].jydate); tkpj=stock[i].kpj; tkpj=tkpj/100; sprintf(tmprec[1],"%3.2f",tkpj); tzgj=stock[i].zgj; tzgj=tzgj/100; sprintf(tmprec[2],"%3.2f",tzgj); tzdj=stock[i].zdj; tzdj=tzdj/100; sprintf(tmprec[3],"%3.2f",tzdj); tspj=stock[i].spj; tspj=tspj/100; sprintf(tmprec[4],"%3.2f",tspj); sprintf(tmprec[5],"%ld",stock[i].cjsl); sprintf(tmprec[6],"%ld",stock[i].cjje); tzdf=(tspj-tkpj)/tkpj*100; sprintf(tmprec[7],"%3.2f%",tzdf); insertClist(tmplist,tmprec); }}/*-------------------------------------------/ 查找当前股票的下一只股票/ bz--上海,深圳标志/------------------------------------------*/gchar *findNextStock(gint bz){ int i; if(bz==SHBZ){ for(i=1;i<=shstocksum;i++){ if(!strcmp(shtbl[i].code,stockcode)){ if(i>=shstocksum) i=1; else i++; return shtbl[i].code; } } } else{ for(i=1;i<=szstocksum;i++){ if(!strcmp(sztbl[i].code,stockcode)){ if(i>=szstocksum) i=1; else i++; return sztbl[i].code; } } } return NULL; }/*-------------------------------------------/ 查找当前股票的前一只股票/ bz--上海,深圳标志/------------------------------------------*/gchar *findPreStock(gint bz){ int i; if(bz==SHBZ){ for(i=1;i<=shstocksum;i++){ if(!strcmp(shtbl[i].code,stockcode)){ if(i<=1) i=shstocksum; else i--; return shtbl[i].code; } } } else{ for(i=1;i<=szstocksum;i++){ if(!strcmp(sztbl[i].code,stockcode)){ if(i<=1) i=szstocksum; else i--; return sztbl[i].code; } } } return NULL; }/*----------------------------------------------/文件拷贝/ scrfile--- 原文件/ destfile---目标文件/----------------------------------------------*/int copyFile(char *scrfile,char *destfile){ int scr; int dest; char buf; int num; if((scr=open(scrfile,O_RDONLY))==-1){ printf("open sources fail!"); return FAIL; } if((dest=open(destfile,O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR))==-1){ printf("create dest fail"); return FAIL; } lseek(scr,0,SEEK_SET); while((num=read(scr,&buf,1))>0){ write(dest,&buf,1); } close(scr); close(dest); return SUCCESS; }int installKlineData(char *scrfile,char *destcode){ FILE *id; int i=1; int p1,p2,p3,p4; int day; long cjje,cjl; int recsum; int flag; STOCK *tmpstock; id=fopen(scrfile,"r"); if(id == NULL){ return FAIL; } fseek(id,0,SEEK_END); recsum=(ftell(id))/40; tmpstock=(STOCK *)g_malloc(sizeof(STOCK)*(recsum+10)); fseek(id,0,SEEK_SET); while(i<=recsum && !feof(id)){ fread(&day,1,sizeof(int),id); fread(&p1,1,sizeof(int),id); fread(&p2,1,sizeof(int),id); fread(&p3,1,sizeof(int),id); fread(&p4,1,sizeof(int),id); fread(&cjje,1,sizeof(int),id); fread(&cjl,1,sizeof(int),id);// fread(bz,3,sizeof(int),id); tmpstock[i].jydate=day; tmpstock[i].kpj=p1/10; tmpstock[i].zgj=p2/10; tmpstock[i].zdj=p3/10; tmpstock[i].spj=p4/10; tmpstock[i].cjje=cjje; tmpstock[i].cjsl=cjl;// printf("%d %d %d %d %d %ld %ld\n",day,p1,p2,p3,p4,cjje,cjl); fseek(id,i*40,SEEK_SET); i++; } fclose(id); if(!stocksql->isExistDayKlineTable(destcode)) stocksql->createDayKlineTable(destcode); flag=stocksql->insertDayKlineData(destcode,recsum,tmpstock); g_free(tmpstock); return flag; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -