📄 checkhis.c
字号:
#include <stdio.h>#include "gmclient.h"static GtkWidget *tmpcombo; static GtkWidget *tmpcombo1; static GtkWidget *tmpentry0;static GtkWidget *tmpentry1;static GtkWidget *tmpentry2;static GSList *reclist;static int zs=0,shzs=0,szzs=0;typedef struct{ char code[7]; int zdjdate; int zdj; int zgjdate; int zgj; int zdf; int addr;}REC;static void endProgram1(GtkWidget *widget,gpointer data){ GSList *node; for(node=reclist;node;node=node->next) g_free(node->data); g_slist_free(reclist); gtk_widget_destroy(widget); }static void curselectRow(GtkWidget *list,gint c,gint r){ GSList *node; REC *rec; int no;// strcpy(str,getClist(list));// printf("c:%d r:%d %s\n",c,r,str); node=g_slist_nth(reclist,c); rec=(REC *)node->data; no=rec->addr; if(no-5>1) areastart=no-5; else areastart=no; Repaint(); }static void total_clicked(GtkWidget *widget,gpointer data){}static void save_clicked(GtkWidget *widget,gpointer data){}static void curok_clicked(GtkWidget *widget,gpointer data){ GtkWidget *tmpwin; GtkWidget *tmpvbox; GtkWidget *i_box2,*i_but; GSList *gslist; int i,k,j,n,day,zf,zd; int tmpzgj,tmpzdj,tmpzgjdate,tmpzdjdate,tmpzgjaddr,tmpzdjaddr; char strentry[50]; GtkWidget *tmplist; REC *rec; gchar *tmprec[5]; gchar str0[88]; gchar str1[88]; gchar str2[88]; gchar str3[88]; gchar str4[88]; tmprec[0]=str0; tmprec[1]=str1; tmprec[2]=str2; tmprec[3]=str3; tmprec[4]=str4;
reclist=NULL; /* --- Call the timer. --- */
strcpy(strentry, gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(tmpcombo)->entry))); if(!strcmp(strentry,"上涨")) zd=1; else zd=0; strncpy(strentry,gtk_entry_get_text(GTK_ENTRY(tmpentry1)),4); strentry[4]='\0'; day=atoi(strentry); strncpy(strentry,gtk_entry_get_text(GTK_ENTRY(tmpentry2)),4); strentry[4]='\0'; zf=atoi(strentry); gtk_widget_destroy(widget); StartProgress ("正在检索,请稍候...");
n=0; j=0; for(i=1;i<=stocksum-day;i++){ tmpzgj=stock[i].zgj; tmpzdj=stock[i].zdj; tmpzgjdate=0; tmpzdjdate=0; tmpzgjaddr=0; tmpzdjaddr=0; for(k=0;k<day && k+i<=stocksum;k++){ if(tmpzgj<=stock[k+i].zgj){ tmpzgj=stock[k+i].zgj; tmpzgjdate=stock[k+i].jydate; tmpzgjaddr=k+i; } if(tmpzdj>=stock[k+i].zdj){ tmpzdj=stock[k+i].zdj; tmpzdjdate=stock[k+i].jydate; tmpzdjaddr=k+i; } } if(tmpzdj<=0) tmpzdj=1; if(zd){ if((tmpzgj-tmpzdj)*100/tmpzdj>=zf && tmpzgjdate>tmpzdjdate){ rec=(REC *)g_malloc(sizeof(REC)); strcpy(rec->code,stockcode); rec->zdjdate=tmpzdjdate; rec->zdj=tmpzdj; rec->zgjdate=tmpzgjdate; rec->zgj=tmpzgj; rec->zdf=(tmpzgj-tmpzdj)*100/tmpzdj; rec->addr=tmpzdjaddr; reclist=g_slist_append(reclist,rec); n++; i+=day; } } else{ if((tmpzgj-tmpzdj)*100/tmpzdj>=zf && tmpzgjdate<tmpzdjdate){ rec=(REC *)g_malloc(sizeof(REC)); strcpy(rec->code,stockcode); rec->zdjdate=tmpzdjdate; rec->zdj=tmpzdj; rec->zgjdate=tmpzgjdate; rec->zgj=tmpzgj; rec->zdf=-(tmpzgj-tmpzdj)*100/tmpzdj; rec->addr=tmpzgjaddr; reclist=g_slist_append(reclist,rec); n++; i+=day; } } if(j>=stocksum/10){ UpdateProgress (i, stocksum-day); j=0; } else{ j++; }
} EndProgress ();
if(n == 0){ showMessage("提示","未检索到符合结果."); return; } tmpwin=createWindow("当前股票检索结果",480,300,0,0,2, GTK_SIGNAL_FUNC(endProgram1)); gtk_window_set_policy(GTK_WINDOW(tmpwin),FALSE,FALSE,TRUE); tmpvbox=createBox(tmpwin,VERTICAL,0); tmplist=createClist(tmpvbox,5,GTK_SIGNAL_FUNC(curselectRow)); setupClist(tmplist,0,"股票代码",64); setupClist(tmplist,1,"日期",128); setupClist(tmplist,2,"最低价",64); setupClist(tmplist,3,"最高价",64); setupClist(tmplist,4,"涨跌幅",48); i=0; for(gslist=reclist;gslist || i<n;gslist=gslist->next){ rec=(REC *)gslist->data;// printf("%s %d %d %d %d %d\n",rec->code,rec->zdjdate,// rec->zdj,rec->zgj,rec->zdf,rec->addr); strcpy(tmprec[0],rec->code); if(zd) sprintf(tmprec[1],"%d-%d",rec->zdjdate,rec->zgjdate); else sprintf(tmprec[1],"%d-%d",rec->zgjdate,rec->zdjdate); sprintf(tmprec[2],"%d",rec->zdj); sprintf(tmprec[3],"%d",rec->zgj); sprintf(tmprec[4],"%d%",rec->zdf); insertClist(tmplist,tmprec); i++; } i_box2 = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD); gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10); gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0); gtk_widget_show(i_box2); i_but = gtk_button_new_with_label("统计"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(total_clicked),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("保存"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(save_clicked),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("退出"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(endProgram1),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but);}void curStockCheck(){ GtkWidget *tmpwin; GtkWidget *tmpvbox; GtkWidget *i_box2,*i_but; GList *items=NULL; if(!frechflag) return; tmpwin = createWindow("当前股票检索",200,200,0,0,20, GTK_SIGNAL_FUNC(endProgram)); tmpvbox = createBox(tmpwin,VERTICAL,0); createLabel(tmpvbox, "选择涨跌趋势:"); items = g_list_append(items,"上涨"); items = g_list_append(items,"下跌"); tmpcombo=gtk_combo_new(); gtk_combo_set_popdown_strings(GTK_COMBO(tmpcombo),items); gtk_box_pack_start(GTK_BOX(tmpvbox),tmpcombo, FALSE, FALSE, 0); gtk_widget_show(tmpcombo); createLabel(tmpvbox,"选择涨跌区间:(天)"); tmpentry1=createEntry(tmpvbox,"20"); createLabel(tmpvbox,"选择涨跌百分比:(%)"); tmpentry2=createEntry(tmpvbox,"100"); createLabel(tmpvbox," "); i_box2 = gtk_hbutton_box_new(); gtk_button_box_set_layout(GTK_BUTTON_BOX(i_box2), SPREAD); gtk_button_box_set_spacing(GTK_BUTTON_BOX(i_box2), 10); gtk_box_pack_start(GTK_BOX(tmpvbox), i_box2, FALSE, FALSE, 0); gtk_widget_show(i_box2); i_but = gtk_button_new_with_label("OK"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(curok_clicked),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); i_but = gtk_button_new_with_label("Cancel"); gtk_signal_connect_object(GTK_OBJECT(i_but), "clicked", GTK_SIGNAL_FUNC(endProgram),GTK_OBJECT(tmpwin)); gtk_box_pack_start(GTK_BOX(i_box2), i_but, TRUE, TRUE, 0); gtk_widget_show(i_but); gtk_grab_add(tmpwin);}static void allselectRow(GtkWidget *list,gint c,gint r){ GSList *node; REC *rec; int no;// strcpy(str,getClist(list));// printf("c:%d r:%d %s\n",c,r,str); node=g_slist_nth(reclist,c); rec=(REC *)node->data; no=rec->addr; if(frechStock(rec->code) == 0){ return; } if(strlen(rec->code) == 6) codeToName(SHBZ,rec->code); else codeToName(SZBZ,rec->code); if(no-5>1) areastart=no-5; else areastart=no; Repaint(); }static void alltotal_clicked(GtkWidget *widget,gpointer data){ char str[1000]; sprintf(str,"总数: %d 上海总数: %d 深圳总数: %d",zs,shzs,szzs); showMessage("统计结果",str); }static void allok_clicked(GtkWidget *widget,gpointer data){ GtkWidget *tmpwin; GtkWidget *tmpvbox; GtkWidget *i_box2,*i_but; GSList *gslist; int x,i,k,j,day,zf,zd,qsrq; int tmpzgj,tmpzdj,tmpzgjdate,tmpzdjdate,tmpzgjaddr,tmpzdjaddr; char strentry[50];// char tmpcode[6]; GtkWidget *tmplist; REC *rec; int shflag=0,szflag=0,shszflag=0,meflag=0; gchar *tmprec[5]; gchar str0[88]; gchar str1[88]; gchar str2[88];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -