正则表达式头痛,字符串格式,数据网格

时间:2013-08-10 17:44:34

标签: c# .net regex datagrid string-formatting

我一直在争吵几个小时并承认失败。我编写了一个C#Win表单客户端,它以下列格式接收Telnet数据:

Decimal  AlphaNum       Int "dB" Int "WPM" AN          Int + "Z"
14048.4  XY3CVI           19 dB  29 WPM                1700Z
14092.6  XY3CVI           19 dB  29 WPM    XZ          1700Z

由于上游瓶颈,我会定期在没有CRLF的情况下获得“双击”。

14048.4  XY3CVI           19 dB  29 WPM                1700Z14048.4  XY3CVI           19 dB  29 WPM                1700Z

输入的数据用空格填充,空格不同,以保持列完美对齐(由服务器,而不是我)(考虑到'AlphaNum'和'Int'中不同数量的字符,这些字符在dB之前。

我需要一种方法 - 不一定是正则表达式,在字符串加倍(有时是三倍)时添加CRLF,保留额外的数据。

由于我已经在寻求帮助,所以我也可以全力以赴,因为合并后的解决方案很可能会更优雅地实施:

采取上述“问题”,并格式化以进入具有四列的数据网格;从上面;第1,2,3和5列。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

据我了解,您使用CRLF的行总是一样大小吗?

只需检查每一行的大小,如果它超过预期的大小,只需使用line.Insert(expectedLineSize,"\r\n")将CRLF添加到该行,然后您将有一个新的行进行检查,继续这样直到您没有了。

至于第二部分,您有固定大小的列,只需使用Substring