0

我不知道更好的地方问,如果这不是纯 C# 问题,我很抱歉。

我需要分析证券交易所订单簿的分时数据。每次订单簿中的更新发生(添加或删除或移动或执行订单)我需要“检查点”新状态并将其与之前的状态进行比较。到目前为止,我只是将数据打印到文本文件,它看起来像这样:

5/31/2012 6:06:58 AM:313

3466 1
3464 40
3460 10
3456.9 1
3456 1
3454 1
3448 760
3446 6
3445 3
3444.8 7
3444.5 4
3430.4 6
3420 400
3400 400
3399.9 5
3399.8 2
3396 12
3393.9 1
3390 99
3389.9 14

3387.2 17
3383.7 2
3383.6 2
3376.3 2
3361.1 9
3361 25
3360.8 3
3360.7 3
3360 2
3358 1
3357 3
3356.3 2
3351.1 60
3351 10
3350.6 20
3342.2 3
3342 15
3331.2 180
3331.1 63
3318 3

5/31/2012 6:06:58 AM:359

3466 1
3464 40
3460 10
3456.9 1
3456 1
3454 1
3448 760
3446 6
3445 3
3444.8 7
3444.5 4
3430.4 6
3420 400
3400 400
3399.9 5
3399.8 2
3396 12
3393.9 1
3390 99
3389.9 14

3387.2 17
3383.7 2
3383.6 2
3376.3 2
3361.5 9
3361.4 15
3361.2 9
3361.1 3
3360.8 3
3360.7 3
3360 2
3358 1
3356.3 2
3351.2 11
3351.1 60
3350.6 20
3342.2 3
3342 15
3331.2 180
3331.1 63

但我想看起来像这样:

6:06:58 AM:313          6:06:58 AM:359

3466    1               3466    1
3464    40              3464    40
3460    10              3460    10
3456.9  1               3456.9  1
3456    1               3456    1
3454    1               3454    1
3448    760             3448    760
3446    6               3446    6
3445    3               3445    3
3444.8  7               3444.8  7
3444.5  4               3444.5  4
3430.4  6               3430.4  6
3420    400             3420    400
3400    400             3400    400
3399.9  5               3399.9  5
3399.8  2               3399.8  2
3396    12              3396    12
3393.9  1               3393.9  1
3390    99              3390    99
3389.9  14              3389.9  14

3387.2  17              3387.2  17
3383.7  2               3383.7  2
3383.6  2               3383.6  2
3376.3  2               3376.3  2
                 added  3361.5  9
                 added  3361.4  15
3361.1  9               3361.2  9       
                 added  3361.1  3
3361    25     deleted
3360.8  3               3360.8  3
3360.7  3               3360.7  3
3360    2               3360    2
3358    1               3358    1
3357    3      deleted
3356.3  2               3356.3  2
                 added  3351.2  11
3351.1  60              3351.1  60
3351    10     deleted
3350.6  20              3350.6  20
3342.2  3               3342.2  3
3342    15              3342    15
3331.2  180             3331.2  180
3331.1  63              3331.1  63
  • 我有多达 1000 个检查点
  • 我需要将它们全部打印在一行中,以便轻松比较
  • 文本文件包含长度不超过 100 000 的行会不会有问题?
  • 如何实现我想要实现的?
  • 如果您有更好的建议,我可以比较很多“快照”,欢迎他们!也许我可以使用不同的东西,而不是文本文件?
4

1 回答 1

0

这里有一些说明将为您概念化它:

  1. 循环遍历文件的每一行
  2. 检查每个条目以查看它是否是日期,如果是,则创建某个数据对象的新实例
  3. 继续解析,直到到达另一个日期,
  4. 将数据对象保存在数据对象列表中
  5. 重复步骤 1 到 5,直到完成文件
  6. 当您准备好打印时,一次从每个数据对象中写入一个,因此您首先写入所有日期,然后是数据对象字典中的所有第一个项目,依此类推,直到您完成
于 2012-05-31T16:42:20.103 回答