33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
1

Индекс находился вне границ массива при вызове args

23.09.2014, 10:16. Показов 1133. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал вот такой код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static void Main(string[] args)
        {
            var Path = args[0];
            var Filter = args[1];
            var text = File.ReadAllText(Path);
            filter(text, Path);
            Console.WriteLine("Press Enter");
            Console.ReadLine();
        }
        static void filtr(string txt, string filt)
        {
            string[] lines = File.ReadAllLines(txt);
            foreach (string line in lines)
            {
                if (line.Contains(filt)) Console.WriteLine(line);
            }
при компиляции сразу же выдает ошибку в строках:

C#
1
2
var Path = args[0];
var Filter = args[1];
что индекс находился вне границ массива. как быть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2014, 10:16
Ответы с готовыми решениями:

Индекс находился вне границ массива при работе с массивами
Добрый вечер! Застрял на такой вот замечательной ошибке...Подскажите, где накасячил! using...

Индекс находился вне границ массива в List при параллельных вычислениях
BudgetReport reportOldState = GetBudgetReport(this.Id); List<BudgetReportElement>...

Индекс находился вне границ массива
Не могу понять почему Индекс находился вне границ массива. ("Index was outside the bounds of the...

Индекс находился вне границ массива
При вводе больше 2 пробелов оно выдает ошибку что индекс находился вне границ массива .Как это...

15
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 10:19 2
string[] args - это массив аргументов, который передается приложению операционной системой.
Вы туда что-то передаете? Если нет - то ошибка закономерна.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
23.09.2014, 10:19 3
C#
1
2
3
4
5
6
7
8
9
10
if(args.GetLength(0)<2)
{
    var Path = defaultValue;
    var Filter = defaultValue;
}
else
{
    var Path = args[0];
    var Filter = args[1];
}
0
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 10:22 4
Прочитайте внимательно: ссылка
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 10:23  [ТС] 5
z668, туда передаются путь к файлу и слово для поиска в файле. как аналог grep
0
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 10:33 6
aekuznecov, форечем в интерациях выведите данные, скорее всего вы все в [0] передаете.
Но проверка на пустые параметры нужна, как и написал Learx
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 10:37  [ТС] 7
z668, т.е. к примеру foreach (string path in Path)?
0
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 10:39 8
C#
1
2
foreach (string path in args)
{Тут вывод path в консоль}
Просто посмотрите что приходит
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 11:10  [ТС] 9
z668,
это ни к чему не привело. Можно как-то в самом проекте задать параметры считывания ввода пути и фильтра?
0
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 11:12 10
это ни к чему не привело.
Поконкретнее. Ничего не выводится? Если так - то ничего и не приходит.
Если ничего не приходит - изучайте мануал по ссылке выше.
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 11:25  [ТС] 11
z668, сделал как там было рекомендовано, но при чтении пути и текста из файла выкидывает ошибку: illegal characters in path
0
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 11:27 12
Пришлите проект
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 11:33  [ТС] 13
вот
Вложения
Тип файла: zip grep1.zip (84.3 Кб, 2 просмотров)
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 11:34  [ТС] 14
z668, я хочу сделать так, чтобы при запуске проекта я сам вводил и путь, и фильтр, чтобы он не был задан по умолчанию в отладке, потому что работа может происходить с n количеством файлов
0
28 / 28 / 5
Регистрация: 24.03.2013
Сообщений: 238
23.09.2014, 11:38 15
С этого и надо было начинать. Забудьте про string[] args.
ссылка
Дальше сами, это самые азы, там ничего сложного.
Почитайте учебник, посмотрите видеокурсы...
0
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
23.09.2014, 15:07  [ТС] 16
z668, мне нужно использовать args, по условию задания. Просто нашел вот тут http://msdn.microsoft.com/ru-r... dezs5.aspx что можно сразу же параметры задать для запуска, и хотелось понять, как там сделать запрос ввода

Добавлено через 3 часа 24 минуты
задачу решил, спасибо
0
23.09.2014, 15:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2014, 15:07
Помогаю со студенческими работами здесь

Индекс находился вне границ массива
Вот код for (int i = 0; i &lt; 48; i++ ) { ...

Индекс находился вне границ массива
Индекс находился вне границ массива private void button1_Click(object sender, EventArgs e) ...

Индекс находился вне границ массива
int count = 0; String text = textBox1.Text; String total = &quot;&quot;; ...

Индекс находился вне границ массива
Visual Studio // выписываем полином txtPoly.Text = &quot;ỹ = &quot; + Math.Round(C, 3); ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru