Member 14090267 Ответов: 2

Добавление элемента из файла массива в один список при каждом нажатии другой кнопки


я хочу, чтобы каждая кнопка отображала другую строку из файла массива, расположенного на рабочем столе, и вычисляла общее количество цен, представленных в массиве, в текстовое поле, расположенное под списком, и индикатор выполнения, расположенный в качестве начального значения

мне нужен ответ как можно скорее

Заранее спасибо.

Что я уже пробовал:

double result;
        string r;
        string[] myArray;

        private void listInvoice()
        {
            try
            {
                string path = @"d:\\data.txt";
                using (StreamReader sr = new StreamReader(path))
                {
                    string s;
                    while ((s = sr.ReadLine()) != null)
                    {
                        myArray = s.Split('|');
                    }

                }
            }

            catch (Exception error)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(error.Message);
            }

        }
        private void getTotal()
        {
            int count = lstInvoice.Items.Count;
            for(int i =0; i<count;i++)
            {
                r = lstInvoice.Items[i].ToString();
                string[] table = r.Split(',');
                if (rdbTVAYes.Checked == true)
                    result += (Convert.ToDouble(table[1]) * Convert.ToDouble(table[2])) * 1.1;
                else
                    result += (Convert.ToDouble(table[1]) * Convert.ToDouble(table[2]));
            }
            txtTotal.Text = result.ToString();
        }

2 Ответов

Рейтинг:
1

OriginalGriff

Цитата:
мне нужен ответ как можно скорее

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете! Подсказка: начните с того, что вы делаете: ваш myArray содержит разделенные значения только из последней строки текста в файле ... поэтому начните думать о том, какие данные вам нужно хранить, а затем подумайте о том, как их хранить.

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Рейтинг:
0

RickZeeland

Вы, вероятно, смущены тем, что многоколоночный свойство элемента управления ListBox, это служит только для целей компоновки.
Если вам нужны реальные столбцы, вы можете использовать элемент управления ListView элемент управления или DataGridView.

using System;
using System.Windows.Forms;

namespace TestForm1
{
    public partial class Form21invoice : Form
    {
        public Form21invoice()
        {
            InitializeComponent();
            listInvoiceInit();
        }

        private void listInvoiceInit()
        {
            lstInvoice.View = View.Details;
            // Assume columns are defined in the designer
            //lstInvoice.Columns.Add("A");
            //lstInvoice.Columns.Add("B");
            ListViewItem lvi = new ListViewItem(new[] { "2", "10.2"});
            lstInvoice.Items.Add(lvi);
        }

        private void getTotal()
        {
            double result = 0;

            foreach (ListViewItem item in lstInvoice.Items)
            {
                string a = item.SubItems[0].Text;
                string b = item.SubItems[1].Text;
                result += Convert.ToDouble(a) * Convert.ToDouble(b);
            }

            txtTotal.Text = result.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            getTotal();
        }
    }
}