我的应用程序将文本文件的内容写入db memo字段。大多数文件在db表单中正确显示,但有些文件以连续方式显示(一行中的所有内容)。如果我在Wordpad中打开这些文件,它们会正确显示,所以我将它们保存为纯文本,以便在db表单中正确显示。
我厌倦了这样做:-)并希望以编程方式执行此“转换”。使用我在网上找到的“分析bom”方法,它说两种类型的文件都是ASCII。尝试将问题文件加载到RichTextBox作为富文本返回“输入文件格式不正确”。在调试中使用立即窗口,我发现正确显示的文件使用\ r \ n作为换行符,而显示不正确的文件只使用\ n。使用Regex.Replace \ n,\ r \ n只会使\ r \ n显示为文本(而不是编码字符)。问题“在记事本中以单行显示的文字”似乎是同一类型的问题,除了文件正在逐行流式传输和按摩,我认为这不是必需的。
所以......我需要以编程方式进行操作,以某种方式模仿在Wordpad中打开文件并将其覆盖为纯文本的行为。我用Encoding.Convert进行了广泛的(不成功的)实验和真正困扰我的事情是,问题文件似乎是ASCII编码就像“好”文件一样,唯一不同的是好文件使用\ r \ n问题文件只使用\ n的地方。任何帮助表示赞赏...
对于它的价值,这是将文本文件内容加载到临时字符串数组(其内容稍后加载到db)的语句。我意识到我可能需要将ReadAllText转换为“工作”字符串并在将其加载到数组之前按摩它...但是它需要的唯一按摩是在Wordpad中打开然后覆盖为纯文本。如果我能弄清楚如何做到这一点!
txtfileary [aryctr] = File.ReadAllText(textfile,Encoding.ASCII);