Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
2 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 18

Вывод структур в StringGrid1 в виде таблицы

02.05.2012, 21:54. Показов 4692. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Нужна помощь вот в таком вопросе:
Есть какое-то количество структур в файле (data.txt лежит в папке с проектом), структуры задавались с клавиатуры. Нужно сделать так чтобы при нажатии кнопки был переход в другую форму и там в StringGrid1 выводились все эти структуры в качестве таблицы. Если чем-то поможет, то вот код кнопки
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->CreateForm(__classid(TForm4), &Form4);
    Form4->StringGrid1->RowCount=1;
    Form4->Show();
    Form4->StringGrid1->Cells[0][0]="Имя";
    Form4->StringGrid1->Cells[1][0]="Фамилия";
    Form4->StringGrid1->Cells[2][0]="Домашний телефон";
    Form4->StringGrid1->Cells[3][0]="Сотовый телефон";
    Form4->StringGrid1->Cells[4][0]="Skype";
}
Заранее благодарю

ps Я совсем начинающий, можно сказать моя первая программа, так что не серчайте на меня за глупость.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2012, 21:54
Ответы с готовыми решениями:

Поиск данных в StringGrid1 и вывод совпадений в StringGrid1
Добрый день! Делаю поиск данных в StringGrid1 и вывожу совпавшие с параметром поиска строки в StringGrid1: Параметр поиска от одного...

Вывод значений функции в виде таблицы
Всем привет, поможете с задачей. Заранее спасибо) Задача: Для каждого x, изменяющегося от a до b с шагом h, найти значения функции...

Вывод массива в StringGrid1
Добрый день всем. Прошу вашей помощи. Вообщем с COM порта вытаскиваю данные в массив unsigned char bufrd. Данные выходят из EEPROM ATmega8....

29
2 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 18
22.05.2012, 22:09  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
bobkah1,И все же
Подозреваю что надо сделать сначала File->Use Unit-> Unit4
Делали?
попробовал - не получилось, если честно не стал ковыряться в ошибках, тк работает всё на честном слове, боюсь испортить)
я тут благодаря вашему примеру значительно продвинулся в работе и осталась последняя часть курсовой, не считая описания. это настроить поиск. погуглил, выдало как всегда ересь... сижу теперь, не знаю что делать. мне нужно хотя бы простенький - ввожу в панельку слово или часть слова и он выводит все строки с этим словом/частью в стрингрид новый. и ещё нужно чтобы не учитывал строчная или заглавная буквы.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
22.05.2012, 22:28
Можно использовать регулярки boost/regex или TRegExpr
Но легче использовать метод Pos() класса String если выпендреж не нужен...
0
2 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 18
23.05.2012, 10:55  [ТС]
А можно подробнее?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.05.2012, 16:35
Проверять каждую строку на содержание подстроки
C++
1
2
3
4
5
String Text="Text";
String S="Te";
 
if(Text.Pos(S)>0) ShowMessage("Найдено");
else       ShowMessage("Не найдено");
1
2 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 18
26.05.2012, 21:04  [ТС]
После долгого мучения я таки создал функцию поиска, правда она вообще не оптимизированная, но зато работает, если интересно, то вот она:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
void __fastcall TForm4::Button3Click(TObject *Sender)
{
char u [30];
strcpy(u,Edit1->Text.c_str());
 
Application->CreateForm(__classid(TForm6), &Form6);
    Form6->StringGrid2->RowCount=1;
    Form6->StringGrid2->ScrollBars=ssVertical;
    Form6->Show();
    Form6->StringGrid2->Cells[0][0]="Номер";
    Form6->StringGrid2->Cells[1][0]="Имя";
    Form6->StringGrid2->Cells[2][0]="Фамилия";
    Form6->StringGrid2->Cells[3][0]="Домашний телефон";
    Form6->StringGrid2->Cells[4][0]="Сотовый телефон";
    Form6->StringGrid2->Cells[5][0]="Skype";
 
    FILE *f;
    char s[]="data.dat";
    if ( (f=fopen(s,"rb"))==NULL )  { ShowMessage("Файла нет!");return;}
      //-----------------------------
    int i=2;
while(fread(&b,sizeof(part),1,f))
  {
             String ab=u;
             String bc1=AnsiString(b.name);
        if (bc1.Pos(ab)>0) {
        Form6->StringGrid2->RowCount=i;
      Form6->StringGrid2->Cells[0][i-1]= IntToStr(i-1);
      Form6->StringGrid2->Cells[1][i-1]= AnsiString(b.name);
      Form6->StringGrid2->Cells[2][i-1]= AnsiString(b.surname);
      Form6->StringGrid2->Cells[3][i-1]= AnsiString(b.tel);
      Form6->StringGrid2->Cells[4][i-1]= AnsiString(b.mob);
      Form6->StringGrid2->Cells[5][i-1]= AnsiString(b.skype);
       i++;
       continue;
        }
 
             String bc2=AnsiString(b.surname);
      if (bc2.Pos(ab)>0) {
        Form6->StringGrid2->RowCount=i;
      Form6->StringGrid2->Cells[0][i-1]= IntToStr(i-1);
      Form6->StringGrid2->Cells[1][i-1]= AnsiString(b.name);
      Form6->StringGrid2->Cells[2][i-1]= AnsiString(b.surname);
      Form6->StringGrid2->Cells[3][i-1]= AnsiString(b.tel);
      Form6->StringGrid2->Cells[4][i-1]= AnsiString(b.mob);
      Form6->StringGrid2->Cells[5][i-1]= AnsiString(b.skype);
       i++;
       continue;
        }
 
             String bc3=AnsiString(b.tel);
      if (bc3.Pos(ab)>0) {
        Form6->StringGrid2->RowCount=i;
      Form6->StringGrid2->Cells[0][i-1]= IntToStr(i-1);
      Form6->StringGrid2->Cells[1][i-1]= AnsiString(b.name);
      Form6->StringGrid2->Cells[2][i-1]= AnsiString(b.surname);
      Form6->StringGrid2->Cells[3][i-1]= AnsiString(b.tel);
      Form6->StringGrid2->Cells[4][i-1]= AnsiString(b.mob);
      Form6->StringGrid2->Cells[5][i-1]= AnsiString(b.skype);
       i++;
       continue;
        }
 
             String bc4=AnsiString(b.mob);
      if (bc4.Pos(ab)>0) {
        Form6->StringGrid2->RowCount=i;
      Form6->StringGrid2->Cells[0][i-1]= IntToStr(i-1);
      Form6->StringGrid2->Cells[1][i-1]= AnsiString(b.name);
      Form6->StringGrid2->Cells[2][i-1]= AnsiString(b.surname);
      Form6->StringGrid2->Cells[3][i-1]= AnsiString(b.tel);
      Form6->StringGrid2->Cells[4][i-1]= AnsiString(b.mob);
      Form6->StringGrid2->Cells[5][i-1]= AnsiString(b.skype);
       i++;
       continue;
        }
 
             String bc5=AnsiString(b.skype);
        if (bc5.Pos(ab)>0) {
        Form6->StringGrid2->RowCount=i;
      Form6->StringGrid2->Cells[0][i-1]= IntToStr(i-1);
      Form6->StringGrid2->Cells[1][i-1]= AnsiString(b.name);
      Form6->StringGrid2->Cells[2][i-1]= AnsiString(b.surname);
      Form6->StringGrid2->Cells[3][i-1]= AnsiString(b.tel);
      Form6->StringGrid2->Cells[4][i-1]= AnsiString(b.mob);
      Form6->StringGrid2->Cells[5][i-1]= AnsiString(b.skype);
       i++;
       continue;
        }
  }
fclose(f);
}
Теперь возникла новая проблема, он находит, всё нормально, но с учётом регистра, а мне нужно чтобы если я введу "вла", то он мне выдаст строку с именем "Владимир". Уже очень долго ищу способ повысить регистр, так бы я повышал регистры у обоих строк, сравнивал и если всё ок, то выводил в первозданном виде.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 21:17
C++
1
2
3
4
5
6
7
8
9
10
String Text="Text";
String S="te";
 
String UpText= Text.UpperCase(); // Все символы к верхниму регистру
String UpS= S.UpperCase();
 
if(UpText.Pos(UpS)>0) ShowMessage("Найдено");
// либо сразу
//if(Text.UpperCase().Pos(S.UpperCase())>0) ShowMessage("Найдено");
else       ShowMessage("Не найдено");
1
2 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 18
26.05.2012, 21:33  [ТС]
Ещё один маленький вопрос - мне нужно помощь создать. Что из списка добавить в форму? я попробовал TMemo, но там текст можно корректировать, это не то, а мне нужно чтото вроде TLabel, только для большого текста.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 21:39
Вариант 1
C++
1
Memo1->ReadOnly= true;
Вариант 2
C++
1
Label1->WordWrap= true;
0
2 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 18
26.05.2012, 21:42  [ТС]
Вы мой спаситель, я только что доделал курсач, осталась только рутинная работа в виде описания, боже мой, я счастлив. ОГРОМНОЕ спасибо))
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
26.05.2012, 22:13
Если разобраться самому или точнее сказать научиться разобраться самому, то можно было уже давно решать курсачи другим -подрабатывая этим и одновременно углубляя знания
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2012, 22:13

Вывод из таблицы MySQL записей в виде html таблицы и дальнейшая их обработка
И снова здравствуйте! На этот раз я со сложным вопросом. Мне нужно вывести определенные записи из таблицы MySQL и собрать их в таблицу...

Вывод всей таблицы из БД в виде таблицы
Доброго времени суток, уважаемые обитатели cyberforum. Столкнулся с такой проблемой : нужно вывести все записи из таблицы бд в виде...

Создание структур в цикле, пока не будет введет какой-либо символ и вывод данных в табличном виде
Помогите сделать динамический линейный список на основе данного кода. Я уже добавил указатель внутри структуры. Нужно сделать создание...

Вывод данных в виде таблицы
можно ли сделать одну целую таблицу,чтоб она выводила все i и соответствующие ей y y:=\sum_{i=1}^{n=10} e^i

Форматированный вывод в виде таблицы
Здравствуйте, у меня есть класс Book и такая ф-ия: public override string ToString() { return "Book name:...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru