我一直在争吵几个小时并承认失败。我编写了一个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列。非常感谢您的帮助!
答案 0 :(得分:0)
据我了解,您使用CRLF的行总是一样大小吗?
只需检查每一行的大小,如果它超过预期的大小,只需使用line.Insert(expectedLineSize,"\r\n")
将CRLF添加到该行,然后您将有一个新的行进行检查,继续这样直到您没有了。
至于第二部分,您有固定大小的列,只需使用Substring