【问题标题】:Comparing two files比较两个文件
【发布时间】:2009-09-25 11:02:54
【问题描述】:

我通过将两个文件读入文件流并逐字节比较来比较它们。比较时如何跳过空格?我正在使用 C#.net

【问题讨论】:

  • 您能否发布您现有的代码,我们可以提供更改?
  • 如果您不想自己进行比较。您可以在 Windows 中使用 FC.exe 工具,使用 /W(压缩/忽略空格)开关
  • 为了正确执行此操作,您必须知道文件的编码。是纯 7 位 ASCII、UTF-8、UTF-16,在某些代码页中编码吗?
  • 我的意思是,基本上,您在这里执行的操作在逻辑上是不一致的。你说你想逐个字节,然后做一个逐个字符的特殊情况。这在逻辑上是不一致的;除了 7 位 ascii 之外,字节不与字符同构。为什么不逐个字符地进行整个比较?也许您可以描述您的目标;可能有比您尝试做的更好的方法来实现它。

标签: c# file compare whitespace byte


【解决方案1】:
byte b;  

// ....

if (Char.IsWhiteSpace((char) b))
{
   // skip...
}

编辑:正如 Eric Lippert 指出的那样,只有当文件的编码是纯 7 位 ASCII 时,这才是正确的。在任何其他编码中,它将跳过相关字节。因此,您应该考虑数据的编码。

【讨论】:

  • 只有当文件的编码是纯 7 位 ASCII 时才正确。在任何其他编码中,它将跳过相关字节。
  • @Eric Lippert:嗨,发帖人说他是在比较字节,但你是对的;他应该考虑到编码。
猜你喜欢
  • 2022-01-04
  • 2018-03-04
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多