Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
1

Как просуммировать цены в ListBox-e?

18.08.2010, 12:03. Показов 3046. Ответов 37
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здарова всем!
решил задачу "супермаркет". остался непонятным один вопросик.
В Эдит1 вводится код товара, в Эдит2 кол-во, в LB-e появляется список купленных товаров с ценами. надо посчитать теперь итог покупки, как это сделать (выводиться в Lable)???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.08.2010, 12:03
Ответы с готовыми решениями:

Подсчет цены по выбранным элементам Listbox
Всем привет. Помогите решить проблему. Делаю калькулятор цен. У меня в listbox 4 пункта. В...

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

Цены на два виды товаров выросли на р процентов. Вывести старые и новые цены
Помогите

Цены на два вида товаров возросли на P процентов . Вывести старые и новые цены
Цены на два вида товаров возросли на P процентов . Вывести старые и новые цены.

37
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
18.08.2010, 12:08 2
Delphi
1
2
3
4
5
var i: word;
begin
for i := 0 to ListBox1.Items.Count do
sum := sum + StrToFloat(ListBox1.Items[i]) * Edit2.Text;
end;
так?
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
18.08.2010, 12:14  [ТС] 3
iama, к сожалению код не под рукой.
в одной строке LB-а три значения: код товара, наименование и цена.
твой код не затронет лишние значения??

Добавлено через 1 минуту
может его на LW поменять что ли

Добавлено через 28 секунд
и посчитать все по столбцу
0
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
18.08.2010, 12:17 4
iama, нет, такой вариант пройдёт, если будет тупо список цен.

Если в Листе содержаться записи типа "Название = цена", т.е. цены хранятся в поле Values Листа, то можно сделать так:
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
  var
    i:integer;
  begin
    Label1.Caption:= '0';
    for i:= 0 to ListBox1.Count-1 do
      Label1.Caption:= FloatToStr(StrToFloat(ListBox1.Items.ValueFromIndex[i])+StrToFloat(Label1.Caption));
  end;
1
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,182
18.08.2010, 12:18 5
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
появляется список купленных товаров с ценами.
Как выглядит строка в листбоксе?
В принципе читаешь строки, только
for i:=0 to ListBox1.Items.Count-1 do
выбираешь из строки код и цену, если код совпадает, умножаешь цену на количество и в Лпбель.

Добавлено через 58 секунд
Zabiyak, Если
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
В Эдит1 вводится код товара
то то он тоже должен быть в Листбоксе.
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
18.08.2010, 12:19 6
конечно, затронет. тогда так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var i, j: word; s: string;
begin
for i := 0 to ListBox1.Items.Count do begin
  s := ListBox1.Items[i];
  for j := 1 to length(s) do
    if (s[i] in [0]..[9]) then begin
      s := copy(s, i, length(s) - i);
      break;
    end;
  sum := sum + StrToFloat(s) * Edit2.Text;
end;
end;
или как-то так. подзабыл дельфинский синтаксис
0
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
18.08.2010, 12:19 7
Если же код, название и цена находятся в одной строке и логически не отделимы друг от друга, то нужно ещё парсить каждую строку, отделяя цены, но тогда накладываются ограничения на название (оно должно быть без пробелов) либо нужно использовать другой разделитель, что естественно не добавит списку красоты и изящности
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
18.08.2010, 12:20  [ТС] 8
Цитата Сообщение от Zabiyak Посмотреть сообщение
.е. цены хранятся в поле Values Листа
не понял, где в LB поле?
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
18.08.2010, 12:21 9
ого, судя по всему, не успел
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
18.08.2010, 12:21  [ТС] 10
Цитата Сообщение от Zabiyak Посмотреть сообщение
Если же код, название и цена находятся в одной строке
точно, так оно и есть
0
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
18.08.2010, 12:22 11
Цитата Сообщение от iama Посмотреть сообщение
конечно, затронет. тогда так:
А как же код товара, состоящий видимо из цифр?
Вообще реализация с Листом не очень, ЛистБокс очень удобен для парных записей типа "Имя - Значение" (в нашем случае "Название - Цена"), но не для тройных элементов.
0
Фрилансер
 Аватар для Mad_Dog
452 / 433 / 117
Регистрация: 01.06.2010
Сообщений: 1,314
18.08.2010, 12:22 12
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
остался непонятным один вопросик.
В Эдит1 вводится код товара, в Эдит2 кол-во, в LB-e появляется список купленных товаров с ценами. надо посчитать теперь итог покупки, как это сделать (выводиться в Lable)???
Не понятен один моментик... То, что выводится в ЛистБоксе, имеет один и тот же код товара для всего списка (указанный в Эдит1)???
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
18.08.2010, 12:23  [ТС] 13
iama, пожалста с коментариями, я ведь только учусь
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
18.08.2010, 12:23 14
Zabiyak, такой же цикл, только с конца, и до первого нециферного символа
0
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
18.08.2010, 12:24 15
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
не понял, где в LB поле?
ListBox1.Items.Values и ListBox1.Items.Names, товарищ
Этот компонент немалым образом предназначался для отображения настроек из .ini файлов...
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
18.08.2010, 12:25  [ТС] 16
Mad_Dog, нет, имеется как бы база товаров (запись), там ихние коды, цены и т.д.
каждый раз в Edit1 вводится код соответствующего товара
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
18.08.2010, 12:27 17
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var i, j: word; s: string;
begin
for i := 0 to ListBox1.Items.Count do begin // идем по листбоксу
  s := ListBox1.Items[i]; // для удобства текущую строку листбокса в переменную
  for j := length(s) - 1 downto 1 do // с конца до начала строки
    if (not s[i] in ['0']..['9']) then begin // проверяем, является ли символ не циферным
      s := copy(s, i, length(s) - i); // если да, то отрезаем от этого символа, до конца строки
      break; // выходим из цикла
    end;
  sum := sum + StrToFloat(s) * Edit2.Text; // прибавляем значение к сумме
end;
// тут можно вывести значение суммы
end;
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
18.08.2010, 12:29  [ТС] 18
Zabiyak, я думал поменять его на ЛистВью, но в условии стоял Листбокс. да и самому интересно реализовать это в Листбоксе

Добавлено через 2 минуты
Цитата Сообщение от iama Посмотреть сообщение
if (not s[i] in [0]..[9]) then begin // проверяем, является ли символ не циферным
код товара тоже цифра
0
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
18.08.2010, 12:33 19
if (not s[i] in [0]..[9]) then begin

Такая проверка не пройдёт по одной причине - несовпадение типов - ищется символьная величина в целочисленном множестве...

Добавлено через 1 минуту
Love_and_Peace, цена от названия товара всегда будет отделяться пробелом? (ну или ещё чем-то)
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
18.08.2010, 12:34 20
Love_and_Peace, в последнем посте я уже с конца смотрю, ведь цена в конце листбокса?
0
18.08.2010, 12:34
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.08.2010, 12:34
Помогаю со студенческими работами здесь

Подставление вида цены и цены из регистра сведений
Такое дело... Есть док - Продажи. ТЧ - Товары. Нужно, чтобы При Изменении Номенклатуры в ВидЦены...

Как просуммировать список???
В узлы первого списка записаны цифры первого числа,а в узлы второго списка записаны цифры второго...

Как просуммировать значения в столбцах????
Проблема такая: имеются стобцы в таблице содержащие числовые значения и значения NULL. При...

Как просуммировать строки с числами?
доброго времени суток. к проблеме у меня есть файл состоящий к примеру из 50 строк с числами, и...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru