LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 747|回复: 9

例子

[复制链接]
发表于 2003-11-1 23:50:52 | 显示全部楼层 |阅读模式
filename is stock_struct.h

  1.       1 #ifdef
  2.       2
  3.       3 struct record
  4.       4 {
  5.       5   char code[8]; //股票代码
  6.       6   char name[8]; //股票名称
  7.       7   long date;    //日期
  8.       8   long open;    //开盘价(千手)
  9.       9   long high;    //最高价(千手)
  10.      10   long low;     //最低价(千手)
  11.      11   long close;   //收盘价(千手)
  12.      12   long money;   //成交额(千元)
  13.      13   long volume;  //成交量(手)
  14.      14   long serial;  //记录序号
  15.      15 };
  16.      16
  17.      17 #endif
复制代码

  1.       1 //本程序是解压通用数据股票的程序。
  2.       2 //把当天的日线数据解压为以每股为单位的数据文件
  3.       3
  4.       4 #include <stdio.h>
  5.       5 #include <stock_struct.h>
  6.       6
  7.       7 main(int argc, char *argv[])
  8.       8 {
  9.       9//   unsigned char str_name[14]="\0";
  10.      10   FILE *fp,*sub_fp;
  11.      11   struct record day_data;
  12.      12   unsigned int i = 1,temp;
  13.      13
  14.      14   if((fp = fopen(argv[1],"rb")) == NULL) //打开原始文件
  15.      15   {
  16.      16     printf("没找到文件或没有参数\n");
  17.      17     exit(0);
  18.      18   }
  19.      19   while(!feof(fp))
  20.      20   {
  21.      21     fread(&day_data, sizeof(struct record), 1, fp);
  22.      22     if(day_data.serial == i)
  23.      23     {
  24.               day_data.code[0] = day_data.code[7] = '"';
  25.      24       if((sub_fp = fopen(day_data.code,"wb")) == NULL)
  26.      25       {
  27.      26         printf("创建文件失败\n");
  28.      27         exit(0);
  29.      28       }
  30.      29       i++;
  31.      30       if((temp = fwrite(&day_data, sizeof(struct record), 1, sub_fp)) == NULL)
  32.      31       {
  33.      32         printf("写入失败\n");
  34.      33         exit(0);
  35.      34       }
  36.      35       fclose(sub_fp);
  37.      36     }
  38.      37   }
  39.      38   fclose(fp);
  40.      39 }
  41.      40
复制代码
发表于 2003-11-2 00:05:53 | 显示全部楼层
突然想問: 有沒有考慮用pascal 呢?
個人很喜歡pascal
 楼主| 发表于 2003-11-2 08:48:34 | 显示全部楼层
呵呵,没有考虑用。上面的程序有问题,正在修改中。
可以说一定不会用。好的语言太多,pascal 还排不上。
如:c ,gtk ,c++ ,lisp, qt,
 楼主| 发表于 2003-11-3 22:50:21 | 显示全部楼层
本例子完成,没什么东西,主要就是
#include
文件读写
都是书上有的。大家看看吧,当写给和我一样的兄弟吧。
http://211.92.88.40/home/wide288/stock/stock.html
在这有下载。
发表于 2003-11-4 08:44:11 | 显示全部楼层
没有检查argc哦,也没有检查fread的返回值
最大的错误是day_data.code[0]=day_data.code[7]='\“'
你的文件名百分百有问题
而且写那么多小文件。。。好像不大好吧
 楼主| 发表于 2003-11-4 21:14:57 | 显示全部楼层
我最新的代码已经不用,day_data.code[0]=day_data.code[7]='\“'这句了,文件名也没有问题了。关于生成那么多的小文件主要是我认为这样读股票数据好一些,还不知道有更好的办法来存储数据。
你看我的主页就知道了。原始数据是从胜龙的那个数据下载点下的。
要变成我自己的格式。我就定义成了小文件,你有更好的办法吗?x11,如果有说出来,我也不懂的。所以就先只能这样实现了。ep 说要存十年,365天,每天就这1500个左右的小文件了。你看怎么处理呢?
发表于 2003-11-5 13:26:16 | 显示全部楼层
用数据库软件保存数据吧!
如 mysql ,到主页去下个手册,然后写个接口程序,把数据倒进去。
发表于 2003-11-5 16:43:34 | 显示全部楼层
用数据库来处理数据是一个比较好的办法.
 楼主| 发表于 2003-11-5 20:22:10 | 显示全部楼层
如果用mysql 那实现免安装的程序不是很难吗?能实现mysql的免安装吗?如果可以实现mysql 在一个目录中,我想还是不错的选择的。如果办不到的话。
那安装上不是很好。我不希望用户都要必须装mysql 才能用此软件。
发表于 2003-11-5 20:49:27 | 显示全部楼层
如果不大的数据量
那么也没有必要使用数据库

如果数据比较多也可以使用DBM
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表