熟悉字节,字符串转换的进

shshnhs 2014-10-22 09:20:07
解析一个文件,这个是通达信软件浦发银行600000下载到本地的5分钟K线图
forex.lotas.cn/sh600000.rar
直接是打不开的,乱码。

http://blog.csdn.net/coollzt/article/details/7245298
http://blog.csdn.net/coollzt/article/details/7245304
上面有解析的方法


解析成功会是类似下面的格式
20130614 0950 10.81 10.81 10.76 10.77 1618900 17467856.000
20130614 0955 10.77 10.78 10.76 10.78 622300 6701088.000
20130614 1000 10.77 10.78 10.73 10.75 879400 9455656.000

有兴趣的可以研究下,会者不难,难者不会,搞不懂什么字节

第一个成功解析的得满分。
...全文
64 点赞 收藏 4
写回复
4 条回复
sxldfang 2014年10月22日

private void button1_Click(object sender, EventArgs e)
{
    FileStream fs = new FileStream("sh600000.lc5", FileMode.Open);
    int count=(int)(fs.Length/32);
    BinaryReader br = new BinaryReader(fs);
    StringBuilder sb = new StringBuilder();
    DateTime dt = DateTime.Parse("1955-1-1");//从某个时间开始的,我无法推测正确值
    for (int i = 0; i < count; ++i)
    {
        int rq = br.ReadInt16();//日期
        int sj = br.ReadInt16();//时间
        float open = br.ReadSingle();//开盘价
        float low = br.ReadSingle();//最低价
        float high = br.ReadSingle();//最高价
        float close = br.ReadSingle();//收盘价
        float price = br.ReadSingle();//成交额
        uint liang = br.ReadUInt32();//成交量
        int baoliu = br.ReadInt32();//保留                
        sb.AppendFormat("{0} {1,6:d04} {2,8:f2} {3,8:f2} {4,8:f2} {5,8:f2} {6,16:f2} {7,12}\r\n", dt.AddDays(rq), sj / 60 * 100 + sj % 60, open, low, high, close, price, liang);
    }
    textBox1.Text = sb.ToString();
}
2013/1/10 0:00:00   0935     8.93     8.95     8.93     8.94      23573700.00      2638800
2013/1/10 0:00:00   0940     8.93     8.95     8.90     8.93      31271750.00      3506200
2013/1/10 0:00:00   0945     8.93     8.93     8.92     8.92       6441488.00       721900
2013/1/10 0:00:00   0950     8.93     8.93     8.92     8.92       7112980.00       797100
2013/1/10 0:00:00   0955     8.92     8.93     8.91     8.92       8664160.00       971700
2013/1/10 0:00:00   1000     8.91     8.93     8.91     8.93      10811900.00      1211500
2013/1/10 0:00:00   1005     8.93     8.93     8.91     8.93      14370570.00      1610900
2013/1/10 0:00:00   1010     8.93     8.93     8.92     8.93       3456640.00       387300
2013/1/10 0:00:00   1015     8.92     8.93     8.92     8.93       5547656.00       621800
2013/1/10 0:00:00   1020     8.93     8.93     8.91     8.92       6050160.00       678400
2013/1/10 0:00:00   1025     8.92     8.93     8.91     8.91       7183584.00       805500
2013/1/10 0:00:00   1030     8.92     8.92     8.91     8.92       3511392.00       393900
2013/1/10 0:00:00   1035     8.92     8.93     8.91     8.92       9386336.00      1052400
2013/1/10 0:00:00   1040     8.93     8.93     8.91     8.91       3945152.00       442400
2013/1/10 0:00:00   1045     8.92     8.93     8.91     8.93       6805568.00       763100
2013/1/10 0:00:00   1050     8.92     8.93     8.91     8.93       6000016.00       672700
2013/1/10 0:00:00   1055     8.93     8.93     8.92     8.92       4479168.00       501900
2013/1/10 0:00:00   1100     8.92     8.93     8.92     8.92       5150960.00       577300
2013/1/10 0:00:00   1105     8.92     8.93     8.92     8.92       6814704.00       763800
2013/1/10 0:00:00   1110     8.92     8.93     8.92     8.92       2356400.00       264000
2013/1/10 0:00:00   1115     8.93     8.93     8.92     8.92       7292624.00       817200
2013/1/10 0:00:00   1120     8.92     8.94     8.92     8.94       6903584.00       773200
2013/1/10 0:00:00   1125     8.93     8.94     8.92     8.93       5150784.00       576900
2013/1/10 0:00:00   1300     8.93     8.94     8.93     8.94       4815488.00       538900
2013/1/10 0:00:00   1305     8.94     8.95     8.93     8.95      10128800.00      1133000
2013/1/10 0:00:00   1310     8.95     8.95     8.94     8.95       5130240.00       573400
2013/1/10 0:00:00   1315     8.95     8.96     8.94     8.96       6877824.00       767900
2013/1/10 0:00:00   1320     8.96     8.97     8.95     8.97       6259232.00       698600
2013/1/10 0:00:00   1325     8.97     8.97     8.95     8.96       8235840.00       919400
2013/1/10 0:00:00   1330     8.96     8.96     8.94     8.95       7307616.00       816400
2013/1/10 0:00:00   1335     8.95     8.96     8.95     8.95       3084768.00       344600
2013/1/10 0:00:00   1340     8.96     8.96     8.95     8.95       7329200.00       818200
2013/1/10 0:00:00   1345     8.96     8.97     8.95     8.95       8298048.00       926000
2013/1/10 0:00:00   1350     8.95     8.96     8.95     8.96       4324880.00       483000
2013/1/10 0:00:00   1355     8.96     8.97     8.95     8.96       6991008.00       780300
2013/1/10 0:00:00   1400     8.97     8.97     8.95     8.97      21033280.00      2346200
2013/1/10 0:00:00   1405     8.97     8.98     8.96     8.98       9516768.00      1060800
2013/1/10 0:00:00   1410     8.97     8.98     8.96     8.97       7818880.00       871700
2013/1/10 0:00:00   1415     8.97     8.98     8.96     8.97       6827008.00       761100
2013/1/10 0:00:00   1420     8.97     8.98     8.96     8.98       7787392.00       867900
2013/1/10 0:00:00   1425     8.97     8.98     8.97     8.98       7498240.00       835700
2013/1/10 0:00:00   1430     8.97     8.98     8.97     8.97       7043104.00       784900
2013/1/10 0:00:00   1435     8.98     8.98     8.97     8.97       7301824.00       813700
2013/1/10 0:00:00   1440     8.98     9.00     8.97     9.00      40123680.00      4463700
2013/1/10 0:00:00   1445     9.00     9.01     8.99     9.00      10859170.00      1206500
2013/1/10 0:00:00   1450     8.99     9.00     8.97     8.98      29075100.00      3237500
2013/1/10 0:00:00   1455     8.99     9.00     8.98     9.00      12947010.00      1439500
2013/1/10 0:00:00   1500     9.00     9.00     8.99     9.00      10378270.00      1153500
2013/1/11 0:00:00   0935     9.01     9.02     8.99     9.00      24370450.00      2706300
2013/1/11 0:00:00   0940     9.00     9.01     8.99     9.00      15132060.00      1682500
2013/1/11 0:00:00   0945     9.00     9.01     8.99     9.01      15667180.00      1740600
2013/1/11 0:00:00   0950     9.01     9.01     8.99     9.01      15944760.00      1771000
2013/1/11 0:00:00   0955     9.01     9.01     8.99     9.00       9724656.00      1080400
2013/1/11 0:00:00   1000     9.00     9.00     8.99     9.00       6405424.00       712200
2013/1/11 0:00:00   1005     9.00     9.01     8.99     9.00      13744020.00      1527700
2013/1/11 0:00:00   1010     9.00     9.00     8.99     9.00       6196016.00       689100
2013/1/11 0:00:00   1015     8.99     9.00     8.98     8.99       5045472.00       561500
2013/1/11 0:00:00   1020     8.99     8.99     8.98     8.99       5460864.00       607800
2013/1/11 0:00:00   1025     8.99     8.99     8.98     8.98      10059200.00      1120100
2013/1/11 0:00:00   1030     8.99     9.00     8.98     9.00      13166180.00      1465000
2013/1/11 0:00:00   1035     9.00     9.01     8.99     9.00      20058530.00      2228900
2013/1/11 0:00:00   1040     9.00     9.01     9.00     9.00      19557860.00      2172100
2013/1/11 0:00:00   1045     9.00     9.01     8.99     9.00      11557810.00      1284100
2013/1/11 0:00:00   1050     9.00     9.00     8.99     9.00       5904672.00       656300
2013/1/11 0:00:00   1055     9.00     9.01     8.99     9.00       5589696.00       621100
2013/1/11 0:00:00   1100     9.00     9.01     8.99     9.00       8163440.00       907100
2013/1/11 0:00:00   1105     9.00     9.01     8.99     9.01       7136848.00       793300
2013/1/11 0:00:00   1110     9.01     9.01     9.00     9.00       7866848.00       873900
2013/1/11 0:00:00   1115     9.00     9.01     9.00     9.01       5588384.00       620700
2013/1/11 0:00:00   1120     9.00     9.01     9.00     9.01       8378000.00       930800
2013/1/11 0:00:00   1125     9.00     9.01     8.99     9.00       9492752.00      1054900
2013/1/11 0:00:00   1300     9.00     9.01     8.99     9.00       7193056.00       799400
2013/1/11 0:00:00   1305     9.00     9.01     8.99     9.00      12205120.00      1356300
2013/1/11 0:00:00   1310     9.01     9.01     8.99     9.00      10525500.00      1169500
2013/1/11 0:00:00   1315     9.00     9.00     8.99     9.00      10374880.00      1153900
2013/1/11 0:00:00   1320     9.00     9.00     8.99     8.99       6509568.00       723800
2013/1/11 0:00:00   1325     8.99     9.00     8.99     8.99       7943520.00       883100
2013/1/11 0:00:00   1330     9.00     9.01     8.99     8.99       8639328.00       960100
2013/1/11 0:00:00   1335     9.00     9.00     8.99     8.99       7925472.00       881300
2013/1/11 0:00:00   1340     8.99     9.00     8.99     9.00       7369824.00       819500
2013/1/11 0:00:00   1345     9.00     9.00     8.99     8.99       9716512.00      1080600
2013/1/11 0:00:00   1350     8.99     9.00     8.99     9.00       6416672.00       713500
2013/1/11 0:00:00   1355     9.00     9.00     8.98     8.98       6974976.00       775800
2013/1/11 0:00:00   1400     8.98     8.99     8.98     8.99       7522112.00       837300
2013/1/11 0:00:00   1405     8.99     8.99     8.98     8.98       8091232.00       900500
2013/1/11 0:00:00   1410     8.98     8.99     8.98     8.98       9696640.00      1079400
2013/1/11 0:00:00   1415     8.99     8.99     8.98     8.98       5083712.00       565800
2013/1/11 0:00:00   1420     8.98     8.99     8.98     8.99       5874016.00       653800
2013/1/11 0:00:00   1425     8.99     8.99     8.98     8.98       4207296.00       468200
2013/1/11 0:00:00   1430     8.99     9.00     8.98     9.00       7966016.00       886200
2013/1/11 0:00:00   1435     9.00     9.00     8.99     8.99      12322690.00      1370500
2013/1/11 0:00:00   1440     8.99     9.00     8.99     9.00      13222180.00      1469900
2013/1/11 0:00:00   1445     9.00     9.00     8.99     9.00      11797890.00      1311800
2013/1/11 0:00:00   1450     8.99     9.01     8.99     9.00      21812860.00      2424900
2013/1/11 0:00:00   1455     9.00     9.01     8.99     9.00      15608420.00      1734100
2013/1/11 0:00:00   1500     9.00     9.02     8.99     9.01      40583230.00      4505000
2013/1/12 0:00:00   0935     9.01     9.02     9.00     9.02      17746920.00      1969300
2013/1/12 0:00:00   0940     9.01     9.02     9.00     9.01      13316290.00      1478700
....
回复 点赞
shshnhs 2014年10月22日
我是对字节转换实在不感冒 解析成功会是类似下面的格式 20130614 0950 10.81 10.81 10.76 10.77 1618900 17467856.000 日期 时间 开盘价 最高价 最低价 成交量。。。。 对字节进行相关转换的代码肯定不会超过我上面提供的伪代码。 我只能那样去解析,你去试试就知道了,返回的全是整数型的,我是晕菜了,搞不定,等高手
回复 点赞
finemi 2014年10月22日
我不会,但我觉得你这话没有诚意
回复 点赞
shshnhs 2014年10月22日
为表诚意,我先贴出自己写的伪代码
 FileInfo fi = new FileInfo(@"D:\User\new_ztzq_v62\vipdoc\ds\minline\sh600000.lc5");
            long len = fi.Length;
            FileStream fs = new FileStream(@"D:\User\new_ztzq_v62\vipdoc\ds\minline\sh600000.lc5", FileMode.Open);
            byte[] buffer = new byte[len];
            fs.Read(buffer, 0, (int)len);
            fs.Close();

            //byte[] b1 = System.Text.Encoding.Default.GetBytes(s);
            string t1 = "";
            string str1 = System.Text.Encoding.ASCII.GetString(buffer);
            string str = System.Text.Encoding.Default.GetString(buffer);

            StringBuilder strB = new StringBuilder();

            for (int i = 0; i < buffer.Length; i++)
            {

                strB.Append(buffer[i].ToString("X2"));

            }

            string hexString = strB.ToString();      
            foreach (byte b in buffer)
            {
                t1 += b.ToString("") + " ";
            }
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告