Как перейти с маркеров конца строки в стиле Windows на Unix?

#c# #string

#c# #строка

Вопрос:

Как мне изменить символ новой строки по умолчанию с стиля Windows rn на стиль Unix n ? В идеале я каким-то образом меняю среду и делаю это глобально, поэтому мне не нужно изменять кучу кода string / textwriter.

Ответ №1:

К сожалению, это на самом деле не выполнимо. Основным способом, с помощью которого разработчики встраивают новые строки в свои приложения, является использование Enviornment.NewLine . Это статическое свойство, которое возвращает новые строки в стиле окна

 public static string NewLine {
  get { 
    return "rn";
  }
}
  

Невозможно изменить возврат этого свойства из вашего кода.

Ваш лучший вариант для изменения новых окончаний строк — разработать библиотеку, которая преобразует известные источники встраивания новых строк Windows в unix. Например, конвертер потоков и строк, вероятно, будет в порядке.

Комментарии:

1. Итак, в основном, выполните поиск и замените или удалите grep-запись / r / n, прежде чем помещать файл на диск. Я не считываю эти значения, а создаю их на лету из XML-источников. Возможно, существует простая перегрузка, которую я мог бы использовать для классов StringBuilder или TextBuilder?

2. @MichaelDorgan К сожалению, я не знаю о перегрузке. По сути, вам придется реализовывать их в основном с нуля. Но да, общей стратегией было бы найти окончания Windows и заменить их в потоке / строке на лету

3. По крайней мере, у меня есть хороший момент в коде для этой записи, прежде чем записывать текстовый файл. Спасибо за быстрые и своевременные ответы.