【问题标题】:Delete LF from file using C#使用 C# 从文件中删除 LF
【发布时间】:2019-12-10 01:52:26
【问题描述】:

我必须用 C# 编写一个脚本才能从文件中删除“LF”。

文件结构如下:

line1 'CR''LF'
line2 'CR''LF'
line3 'LF'
some_text_of_line_3 'CR''LF'

我想要这个:

line1 'CR'
line2 'CR'
line3 some_text_of_line_3 'CR'

谢谢!

【问题讨论】:

  • 请注意您没有提出任何问题。实际问题是什么?打开文件?读字符?将它们与特定的进行比较?写它们?
  • 对。实际上我什么都没有,我是 C# 的初学者。
  • 等等,它实际上是 ASCII 字符 10 换行吗?还是字符串文本'LF'?
  • 这是 ASCII 字符 10 换行,但它是一个 csv 文件。

标签: c# ssis newline lf


【解决方案1】:

您可以尝试为此使用正则表达式:

string myFile= File.ReadAllText(@"c:\FileName.txt");
myFile= Regex.Replace(myFile, @"LF", "AnythingYouwantHere");
File.WriteAllText(@"c:\FileName.txt", myFile);

希望对你有所帮助。

【讨论】:

  • 我没有解释这是一个 csv 文件,而不是 txt..对不起,我的错
  • @SmailxCoder。不,他想从行尾替换换行符(ASCII:10 c#:\n)。这些是打印控制字符。这与字符文字 'LF' 不同。
  • @JazzmanJim 好的,我现在明白了,一开始我不明白他真正想要什么,所以我给了他一个和我明白的一样的答案,谢谢
  • @SmailxCoder。没问题。这是我们老程序员在 80 年代和 90 年代遇到的问题类型。 :)
【解决方案2】:

如果文件不是那么(即我们可以将其读入内存):

 using System.IO;

 ...

 String path = @"c:\MyFile.txt";

 // Read file, remove LF (which is "\n")
 string text = File.ReadAllText(path).Replace("\n", ""); 

 // Write text back
 File.WriteAllText(path, text);

【讨论】:

  • 我没有解释这是一个 csv 文件,而不是 txt..对不起,我的错
  • @Thomas:嗯,csv 是一个 text 文件,所以什么都不应该改变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多