Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2018, 00:40   #1
jOBER
Пользователь
 
Регистрация: 02.09.2018
Сообщений: 32
По умолчанию Сумма чисел.

Здравствуйте, подскажите как подсчитать сумму целых чисел в textBox. Я попробовал через строку, но он не правильно считает. Подскажите, где ошибка:
Код:
        private void button2_Click(object sender, EventArgs e)
        {
            string s = textBox1.Text;
            double a = double.Parse(textBox1.Text);
            double b = double.Parse(textBox1.Text);
            double c = double.Parse(textBox1.Text);
            double d = double.Parse(textBox1.Text);
            double t = double.Parse(textBox1.Text);
            double f = double.Parse(textBox1.Text);
            double z = a + b + c + d + t + f;
            textBox2.Text = z.ToString();
        }

Последний раз редактировалось jOBER; 26.10.2018 в 01:18.
jOBER вне форума Ответить с цитированием
Старый 26.10.2018, 01:17   #2
jOBER
Пользователь
 
Регистрация: 02.09.2018
Сообщений: 32
По умолчанию

Попробовал по другому, но теперь он не воспринимает, как числа разной разрядности и тупо считает сумму.
Код:
        private void button2_Click(object sender, EventArgs e)
        {
            int sum = 0;
            for (int i = 0; i < textBox1.Text.Length; i++)
                if (char.IsDigit(textBox1.Text[i]))
                    sum += textBox1.Text[i] - '0';
            textBox2.Text += sum;

        }

Последний раз редактировалось jOBER; 26.10.2018 в 01:22.
jOBER вне форума Ответить с цитированием
Старый 26.10.2018, 09:39   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от jOBER Посмотреть сообщение
подскажите как подсчитать сумму целых чисел в textBox
в одном TextBox находятся несколько целых чисел?
Так, значит, они чем-то в строке разделены (пробелом, например).
Вот по этому разделителю разбивайте строку на элементы (см. метод Split)
и каждое число преобразуйте и суммируйте.
И вообще, в .NET задача может быть решена одной строчкой кода.
Код:
int summa = textBox1.Text.Split(new char[]{' '}, System.StringSplitOptions.RemoveEmptyEntries).Select(h => Int32.Parse(h)).Sum();

Цитата:
Сообщение от jOBER Посмотреть сообщение
Код:
double.Parse
если числа целые, то зачем вещественное преобразование? Или числа вещественные могут быть?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2018, 16:10   #4
jOBER
Пользователь
 
Регистрация: 02.09.2018
Сообщений: 32
По умолчанию

Просто я ввожу целые числа(пример: 3 7 19 61) из файла .txt и он пишет System.FormatException: "Входная строка имела неверный формат."
Я как понял из-за того, что они разно разрядные.

Последний раз редактировалось jOBER; 26.10.2018 в 16:17.
jOBER вне форума Ответить с цитированием
Старый 26.10.2018, 16:13   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от jOBER Посмотреть сообщение
Просто я ввожу целые числа(пример: 3 7 19 61) из файла .txt и он пишет System.FormatException: "Входная строка имела неверный формат."
мне не пишет.

и куда Вы вводите целые числа, в TextBox1 ?
покажите свой код.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2018, 17:40   #6
jOBER
Пользователь
 
Регистрация: 02.09.2018
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
мне не пишет.

и куда Вы вводите целые числа, в TextBox1 ?
покажите свой код.
Вот код, я беру числа из файла и складываю:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            openFileDialog1.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*";
            saveFileDialog1.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*";
        }

        string fileName;
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog Fd = new OpenFileDialog();
            // Показываем надпись в наверху диалога.
            Fd.Title = "Выберите файл";
            // Выбираем первоначальную папку.
            Fd.InitialDirectory = @"B:\";

            Fd.Filter = "текстовые.файлы (*.txt)|*.txt;|Все файлы|*.*";
            // Показываем диалог.
            if (Fd.ShowDialog() == DialogResult.OK)
            {
                fileName = Fd.FileName;

                System.IO.StreamReader reader = new System.IO.StreamReader(fileName);

                textBox1.Text = reader.ReadToEnd();
                reader.Close();

            }

            MessageBox.Show("Файл открыт");
        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
            // получаем выбранный файл
            string filename = saveFileDialog1.FileName;
            // сохраняем текст в файл
            System.IO.File.WriteAllText(filename, textBox2.Text);
            MessageBox.Show("Файл сохранен");

        }
        
        private void button2_Click(object sender, EventArgs e)
        {
            
            int summa = textBox1.Text.Split(new char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries).Select(h => Int32.Parse(h)).Sum();
            textBox2.Text += summa;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }
    }
}
jOBER вне форума Ответить с цитированием
Старый 26.10.2018, 17:58   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну так Вы же весь файл в одну строчку считываете.
а в файле, судя по всему есть посторонние символы.
Например, переводы строк.

для начала попробуйте заменить строчку на
Код:
			int summa = textBox1.Text.Split(new char[]{' ','\r','\n','\t'}, System.StringSplitOptions.RemoveEmptyEntries).Select(h => Int32.Parse(h)).Sum();
если не поможет - то ищите в файле символы, которые не цифровые и которых нет в перечне разделителей.
если не найдёте - выкладывайте файл, вместе поищем
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2018, 20:08   #8
jOBER
Пользователь
 
Регистрация: 02.09.2018
Сообщений: 32
По умолчанию

Спасибо большое, пересоздал файл и всё заработала)
jOBER вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если сумма трех попарно различных действительных чисел х, у, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других [Delphi] Поиск ошибок в программе student_23 Помощь студентам 1 26.01.2017 17:47
Сумма с несколькими критериями, подсчёт/сумма нечётных чисел XPsihopaTX Microsoft Office Excel 3 11.10.2012 15:00
Сумма чисел Dima-War Общие вопросы C/C++ 9 20.03.2012 23:14
Сумма чисел LOVELY Помощь студентам 1 12.02.2010 01:14
Сумма чисел gamer123 Помощь студентам 2 19.01.2008 20:42