Csharp/C#教程:确定文本文件中使用的行结尾分享


确定文本文件中使用的行结尾

什么是C#中最好的方法来确定文本文件(Unix,Windows,Mac)中使用的行结尾?

请注意,文本文件可能具有不一致的行结尾。 你的程序不应该扼杀它。 在StreamReader (和类似方法)上使用ReadLine将自动处理任何可能的行结束。

如果手动从文件中读取行,请确保接受任何行结尾,即使不一致。 实际上,使用以下算法非常简单:

这是一些高级猜测:读取文件,计算CR和LF

 if (CR > LF*2) then "Mac" else if (LF > CR*2) then "Unix" else "Windows" 

另请注意,较新的Mac(Mac OS X)使用Unix行结尾

我只是搜索文件中的第一个rn ,如果它是n我会查看前一个字符以查看它是否是rn ,如果是这样,它是rn否则它是找到的任何一个。

我想你无法确定,必须在编辑器中设置它。 您可以使用一些AI,算法将是:

  1. 搜索每种类型的行结尾,您将搜索这些特定字符
  2. 测量它们之间的距离。
  3. 如果一种类型倾向于重复,那么你认为这是类型。 计算重复次数并使用一些分散度。

因此,例如,如果您在38,40,45处重复CRLF,并且在公差范围内,则默认情况下假设行结束为CRLF。

如果是我,我只是一次读取一个字符的文件,直到我遇到第一个rn 。 这假设您有敏感的输入。

阅读大多数文本格式我经常寻找 n,然后Trim()整个字符串(开头和结尾的空格通常是多余的)。

Environment.NewLine .NewLine虽然仅用于确定当前系统上使用的内容,但无助于从各种来源读取文件。

如果它正在读取我通常会寻找n (编辑:显然有一些只使用r )并假设该行结束。

上述就是C#学习教程:确定文本文件中使用的行结尾分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1001985.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐