折腾了好几天,这个基于.NET CF上开发的火车时刻表查询器终于出来一个雏形了。
春节前买火车票可是着实把我给弄得够呛。
于是想做一个火车时刻表软件放到我的
Dopod565上面这样查询火车时刻表就方便一些。
火车的时刻数据我是从一个网站上面自己写程序抓下来的。。。。口亥口亥。。。。。也不知道这样做违法不?所以暂时不告诉大家那个网址。。。。其实这种网站很多哈。。。。。。
一开始,写这个软件走了很多弯路。最开始,我抓下来的数据我都放到了一个XML文件中,最终的文件大小大约为8M。。。。寒。。。。。。
这在
Dopod565上面的话,解析这么大的XML文件是一种可怕的事情。后来就删除掉了一些冗余数据,数据量也大约有5M。。。。
第二次,尝试把这些数据都拆分开,所有的车站数据,每一个车站存放一个txt文件,每一个车次数据也存放一个txt文件,这样,总共大约有7千个文件左右,每一个文件都很小,大约1~2K的样子,这样程序读取起来应该方便了,可是。。。。部署起来非常困难。。。。那么多的文件,通过数据线copy到
Dopod565上太慢了,十几分钟还没有copy完毕。随后想了一个办法。。。。。把这些文件都弄一个压缩包,copy到手机上面然后再解压?居然还是不行。。。。因为。。。。。解压了十几分钟。。。。还没有解压完毕。。。。。唉。。。。。
最后。。。。。终于找到一个好东西。。。。
eSQL。。。。。它是一个小型的数据库,可以在win平台上用,也可以在SmartPhone上面用,同样可以用于PPC。。。。。。然后再折腾把数据都弄到那个数据库里面去。。。。这个数据库也挺奇怪。。。。。里面我的车站名字段用的是nvarchar,然后在他的工具里面试验了可以插入正常的中文,可是我通过我的程序插入的就成了问号。。。。郁闷阿。。。。。然后就再把所有的站台数据编码成了那种unicode编码的形式然后重新导入。。。。。终于。。。。终于。。。。这个软件的雏形出来了。。。。。
所以迫不及待的先放出来让大家看看顺便提提意见我好改进
首先,此软件主要实现了两个功能:
1)站站查询:按照起始站和终点站来查询车次。(在这里提示一下:出现的车次名称如果前面有*,那么这个车在起点车站是始发车)
2)车次查询:直接输入车次名称来查询。
下一步要加入车站查询:就是直接按照车站名称查询该车站的车次信息。
目前软件还存在两个问题:
1)由于算法的一个小Bug,在某些车次信息中,计算起点到终点的旅程时刻的时候,会出现空。
2)由于原始数据的问题,从城市A到城市B,乘坐不同的车次,可能会显示距离不一样(有的会误差几公里)
3)站站查询按了查找键之后响应速度太慢,过好半天才出来查出来的车次信息。需要优化算法。
其次,意见征求:
1)大家觉得有没有必要加入票价计算功能?还有,这个票价怎么计算出来的?有没有人能够提供算法?以及。。。通过车次的名称,怎么知道他的列车类型?(普通车?空调车?K,T,Z打头的好知道,那些只是数字的就不好区分是不是空调车了)
2)有没有必要加入转乘算法?目前站站查询的效率已经比较低了,如果要计算转乘的话,估计还会慢一些。
软件下载地址?
http://files.cnblogs.com/twodays/TrainsInfo.rar
欢迎在这里提出大家宝贵的意见。。。。谢谢