Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 6

Возникает исключение System.ArgumentOutOfRangeException

20.01.2020, 08:53. Показов 1267. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Напишите программу, которая управляет текстовым редактором по командам, записанным в файл input.txt . Строки текста нумеруются с единицы. Сначала список строк пустой. Существует три команды: '+' – добавление строки, '-' – удаление строки и '*' – замена строки. Попытка удалить или заменить строку, которой нет в списке, считается ошибкой. Ошибочна также и вставка строки с номером, который более чем на единицу превышает количество строк в тексте.

Входные данные:
В файле input.txt записаны строки с командами, последняя строка файла – пустая. Первый символ любой рабочей строки – это команда ('+', '-' или '*'), далее без пробела записывается номер строки, а затем (для команд '+' и '*') – текст новой строки, который нужно добавить или заменить.

Выходные данные:
Программа должна вывести все строки, которые остались в списке после обработки всех команд. Если в списке не осталось ни одной строки, нужно вывести слово 'EMPTY'. Если произошла ошибка, нужно вывести слово 'ERROR'.

Примеры:
Входные данные:
+1 I am a pupil.
+2 He is a pupil.
+2 She is a pupil.
+3 This is a pupil.
*2 Bob went home.
-3
Выходные данные:
I am a pupil.
Bob went home.
He is a pupil.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//Решение
        static void Main(string[] args)
        {
            StreamReader input = new StreamReader("input.txt", Encoding.GetEncoding(1251));
            List<string> commands = new List<string>();
            string line;
            while ((line = input.ReadLine()) != null)
            {
                commands.Add(line);
            }
            input.Close();
            List<string> vivod = new List<string>();
                for (int i = 0; i < commands.Count; i++)
                {
                    if (commands[i][0] == '+')
                    {
                        if (commands[i][1] == '1')
                        {
                            vivod.Add(commands[i]);
                        }
                        else
                        {
                            vivod.Insert(i, commands[i]);
                        }
                    }
                    if (commands[i][0] == '-')
                    {
                        int delete = Convert.ToInt32(commands[i][1]) - 1;
                        vivod.RemoveAt(delete);
                    }
                    if (commands[i][0] == '*')
                    {
                        int delete = Convert.ToInt32(commands[i][1])-1;
                        vivod.Insert(delete, commands[i]);
                        vivod.RemoveAt(delete);
                    }
                }
                StreamWriter output = new StreamWriter("output.txt", false, Encoding.GetEncoding(1251));
                if (vivod.Count != 0)
                {
                    for (int i = 0; i < vivod.Count; i++)
                    {
                    vivod[i] = vivod[i].Substring(vivod.IndexOf(" ") + 1);
                    }
                    foreach (var item in vivod)
                    {
                        output.WriteLine(item);
                    }
                    output.Close();
                }
                else output.WriteLine("EMPTY");
        }
Добавлено через 12 минут
Полноценное решение должно иметь в коде try-catch, но из шапки убрал, т.к. в файл всегда выводит ERROR.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
        static void Main(string[] args)
        {
            StreamReader input = new StreamReader("input.txt", Encoding.GetEncoding(1251));
            List<string> commands = new List<string>();
            string line;
            while ((line = input.ReadLine()) != null)
            {
                commands.Add(line);
            }
            input.Close();
            try
            {
                List<string> vivod = new List<string>();
                for (int i = 0; i < commands.Count; i++)
                {
                    if (commands[i][0] == '+')
                    {
                        if (commands[i][1] == '1')
                        {
                            vivod.Add(commands[i]);
                        }
                        else
                        {
                            vivod.Insert(i, commands[i]);
                        }
                    }
                    if (commands[i][0] == '-')
                    {
                        int delete = Convert.ToInt32(commands[i][1]) - 1;
                        vivod.RemoveAt(delete);
                    }
                    if (commands[i][0] == '*')
                    {
                        int delete = Convert.ToInt32(commands[i][1]) - 1;
                        vivod.Insert(delete, commands[i]);
                        vivod.RemoveAt(delete);
                    }
                }
 
                StreamWriter output = new StreamWriter("output.txt", false, Encoding.GetEncoding(1251));
                if (vivod.Count != 0)
                {
                    for (int i = 0; i < vivod.Count; i++)
                    {
                        vivod[i] = vivod[i].Substring(vivod.IndexOf(" ") + 1);
                    }
                    foreach (var item in vivod)
                    {
                        output.WriteLine(item);
                    }
                    output.Close();
                }
                else output.WriteLine("EMPTY");
            }
            catch
            {
                StreamWriter output = new StreamWriter("output.txt", false, Encoding.GetEncoding(1251));
                output.WriteLine("ERROR");
                output.Close();
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2020, 08:53
Ответы с готовыми решениями:

Необработанное исключение типа "System.ArgumentOutOfRangeException" произошло в mscorlib.dll
обработчик формы using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Необработанное исключение типа "System.ArgumentOutOfRangeException" произошло в mscorlib.dll - C#
Создаю приложение для удаления html тегов .....нужен совет по этой ошибке.

Как исправить исключение "System.ArgumentOutOfRangeException"?
Говорит, что ошибки в 119 и 168 строках using System; using System.Collections.Generic; using System.Linq; using System.Text;...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.01.2020, 08:53
Помогаю со студенческими работами здесь

Необработанное исключение типа "System.ArgumentOutOfRangeException"
Доброго времени суток. Программа делит строки файла на элементы. Затем записывает эти элементы в список. namespace ConsoleApplication1...

Исключение "System.ArgumentOutOfRangeException"
Добрый день, господа форумчане. Проблема в следующем коде: using System; using System.Collections.Generic; using System.Linq; ...

Исключение ArgumentOutOfRangeException в RemoveAt
Здравствуйте, имеется код private void BTDel_Click(object sender, EventArgs e) { int index =...

System.ArgumentOutOfRangeException
Здравствуйте, а как решить System.ArgumentOutOfRangeException? Если ввести пустую строку будет выдавать эту ошибку. А если нет то нет. Как...

System.ArgumentOutOfRangeException
using System; using System.Text.RegularExpressions; using System.Globalization; public class Kata { public static string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru