【发布时间】:2016-07-12 15:19:07
【问题描述】:
我正在尝试在执行复杂的 SSIS 插入包之前计算文本文件中的行数(以与控制文件进行比较)。
目前我正在使用 StreamReader,它正在中断一行,并将 {LF} 嵌入到新行中,而 SSIS 正在使用 {CR}{LF}(正确),因此计数没有统计。
有谁知道这样做的替代方法,我可以仅根据 {CR}{LF} 换行符来计算文件中的行数?
提前致谢
【问题讨论】:
-
您可以自己读取文件并根据需要拆分;只需读取字节,当您遇到 {CR}{LF} 时,只需开始新行。
-
^- 这就是 StreamReader 在幕后工作的方式。那么它在 CR、LF 和 CRLF 上分裂
-
也许这有帮助.. 快速的自定义流阅读器也摆脱了其他换行问题(见帖子)stackoverflow.com/questions/17994130/…
-
@Clint:除非您确定文件编码是单字节字符集,否则读取字节并不是一件特别安全的事情。事实上,如果文件是 16 位 Unicode,则该 CR/LF 对被编码为 4 个字节:0x00、0x0D、0x00、0x0A。现在,如果您将其作为文本打开(带有
StreamReader)并读取字符。 . .
标签: c# .net text-files streamreader flat-file