0

我的应用程序将文本文件的内容写入数据库备忘录字段。大多数文件以 db 形式正确显示,但有些文件以连续方式显示(所有内容都在一行上)。如果我在写字板中打开这些文件,它们会正确显示,所以我将它们保存为纯文本,以使它们在 db 表单中正确显示。

我厌倦了这样做:-),并希望以编程方式执行此“转换”。使用我在网上找到的“分析 bom”方法,它说这两种类型的文件都是 ASCII。尝试将问题文件加载到 RichTextBox 中,因为富文本返回“输入文件格式不正确”。在调试中使用即时窗口,我发现正确显示的文件使用 \r\n 作为换行符,而显示不正确的文件仅使用 \n。使用 Regex.Replace \n,\r\n 只会导致 \r\n 以文本的形式出现(而不是编码字符)。问题“在记事本中以单行显示的文本”似乎是同一类型的问题,除了文件正在逐行流式传输和按摩,我认为这不是必需的。

所以......我需要以编程方式做的就是以某种方式模仿在写字板中打开文件并将其覆盖为纯文本的行为。我已经对 Encoding.Convert 进行了广泛(不成功)的试验,真正让我感到困惑的是,问题文件似乎是 ASCII 编码的,就像“好”文件一样,唯一的区别是好的文件使用 \r\n问题文件仅使用 \n。任何帮助表示赞赏...

对于它的价值,这是将文本文件内容加载到临时字符串数组(其内容稍后加载到 db)的语句。我意识到我可能需要将 ReadAllText 转换为“工作”字符串并在将其加载到数组之前对其进行按摩......但它唯一需要的按摩是在写字板中打开,然后作为纯文本覆盖。如果我能弄清楚如何做到这一点!

txtfileary[aryctr] = File.ReadAllText(textfile, Encoding.ASCII);

4

0 回答 0