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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.05.2009, 11:19   #1
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
Подмигивание Вывод массива в таблицу

Добрый день!

Не могли бы подсказать как вывести массив в таблицу. (не консольный режим).
Я смог вывести его в ТМемо с помощью строк:

Memo1->Lines->Text = Memo1->Lines->Text + matrica[yy] + "";
Memo1->Lines->Text = Memo1->Lines->Text + "\n";


Но мне нужно в таблицу или в матрицу желательно. Есть мнение что это где-то в БД, но к сожалению я не успеваю прочитать это все.
Поэтому кто знает, приведите примерчик простенький какой-нибудь.


Вот как получилось у меня:


А надо примерно так:





И еще 1 вопрос:
При компиляции проги, в строке (61):

59 AnsiString text123 = Crypto->Lines->Strings[s];
60 char *text_char = text123.c_str();

61 while (i<strlen(text_char)) (тут не ошибка, а "warning")

пишет: [BCC32 Warning] MainForm.cpp(61): W8012 Comparing signed and unsigned values
Как можно устранить это? а то не компилирует. Хотя когда просто прогу запускаешь (F9) то все работает. Просто пишет "warning 1"


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

Последний раз редактировалось Kycaka; 23.05.2009 в 12:36.
Kycaka вне форума
Старый 23.05.2009, 12:57   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Думаю, вам подойдет компонент TStringGrid (вкладка Additional).
Небольшой пример:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const int m=5;
int matr[m][2] = {{1,2},{3,4},{5,6},{7,8},{9,0}};
StringGrid1->FixedCols = 0;  // количество фиксированных столбцов. Нам они не нужны
StringGrid1->FixedRows = 0; // количество фиксированных строк
StringGrid1->ColCount = m;  // количество столбцов
StringGrid1->RowCount = 2; // количество строк

for(int i=0; i<m; i++)
 {
  StringGrid1->Cells[i][0] = IntToStr(matr[i][0]); //Cells[i][0] - ячейка на пересечении
                   // i-го столбца и 0-й строки
  StringGrid1->Cells[i][1] = IntToStr(matr[i][1]);
 }

}
Цитата:
пишет: [BCC32 Warning] MainForm.cpp(61): W8012 Comparing signed and unsigned values
А какого типа переменная i? Попробуйте сделать ее size_t.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 23.05.2009, 13:05   #3
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
А какого типа переменная i? Попробуйте сделать ее size_t.
59 AnsiString text123 = Crypto->Lines->Strings[s];
60 char *text_char = text123.c_str();
61 while (i<strlen(text_char)) (тут не ошибка, а "warning")

Я сначало вытаскиваю строку из TMemo, она получается типа AnsiString (59 строка), потом я перевожу ёё в char (60 строка) т.к. мне нужно обращатся посимвольно к этой строке.
А потом у меня условие в вайле (61 строка) где он и выдает это предупреждение. В другие типы я наврятли смогу перевести.
while (i<strlen(text_char)) //тоесть выполняется столько раз, сколько символов в строке.
Kycaka вне форума
Старый 23.05.2009, 13:11   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Kycaka
Я сначало вытаскиваю строку из TMemo, она получается типа AnsiString (59 строка), потом я перевожу ёё в char (60 строка) т.к. мне нужно обращатся посимвольно к этой строке.
Дак я же не про строку спрашиваю. Переменная i какого типа?

Впрочем, ладно.. Уже воспроизвел у себя ситуацию. Как я и сказал, нужно изменить тип на size_t.
Еще можете вот так записать:
Код:
while ((unsigned)i<strlen(text_char))
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 23.05.2009, 14:11   #5
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

приду домой попробую))

Спасиб огромное!)
Kycaka вне форума
Старый 23.05.2009, 20:36   #6
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

а не подскажешь, как можно в один массив запихнуть в нулевую строку буквы, а в первую строку цифры.

какого типа объявлять массив?
Kycaka вне форума
Старый 23.05.2009, 20:38   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
как можно в один массив запихнуть в нулевую строку буквы, а в первую строку цифры.
Сделайте структуру с двумя полями. Первое - типа char, второе - int.
И уже работайте с массивом структур.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 23.05.2009, 20:45   #8
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

можете пример привести, как объявить такой массив
Kycaka вне форума
Старый 23.05.2009, 20:55   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
struct S
{
char bukva;
int chislo;
};
//..............
S mas[10]; // массив из 10-ти структур
или 
S *mas = new S[10];
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 23.05.2009, 21:40   #10
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

не до конца понял про структуры, но всеровно огромное спасибо, вы мне очень сегодня помагли!))

И еще, последний вопрос. как я могу отсортировать таблицу StringGrid1.
если в 1ой строке у меня буквы, во 2ой строке у меня цифры.
нужно чтобы сортировка была по 2ой строке.


Kycaka вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод двумерного массива Kocapb Общие вопросы C/C++ 4 11.10.2012 11:05
Как данные с массива передавать на тренд и таблицу? KuevProger Помощь студентам 1 20.03.2009 11:47
Вывод массива из функции LeoN PHP 2 13.11.2008 13:57
Вывод на печать StringGrid таблицу Македонский Общие вопросы Delphi 3 06.11.2007 01:21