Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Kabanets2005

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

AnsiString FileName;
FileName=FileListBox1->FileName;
char *file_head="X_Value\t\t\t\t\t\tComment\0"; //так заканчивается заголовок файла
char check_line[300]="", x_scale[50];
int  row_number=0,  
col_number=0, //число столбцов таблицы в файле
i=0,          //номер столбца в таблице при заполнении
j=0,          //номер строки в таблице при заполнении
head_pos=0;     //положение конца заголовка файла
 
using namespace std;
ifstream FILE0;
FILE0.open(FileName.c_str());             //открываем файл
if (FILE0!=NULL)
{                                    //здесь ищем строку, которой заканчивается  
                                 //заголовок
      while (strcmp(check_line, file_head)!=0)   //сравниваем искомую строку с читаемой
      FILE0.getline(check_line, 300);            //читаем строку в check_line
      head_pos=FILE0.tellg();                //когда нашли - запоминаем положение
                                                               //курсора
      delete check_line;                     //освобождаемся от check_line
                                                            //теперь проверяем кол-во столбцов в таблице
                                                            //по кол-ву табов
      FILE0.getline(check_line, 200);             //считываем одну строку и далее сканируем ее
      for (i=0; i<100; i++)                //достаточно сканировать 100 символов строки
             if (check_line[i]=='\t')            //само сканирование строки на наличие \t'
                   col_number++;
      Table->ColCount=col_number;      //устанавливаем макс.число столбцов таблицы
 
                            
      FILE0.seekg(head_pos);          //возвращаемся в “запомненное'' положение в файле
      while (FILE0.eof()!=true)
            {
                j++;  
                for (i=0; i<13; i++)    //здесь 13 выбрано наугад... почему-то с этим числом  
                {                //определенный файл читается нормально
                    FILE0>>x_scale;    //берем x_scale из потока и заносим ее в таблицу
                    Table->Cells[i][j]=x_scale;    
                }
                if (Table->RowCount<j)
                    Table->RowCount++;    //если число строк в таблице мало – увеличиваем его
            }
  }
  FILE0.close();
 

Всего записей: 16 | Зарегистр. 21-09-2006 | Отправлено: 19:12 17-04-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru