C# 如何水平打印订单簿?

C# 如何水平打印订单簿?,c#,C#,我不知道该问什么好,如果这不是纯粹的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

我不知道该问什么好,如果这不是纯粹的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
但我想让它看起来像这样:

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个检查站
  • 我需要把它们全部打印在一行中,以便比较
  • 如果文本文件包含长度不超过100000的行,是否会有问题
  • 如何实现我想要实现的东西
  • 如果你有更好的建议,我可以比较很多“快照”,他们是欢迎的!也许我可以使用不同的东西,而不是文本文件

以下是一些说明,可以为您将其概念化:

  • 循环浏览文件的每一行
  • 检查每个条目是否为日期,如果是,则创建某个数据对象的新实例
  • 继续解析直到你到达另一个日期
  • 将数据对象保存在数据对象列表中
  • 重复步骤1到5,直到完成文件处理
  • 当您准备好打印时,一次从每个数据对象中写入一个数据项,这样您就可以先写入所有日期,然后写入数据对象字典中的所有第一项,依此类推,直到完成为止

  • “如果您有更好的建议如何…”数据库呢?@TimSchmelter好的,我可以写入数据库,但如何将每个检查点与下一个检查点进行比较?我宁愿避免使用数据库,因为我想要最简单的解决方案。我不想仅仅为此安装数据库。这是“调试目的”功能。@ThinkingSites我刚刚试着写文本文件,就是这样。如果你真的觉得你想让我们为你编写代码,但我会让你放心。有1000个数据点是很容易做到的,你可以有你想要的任意大的文本文件。至于实现,请发布您用于解析的代码,我们可以从那里开始。我对如何解决这一问题有自己的想法,但要做到这一点需要大量的编码。我将发布指令。所有结构都已在内存中,因此我不需要解析任何内容。可能我应该写一些简单的算法。。。