Как заменить переход на новую строку на пробел, а пустую строку на переход на новую строку? - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите как из одного текстового файла, в котором в каждом ряде содержится не больше одного слова, перезаписать в другой текстовый файл, так чтобы слова были записаны через пробел, а переход на следующий ряд во втором файле, должен соответствовать пустая строка в первом.
            string path ="D:\\f1.txt";
            string pathForSecondFile = "D:\\f2.txt";
            FileStream secondFile=new FileStream(pathForSecondFile, FileMode.Create);
            secondFile.Close();
            StreamReader reader = new StreamReader(path);
            StreamWriter writer = new StreamWriter(pathForSecondFile);
            string line;
            
            while ((line = reader.ReadLine()) != null)
            {
 
                if (line.Substring(line.Length-1)=="/r/n")
                {
                    line.Replace(line.Substring(line.Length - 1), "/r/n");
                    writer.WriteLine(line);
                }
                else if (line == "")
                {
                    line.Replace(line.Substring(line.Length - 1), " ");
                    writer.WriteLine(line);
                }
                else { 
                    writer.WriteLine(line); 
                }
                    
            }
            reader.Close();
            writer.Close();
У меня в консоле пишет: значение StartIndex не может быть меньше нуля. Наверное, ошибка в строке
if (line.Substring(line.Length-1)=="/r/n")

Решение задачи: «Как заменить переход на новую строку на пробел, а пустую строку на переход на новую строку?»

textual
Листинг программы
            string path ="D:\\f1.txt";
            string pathForSecondFile = "D:\\f2.txt";
            string line = string.Empty;
            using(var secondFile=new FileStream(pathForSecondFile, FileMode.Create))
            using(var reader = new StreamReader(path))
            {
                using(var writer = new StreamWriter(pathForSecondFile))
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (line == string.Empty)
                        {
                            line = Environment.NewLine;
                            }
                            else 
                            { 
                        line.Replace(Environment.NewLine, " ");
                        }
                        writer.WriteLine(line);  
                    }
                }
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы