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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2016, 17:20   #1
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию Listview

Доброго дня!
имеется такой Listview:



идет вот первый столбик:

Цитата:
3/4
0/3
6/2
3/3
1/4
мне нужно сложить первые числы друг с другом и вторые, т.е. 3+0+6+3+1=13
и так же со вторыми 4+3+2+3+4=16 теперь эти числа нужно сложить между собою 13+16=29 теперь высчитать процент 13*100/29, и так сделать с каждым столбиком, вот как сделал я:

Код:
    re.Expression := '(.+?)/(.+?)';
    item := ListView1.Items.Add;
    item.Caption := '%';
    for a := 0 to 3 do
    begin
      all := 0;
      one := 0;
      two := 0;
      for b := 0 to ListView1.Items.Count - 2 do
      begin
        if re.Exec(ListView1.Items[b].Subitems[a]) then
        begin
          one := one + strtoint(re.Match[1]);
          two := two + strtoint(re.Match[2]);
        end;
      end;
      all := one + two;
      item.SubItems.Add(inttostr(Trunc(one * 100 / all)));
    end;
но считает правильно только первый столбик, не пойму что не так сделал
nibufep вне форума Ответить с цитированием
Старый 25.08.2016, 05:25   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Навскидку перепутаны местами а и б переменные тут: re.Exec(ListView1.Items[b].Subitems[a])
phomm вне форума Ответить с цитированием
Старый 25.08.2016, 13:43   #3
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Навскидку перепутаны местами а и б переменные тут: re.Exec(ListView1.Items[b].Subitems[a])
нет, не в этом проблема
nibufep вне форума Ответить с цитированием
Старый 25.08.2016, 23:23   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
for b := 0 to ListView1.Items.Count - 2 do
Так и должно быть (- 2)?
Shouldercannon вне форума Ответить с цитированием
Старый 26.08.2016, 11:03   #5
nibufep
Форумчанин
 
Регистрация: 02.08.2014
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Код:
for b := 0 to ListView1.Items.Count - 2 do
Так и должно быть (- 2)?
Да. Проблема уже решена.
nibufep вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ListView Fahman Общие вопросы Delphi 8 12.12.2013 16:21
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
ListView &&blad&& Общие вопросы Delphi 7 26.03.2011 18:47
listview bulldog5293 Работа с сетью в Delphi 19 14.08.2010 12:23
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04