Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
1
.NET 4.x

Ошибка при работе с файлом

19.03.2013, 09:44. Показов 1051. Ответов 16
Метки нет (Все метки)

Суть задачи в том что надо надо с файла(пользователь сам вводит путь к файлу) Надо что бы в файле сложил все числа и вывел их на экран вот я код написал а он не работает
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
using System;
using System.Collections.Generic;
using System.IO;
 
namespace Работа_с_файлами
{
    class Program
    {
        static void Main(string[] args)
        {
            string patch = "";
            List<int> f = new List<int>();
            int sum = 0;
            Console.WriteLine("Введите путь к файлу \n К примеру C:\\1.txt");
            StreamReader sr = File.OpenText(patch);
            while (!sr.EndOfStream)
            {
               f.Add (Convert.ToInt32(sr.ReadLine()));
             }
            foreach (int i in f)
            {
                sum += f[i];
            }
            Console.WriteLine("Сумма в файле {0}", sum);
        }
    }
}
При запуске программа завершается аварийно
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2013, 09:44
Ответы с готовыми решениями:

Исправить ошибки при работе с файлом
Я хотел, чтобы в файле хранились значения порта и размера буфера, а если файл не создан или...

Exception при работе с файлом ресурса
Доброго времени суток всем. Граждане, прошу помощи по вопросу работы с ресурсами. Вылетает вот...

Ошибка при работе
Всем привет! Вот собственно код _recognizer = new SpeechRecognitionEngine(); ...

Ошибка при работе с Excel
Программа взаимодействует с экселем. Если я правильно понял, у меня не подключена какая-то...

16
6030 / 3437 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
19.03.2013, 09:47 2
Sylar9, а где само считывание пути к файлу?
0
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
19.03.2013, 09:48  [ТС] 3
Цитата Сообщение от nio Посмотреть сообщение
Sylar9, а где само считывание пути к файлу?
точно забыл ввести,

Добавлено через 26 секунд
Все равно аварийно закрыветься после ввода пути
0
6030 / 3437 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
19.03.2013, 12:56 4
Цитата Сообщение от Sylar9 Посмотреть сообщение
Все равно аварийно закрыветься после ввода пути
на какой строке падает? какую ошибку выдает? трассировщиком (пошагово) проверял?
0
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
19.03.2013, 14:50  [ТС] 5
Цитата Сообщение от nio Посмотреть сообщение
на какой строке падает? какую ошибку выдает? трассировщиком (пошагово) проверял?
Когда запуская программы сразу ошибка
0
281 / 252 / 73
Регистрация: 17.07.2012
Сообщений: 618
19.03.2013, 14:57 6
Сделай скрин экрана чтоль, раз так не можешь объяснить.
0
Эксперт .NET
4341 / 2003 / 387
Регистрация: 27.03.2010
Сообщений: 5,462
Записей в блоге: 1
19.03.2013, 15:07 7
Цитата Сообщение от Sylar9 Посмотреть сообщение
Когда запуская программы сразу ошибка
Покажи весь новый код. Неужели это самому не понятно? Все рады, что у тебя ошибка, без кода это пустые слова, от которых толку ноль.
0
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
19.03.2013, 15:20  [ТС] 8
Цитата Сообщение от Casper-SC Посмотреть сообщение
Покажи весь новый код. Неужели это самому не понятно? Все рады, что у тебя ошибка, без кода это пустые слова, от которых толку ноль.
Полный код вверух а вот скрин программы сейчас сделаю
0
Эксперт .NET
4341 / 2003 / 387
Регистрация: 27.03.2010
Сообщений: 5,462
Записей в блоге: 1
19.03.2013, 15:23 9
Цитата Сообщение от Sylar9 Посмотреть сообщение
точно забыл ввести, Добавлено через 26 секунд
Все равно аварийно закрыветься после ввода пути
Ах-ха-ха, так ты просто забыл ввести путь руками в консоли, а код не изменял?
0
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
19.03.2013, 15:25  [ТС] 10
Вот как программа работает

Добавлено через 1 минуту
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
using System;
using System.Collections.Generic;
using System.IO;
 
namespace Работа_с_файлами
{
    class Program
    {
        static void Main(string[] args)
        {
            string patch = "";
            List<int> f = new List<int>();
            int sum = 0;
            Console.WriteLine("Введите путь к файлу \n К примеру C:\\1.txt");
            StreamReader sr = File.OpenText("C:\\1.txt");
            while (!sr.EndOfStream)
            {
                f.Add(Convert.ToInt32(sr.ReadLine()));
            }
            foreach (int i in f)
            {
                sum += f[i];
            }
            Console.WriteLine("Сумма в файле {0}", sum);
        }
    }
}
0
Эксперт .NET
4341 / 2003 / 387
Регистрация: 27.03.2010
Сообщений: 5,462
Записей в блоге: 1
19.03.2013, 15:28 11
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numbers = new List<int>();
            int sum = 0;
            Console.WriteLine("Введите путь к файлу \n К примеру C:\\1.txt");
            string path = Console.ReadLine();
            using (StreamReader sr = File.OpenText(path))
            {
                while (!sr.EndOfStream)
                {
                    numbers.Add(Convert.ToInt32(sr.ReadLine()));
                }
                foreach (int i in numbers)
                {
                    sum += numbers[i];
                }
                Console.WriteLine("Сумма в файле {0}", sum);
            }
            Console.ReadKey();
        }
    }
Добавлено через 46 секунд
Не тестил, лень вводить путь руками
0
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
19.03.2013, 15:30  [ТС] 12
Цитата Сообщение от Casper-SC Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numbers = new List<int>();
            int sum = 0;
            Console.WriteLine("Введите путь к файлу \n К примеру C:\\1.txt");
            string path = Console.ReadLine();
            using (StreamReader sr = File.OpenText(path))
            {
                while (!sr.EndOfStream)
                {
                    numbers.Add(Convert.ToInt32(sr.ReadLine()));
                }
                foreach (int i in numbers)
                {
                    sum += numbers[i];
                }
                Console.WriteLine("Сумма в файле {0}", sum);
            }
            Console.ReadKey();
        }
    }
Добавлено через 46 секунд
Не тестил, лень вводить путь руками
а что значит эта строчка using (StreamReader sr = File.OpenText(path))

Добавлено через 1 минуту
Таже самая ошибка когда ввожу путь к файлу
0
191 / 191 / 29
Регистрация: 03.12.2009
Сообщений: 853
19.03.2013, 15:31 13
Что вводишь?
0
Эксперт .NET
4341 / 2003 / 387
Регистрация: 27.03.2010
Сообщений: 5,462
Записей в блоге: 1
19.03.2013, 15:42 14
А, у тебя проблема с форич, короче это беда, читай книжку просто и всё.
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
using System;
using System.Collections.Generic;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> numbers = new List<int>();
            int sum = 0;
            //Console.WriteLine("Введите путь к файлу \n К примеру C:\\1.txt");
            string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "1.txt");
            using (StreamReader sr = File.OpenText(path))
            {
                while (!sr.EndOfStream)
                {
                    numbers.Add(Convert.ToInt32(sr.ReadLine()));
                }
                for (int i = 0; i < numbers.Count; i++)
                {
                    sum += numbers[i];
                }
                Console.WriteLine("Сумма в файле {0}", sum);
            }
            Console.ReadKey();
        }
    }
}
Добавлено через 1 минуту
Цитата Сообщение от Sylar9 Посмотреть сообщение
а что значит эта строчка using (StreamReader sr = File.OpenText(path))
using инфа
0
902 / 663 / 132
Регистрация: 01.03.2010
Сообщений: 1,243
19.03.2013, 17:18 15
Sylar9,
У вас действительно пробелы по foreach т.к написали
C#
1
2
3
4
foreach (int i in f)
{
    sum += f[i];
}
переменная i содержит значение (типа int) очередного элемента f, а не номер элемента.

нужно
C#
1
2
3
4
foreach (int i in f)
{
     sum += i;
}
А еще лучше, давать переменным осмысленное значение. Меньше путаницы и быстро понимается в большом коде. Например
C#
1
2
3
4
foreach (int nextDigit in arrDigit)
{
    sum_arrDigit += nextDigit;
}
0
137 / 58 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
19.03.2013, 17:42  [ТС] 16
C#
1
2
string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "1.txt");
            using (StreamReader sr = File.OpenText(path))
А что значит эти строчки
0
Эксперт .NET
4341 / 2003 / 387
Регистрация: 27.03.2010
Сообщений: 5,462
Записей в блоге: 1
19.03.2013, 17:47 17
Цитата Сообщение от Sylar9 Посмотреть сообщение
А что значит эти строчки
Про using было тут.
Про путь, наводишь курсор мыши и читаешь описание. Если не понимаешь где класс, где метод, то просто читаешь книгу по шарпу.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2013, 17:47

Ошибка при работе с excel
Нужно прочитать значение из ячейки. Например 1,1 (A1). Возникает ошибка --------------...

Ошибка при работе с флешкой
Возникла проблема работы с флешкой. Сохраняю на неё проект, запускаю на другом компьютере, выдаётся...

Ошибка при работе с реестром
Всем привет. Сегодня у меня вдруг появилась ошибка: Код: RegistryKey c =...

Ошибка при работе с изображением
задание на лабораторной работе.. при загрузке картинки , сделать с ней преобразования...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.