📄 changbankname.txt
字号:
#include <fstream>
#include <iomanip>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include "string.h"
#include "memory.h"
#include "windows.h"
using namespace std;
typedef struct
{
int date;
int open;
int high;
int low;
int close;
float amount;
int vol;
int reservation;
} StockData;
StockData stockData;
int read_data(FILE *fin,ofstream& fout);
void main()
{
//定义数据
FILE *fin,*fp;
ofstream fout;
char FileName[16];
char bankname[9];
char number[7];
char search[111366];
memset(bankname,0,9);
memset(search,0,9);
//将公司名称文件的数据读入search数组
if((fp = fopen("深沪A股0316.TXT","rb")) == NULL)
{
printf("Error: Can^t open 深沪A股0316.TXT ");
exit(1);
}
fseek(fp,91600,SEEK_SET);
fread(search,1,111366,fp);
fclose(fp);
//开始整理day文件中数据
for (int n=0;n<111366;n++)
{
if(search[n]==0x0D&&search[n+1]==0x0A&&search[n+2]==0x36)
{
for(int j=0;j<6;j++)
number[j]=search[n+2+j];
for(int m=0;m<8;m++)
bankname[m]=search[n+9+m];
int index=atoi(number);
//根据搜索到的公司序号名,搜索当前目录下是否存在相应的day文件,
//存在即处理,否则放弃
sprintf(FileName,"SH%d.day",index);
if((fin = fopen(FileName,"rb")) == NULL)
{
printf("Error: Can^t open File ");
break;
}
else//如果day文件存在,则新建相应的xls文件,并1.先将公司名写入
//文件名有两种方案:用原来的day文件名,或用相应的公司名作文件名
{
// sprintf(FileName,"SH%d.xls",index);//这两句用来控制两种方案生成
sprintf(FileName,"%s.xls",bankname);
fp=fopen(FileName,"w");//也可以用fout来代替fp操作
fwrite(bankname,sizeof(char),9,fp);
char endofline='\n';
fwrite(&endofline,1,1,fp);
fclose(fp);
//2.后再将公司的相关数据追加入文件中去
fout.open(FileName,ios::out|ios::app );// 输出格式txt 可改为xls
fout<<"%日期\t开盘价(元)\t最高价(元)\t最低价(元)\t收盘价(元)\t成交额(万元)\t成交量(股)\t昨日收盘价(元)"<<"\n";
read_data(fin,fout);// 读
fclose(fin);
fout.close();
}
}
}
//等待用户任意键退出
if(getch()==0) getch();
exit(0);
}
//读取day文件数据至相应的xls文件中去
int read_data(FILE *fin,ofstream& fout)
{
float fn;
while (! feof(fin)) {
fout.setf(ios::fixed);
fout.setf(ios::showpoint);
fout.precision(2);
fread(&stockData,sizeof(StockData),1,fin);
fout<<setw(8)<<stockData.date<<"\t";//日期
fn=float(stockData.open)/100;
fout<<setw(8)<<fn<<"\t";//开盘价
fn=float(stockData.high)/100;
fout<<setw(8)<<fn<<"\t";//最高价
fn=float(stockData.low)/100;
fout<<setw(8)<<fn<<"\t";//最低价
fn=float(stockData.close)/100;
fout<<setw(8)<<fn<<"\t";//收盘价
fn=float(stockData.amount)/10000;
fout<<setw(11)<<fn<<"\t";//成交额
fout<<setw(10)<<stockData.vol<<"\t";//成交量
fn=float(stockData.reservation)/100;
fout<<setw(10)<<fn<<"\t";//昨日收盘价
fout<<"\n";
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -