⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stkfile.c

📁 用GTK+做用户界面 股票每日分时行情用数据库管理——MYSQL 软件应用方式客户端/服务器模式 基于TCP/IP的C/S通信模式 实现STOCK
💻 C
📖 第 1 页 / 共 2 页
字号:
     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 + -