7,785
社区成员




#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long tempdata[10000];
long NumBase[5];
long NumUnit[4];
long NumUnitPrice[4];
struct tempFSTrecord
{
int FSTtime;
long price;
long avgPrice;
int changor;
int unUse0 ;
long unUse1 ;
long unUse2 ;
long unUse3;
};
void LoadFSTdata(char *filename, tempFSTrecord fst[][239]);
long getRealPrice(long formerPrice);
void LoadFSTdata(char *filename, tempFSTrecord fst[][239] )
{
int i , j ;
tempFSTrecord TFR;
long fileP,lenDayFST,lenminuteFST,intFilelen;
FILE *fp;
char Temp[100000];
lenDayFST = 6508;
lenminuteFST = 26;
fp = fopen(filename, "r");
if (fp == 0 )
{
return ;
}
else
{
fseek(fp, 0, SEEK_END);
intFilelen = ftell(fp)/6508;
long tempdata[10000];
long tempMidprice[ 10000];
long fstMaxPrice[10000];
for (j = 1 ;j<=intFilelen;j++)
{
fread((char *)tempdata[j],0,1 + (j - 1) * lenDayFST,fp);
fread((char *)tempMidprice[j],0,5 + (j - 1) * lenDayFST,fp);
fstMaxPrice[j] = 0;
for (i = 0;i <= 239;i++)
{
fileP = (j - 1) * lenDayFST + i * lenminuteFST + 8 + 1;
fread( Temp,0,1 + (j - 1) * lenDayFST,fp);
fst[j][i] .FSTtime = TFR.FSTtime + 1;
fst[j][i] .price = TFR.price;
fst[j][i] .avgPrice = TFR.avgPrice;
fst[j][i] .changor = TFR.changor;
if (labs(TFR.price - tempMidprice[j]) > fstMaxPrice[j])
{
fstMaxPrice[j] = labs(TFR.price - tempMidprice[j]);
}
}
}
}
fclose(fp);
}
long getRealPrice(long formerPrice)
{
int i;
long a;
for (i = 1 ;i<=4;i++)
{
if (formerPrice < NumBase[i])
{
a = ((long)((formerPrice - NumBase[i - 1])*1000) / NumUnit[i - 1]) + NumUnitPrice[i - 1];
return a;
}
}
return a;
}
void main()
{
NumBase[0] = 1065353216;
NumBase[1] = 1082130432;
NumBase[2] = 1090519040;
NumBase[3] = 1098907648;
NumBase[4] = 1109655552;
NumUnit[0] = 4194304;
NumUnit[1] = 2097152;
NumUnit[2] = 1048576;
NumUnit[3] = 524288;
NumUnitPrice[0] = 0;
NumUnitPrice[1] = 4000;
NumUnitPrice[2] = 8000;
NumUnitPrice[3] = 16000;
}