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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 01:43   #1
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию Вывод в StringGrid текстовой информации

Скажите пожалуйста,как в StringGrid выводить текстовую информацию.
В коде выбивает ошибку:
Код:
{ 
AnsiString tmp;
  int i=0;
  ifstream f("name.txt",ios::app);
  while (f.eof())
  {
   i++;
   f >> tmp.c_str();
   StringGrid1->RowCount=i;
   StringGrid1->Cells[0,i-1]= tmp.c_str();
   StringGrid1->Cells[1,i-1]=0;
  }
  f.close();
}

Последний раз редактировалось spectrum988; 21.05.2014 в 01:48.
spectrum988 вне форума Ответить с цитированием
Старый 21.05.2014, 01:51   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Код:
StringGrid1->Cells[0,i-1]
Уже синтаксически не правильно.
В C++, обращение к элементу 2-мерного массива делается так:
Код:
StringGrid1->Cells[0][i-1]
Кроме того, строк в StringGrid достаточно для вывода файла?
Streletz вне форума Ответить с цитированием
Старый 21.05.2014, 02:03   #3
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Я не знаю достаточно ли для вывода данных из файла в StringGrid,никогда не пробовал,но имхо видимо так. Но проверил я понял,что чего-то не хватает,но не могу понять чего.

Подскажите пожалуйста.Хоть какие-либо соображения?

Ни у кого нету соображений ?

Последний раз редактировалось Stilet; 22.05.2014 в 08:09.
spectrum988 вне форума Ответить с цитированием
Старый 22.05.2014, 01:57   #4
DpolenST
Форумчанин
 
Регистрация: 28.09.2013
Сообщений: 115
По умолчанию

если без текста ошибки, то может быть дело в этом:
ios::app -
Открывает файл в режиме добавления, располагая файловый указатель в конце файла
Что бы еще такого сделать, чтобы ничего не делать?

Последний раз редактировалось DpolenST; 22.05.2014 в 02:01.
DpolenST вне форума Ответить с цитированием
Старый 22.05.2014, 02:05   #5
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Но ведь считывание из файла я начинаю с первой строки.
spectrum988 вне форума Ответить с цитированием
Старый 22.05.2014, 09:47   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Вопрос

Цитата:
Сообщение от spectrum988 Посмотреть сообщение
Но ведь считывание из файла я начинаю с первой строки.
Вы 100% уверены в этом?
Streletz вне форума Ответить с цитированием
Старый 22.05.2014, 10:46   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
f >> tmp.c_str();
Так считывать нельзя. Этот указатель предназначен только для чтения по нему.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.05.2014, 11:08   #8
DpolenST
Форумчанин
 
Регистрация: 28.09.2013
Сообщений: 115
По умолчанию

Цитата:
Сообщение от spectrum988 Посмотреть сообщение
Но ведь считывание из файла я начинаю с первой строки.
как я уже написал файловый указатель при открытии в конце файла, а вы еще и в условии цикла ошиблись

исправьте для начала хотя бы две строки,
Код:
ifstream f("name.txt",ios::out);
.........................
while (!f.eof())
Что бы еще такого сделать, чтобы ничего не делать?

Последний раз редактировалось DpolenST; 22.05.2014 в 11:14.
DpolenST вне форума Ответить с цитированием
Старый 22.05.2014, 15:16   #9
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Спасибо,действительно из-за невнимательности я забыл поставить
Код:
while(!f.eof());
,а ios::app я забыл убрать когда код вставлял на форум.(у меня его не было в коде).Теперь все работает.
spectrum988 вне форума Ответить с цитированием
Старый 22.05.2014, 20:46   #10
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Скажите пожалуйста,для открытия form5 я использую функцию ShowModal();
И я решил предусмотреть если форму захотят открыть закрыть а потом опять открыть.
Код:
void __fastcall TForm5::FormShow(TObject *Sender)
{
  for (int i = 0; i < StringGrid1->ColCount; i++)
  {
    for (int j = 0; j < StringGrid1->RowCount; j++)
    {
      StringGrid1->Cells[i][j] = "";
    }
  }
ifstream f("name.txt");
  while (!f.eof())
  {
   ++i;
   f >> tmp.c_str();
   StringGrid1->RowCount=i;
   StringGrid1->Cells[0][0]="Èìÿ èãðîêà";
   StringGrid1->Cells[0][i]=tmp.c_str();
  }
  f.close();
  ifstream k("records.txt");
  while (!k.eof())
  {
   ++j;
   k >> t;
   StringGrid1->RowCount=j;
   StringGrid1->Cells[1][0]="Î÷êè";
   StringGrid1->Cells[1][j]=t;
  }
  k.close();
}
Почему то после второго открытия данные записываются не в очищаемые ячеки,а ниже очищаемых.Что не так столько уже событий попробовал,а оно ничего.
spectrum988 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка текстовой информации.(СИ) Iron_f1st Помощь студентам 1 01.12.2013 20:13
Как ускорить вывод текстовой информации в консоль Hemul Общие вопросы C/C++ 10 17.01.2011 20:41
Обработка текстовой информации С++ Перфаратар Общие вопросы C/C++ 2 30.11.2010 21:12
Обработка текстовой информации С++ Перфаратар Помощь студентам 0 29.11.2010 23:02
Вывод текстовой информации из документа TXT. soonner PHP 2 09.05.2009 21:57