📄 dataread.cpp
字号:
#include "DataRead.h"
#include <stdio.h>
extern int AllEStation[];
extern void* AllStation[];
void ReadFile(void* PData[],FILE *fp)
{
int stationNum=0;
int offset = 0;
int tempNum = 0,lastNum = 0;
while (fscanf(fp,"%d",&tempNum) != EOF)
{
if (tempNum < -1000)
{
if (0 != offset)
{
AllEStation[offset++] = 0; //上一路公交结束标志
int temp=((int)PData[stationNum-1]-(int)AllEStation)/4;
*((int*)PData[stationNum-1]+3)=(int)(offset-5-((int)PData[stationNum-1]-(int)AllEStation)/4);//此路公交的站点个数
}
PData[stationNum++] = (void*)&(AllEStation[offset]);
AllEStation[offset++]=tempNum; //公交的路线
}
else if (tempNum <= -10)
{
if (tempNum == -10)
{
AllEStation[offset++]=tempNum; //分段计价
}
else if (tempNum == -11)
{
AllEStation[offset++]=tempNum; //单一票制1元。
}
else
{
AllEStation[offset++]=tempNum; //单一票制3元。
}
}
else if (tempNum < 0)
{
if (tempNum == -1)
{
AllEStation[offset++]=tempNum; //上行
}
else if (tempNum == -2)
{
AllEStation[offset++] = 0; //本路上行结束标志
*((int*)PData[stationNum-1]+3)=(int)(offset-5-((int)PData[stationNum-1]-(int)AllEStation)/4);//此路公交的站点个数
PData[stationNum] = (void*)&(AllEStation[offset]);
*(int*)PData[stationNum]=*(int*)PData[stationNum-1];
offset++;
*(int*)((int*)PData[stationNum]+1)=*(int*)((int*)PData[stationNum-1]+1);
offset++;
stationNum++;
AllEStation[offset++]=tempNum; //公交的路线
}
else if (tempNum == -3)
{
AllEStation[offset++]=tempNum; //环形:
}
else
{
}
offset++; //留给此路公交的站点数
}
else
{
if (lastNum <= -10)
{
AllEStation[offset++] = -4; //对称
offset++; //留给此路公交的站点数
}
AllEStation[offset++]=tempNum;
}
lastNum = tempNum;
}
AllEStation[offset++]=0;
*((int*)PData[stationNum-1]+3)=(int)(offset-5-((int)PData[stationNum-1]-(int)AllEStation)/4);//此路公交的站点个数
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -