В чем тут ошибка? Пишет нажать на клавишу и ничего - C#

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

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

Дано целое число K и текстовый файл. Вставить пустую строку перед строкой файла с номером K. Если строки с таким номером нет, то оставить файл без изменений.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication23
{
    class Program
    {
        static void Main(string[] args)
        {
            int K = 5;
            string myFile = @"путь к файлу";
            string[] strings = new string[0];

            if (File.Exists(myFile))
            
                strings = File.ReadAllLines(myFile);
            
            for (int i = 0; i < strings.Length; i++)
            
                if (strings[i].Substring(0, 2) != " ")
                
                    if (Convert.ToInt16(strings[i].Substring(0, 2)) == K)
                    
                        strings[i] = strings[i].Replace(strings[i], " " + strings[i]);
           
            File.WriteAllLines(myFile, strings);   
        }
    }
}

Решение задачи: «В чем тут ошибка? Пишет нажать на клавишу и ничего»

textual
Листинг программы
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("Такой строки не суще-ствует");
        }
    }
}

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


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

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

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