Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.04.2018
Сообщений: 86
1

Как разобраться с TListBox?

15.05.2018, 16:22. Показов 689. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В список List класса TListBox нужно загрузить данные файла "Group.txt".
В поле EditCount класса TEdit надо отобразить кол-во элементов списка.
Если их окажется больше 30, тогда оставить в списке только первые 30 элементов, остальное удалить и сохранить исправленный список в том же файле.
При отсуствии файла, отображать соответствующее уведомление.

Есть идеи?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2018, 16:22
Ответы с готовыми решениями:

TListBox. Как скопировать данные в ворд.
Есть компонент на форме, вывел туда данные, как можно их оттуда скопировать к примеру в ворд. Т.е....

Как стереть строку в TListBox
Здравствуйте. В ListBox ессть к примеру 5 строк,как сделать что бы при нажатии на кнопку...

Как выделить программно 1-ый элемент TListBox?
Как выделить программно 1-ый элемент TListBox?

Как убрать ненужные элементы из TLIstBox`a ???
Всем привет! У меня есть TListBox с нескольки элементами, число которых непостоянно. На данный...

8
1212 / 706 / 335
Регистрация: 22.02.2018
Сообщений: 2,059
Записей в блоге: 2
16.05.2018, 00:43 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
   TStringList *list = new TStringList;
 
      list->LoadFromFile("group.txt");
 
    EditCount->Text=IntToStr(list->Count);
 
    if(list->Count>30)
     while(list->Count>30) list->Delete(list->Count-1);
 
   list->SaveToFile("group.txt");
 
   delete list;
0
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
17.05.2018, 10:26 3
TrollHammer, читаем внимательно:
Цитата Сообщение от Иванов137 Посмотреть сообщение
В список List класса TListBox
При чем тут TStringList?
C++
1
2
3
4
5
6
7
8
void __fastcall TForm2::Button1Click(TObject *Sender)
{
  List->Items->LoadFromFile("group.txt");
  EditCount->Text = List->Count;
  for(int i = List->Count - 1; i > 29; i--)
   List->Items->Delete(i);
  List->Items->SaveToFile("group.txt");
}
0
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
21.05.2018, 11:43 4
Иванов137,
есть ли наброски?
все ведь логично просто.
1 нажатие на кнопку загрузки файла (проверить наличие файла)
2 если нет файла (выдать сообщение об отсутствии файла)
3 если файл есть (загрузить его в TListBox)
4 получить из TListBox->count количество строк
5 установить в EditCount количество строк.
6 задать цикл до 30
7 прочитать ListBox в список List (будет только первые 30 строк)
8 сохранить в файл "Group.txt".
0
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
21.05.2018, 16:46 5
Цитата Сообщение от Иванов137 Посмотреть сообщение
Есть идеи?
C++
1
2
3
4
5
6
7
   TStringList *SL = new TStringList, *SL2 = new TStringList;
   SL->LoadFromFile("Group.txt");
   EditCount->Text = SL->Count;
   for(int i=0;i<30;i++) SL2->Add(SL->Strings[i]);
   SL2->SaveToFile("Fix.txt");   /*  ("Group.txt") - in old file */
   ListBox1->Items->Assign(SL2);
   delete SL; delete SL2;
0
1212 / 706 / 335
Регистрация: 22.02.2018
Сообщений: 2,059
Записей в блоге: 2
22.05.2018, 01:59 6
Во всех приведенных кодах есть грубейшая ошибка - нет проверки, больше 30 строк или меньше, в результате можем вылететь за диапазон строк с громким треском
0
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
22.05.2018, 05:52 7
Цитата Сообщение от TrollHammer Посмотреть сообщение
нет проверки, больше 30 строк или меньше
Цитата Сообщение от D1973 Посмотреть сообщение
for(int i = List->Count - 1; i > 29; i--)
Скажите мне, зачем тут какая-то проверка и где я могу "вылететь за диапазон"?
0
1212 / 706 / 335
Регистрация: 22.02.2018
Сообщений: 2,059
Записей в блоге: 2
22.05.2018, 05:56 8
Предположим, строк в листбоксе меньше 30 изначально, а я лезу дальше. Куда меня программа пошлет?

Добавлено через 1 минуту
И в задании стоит условие
Цитата Сообщение от Иванов137 Посмотреть сообщение
Если их окажется больше 30
0
Модератор
9260 / 6038 / 2379
Регистрация: 21.01.2014
Сообщений: 25,802
Записей в блоге: 3
22.05.2018, 06:00 9
TrollHammer, задание внимательно прочитайте, будьте любезны...
Цитата Сообщение от Иванов137 Посмотреть сообщение
Если их окажется больше 30, тогда оставить в списке только первые 30 элементов
Цитата Сообщение от TrollHammer Посмотреть сообщение
Куда меня программа пошлет?
никуда. Цикл просто не выполнит ни одной итерации. Вы бы вместо слов взяли бы и проверили - это одна минута...
0
22.05.2018, 06:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2018, 06:00
Помогаю со студенческими работами здесь

Как называется событие выделения айтема в TListBox?
Как называется событие выделения айтема в TListBox? Нужно, чтобы при выделении айтема его название...

Как вызвать событие объекта TListBox, когда его экземпляр является членом моего класса
Всем привет! Есть мной писанный класс, который ведет лог. Класс примерно такого вида: class...

Как подписать комментарии и разобраться с работой кода? Дали задание разобраться и объяснить, а я совсем новичок
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Разноцветный TListBox
В TListBox-e вперемешку содержатся слова с маленькой и с заглавной буквы. Чтобы при просмотре...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru