Как заменить переход на новую строку на пробел, а пустую строку на переход на новую строку? - C#
Формулировка задачи:
Подскажите как из одного текстового файла, в котором в каждом ряде содержится не больше одного слова, перезаписать в другой текстовый файл, так чтобы слова были записаны через пробел, а переход на следующий ряд во втором файле, должен соответствовать пустая строка в первом.
У меня в консоле пишет: значение StartIndex не может быть меньше нуля.
Наверное, ошибка в строке
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();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);
}
}
}