Вставить пустую строку перед строкой файла с номером K - C# (183100)

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

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

Люди добрые, прога не работает. Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.IO;
using System.Text;
 
namespace ConsoleApplication15
{
    class Program
    {
        static void Main() 
{ 
string path = @"C:\temp\111.txt";
            int ok=0;
            int k = int.Parse(Console.ReadLine());
            int x = 0;
            int o=0;
 
            using (StreamReader sr = new StreamReader(path, Sys-tem.Text.Encoding.Default))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    x = x + 1;
                }
                sr.Close();
            }
             string[] a = new string[x+1];
    using (StreamReader sr = new StreamReader(path, Sys-tem.Text.Encoding.Default))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        a[o]=line;
        o = o+1;
    }
    sr.Close();
}
    if (o < k)
    {
        ok = 1;
        goto Label1;
        
    }
    for (int i = 0; i < k; i += 1)
        if (a[k] != null)
        {
            for (int h = a.Length-1; h >= k; h -= 1)
                a[h] = a[h-1];
            a[k-1] = "";
            break;
        }
    using (StreamWriter sr = new StreamWriter(path, false, Sys-tem.Text.Encoding.Default))
    {
        for (int i = 0; i < a.Length; i += 1)
            sr.WriteLine(a[i]);
        sr.Close();
    }
Label1:if(ok==1) Console.WriteLine("Такой строки не существует");
        }
    }
}

Решение задачи: «Вставить пустую строку перед строкой файла с номером K»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace helpForum
{
    class Program
    {
        static void Main(string[] args)
        {
            int k = 2;
            string path = @"D:\myFile.txt";
            List<string> lines = File.ReadAllLines(path).ToList();
 
            if( k <= lines.Count)
               lines.Insert(k - 1, "\n"); 
        
 
            File.WriteAllLines(path, lines);
  
        }
    }
 
   
}

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


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

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

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