Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение данных из файла 
V
    Опции темы
kuvshinka
Дата 9.3.2011, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



ест файл file1.txt, содержащий:
123 // бла-бла-бла
7234 // comment 

мне надо скопировать в строковый массив Mas[10] строки из данного файла только до символа пробела (или табуляции) - т.е. должно быть Mas[0]=123, Mas[1]=7234...подскажите пож-та программно самый простой способ решения такой задачки...
Пробовала следующее:
Код

  FILE *p2;
  int cc=0;

        p2=fopen("C:\\file1.txt","r");

           while (!feof(p2))
           {
              fscanf(p2, "%c", &mm[cc]  );
              cc++;
            }

             Memo1->Lines->Add(mm);

       fclose(p2);
       delete p2;

да что-то совсем не получается...помогите пож-та!!!
PM MAIL   Вверх
Noris
Дата 10.3.2011, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.4.2010

Репутация: нет
Всего: нет



читай построчно, а потом выделяй до пробела:
Код

char buf[500];
AnsiString tmp;
while(!feof(p2))
   {
       fgets(buf,500,p2); //читает построчно 500- это на вскидку сколь у тя символов в строке
       for (int i=0;i<500;i++)
       {
         if (buf[i]!=' ') 
             tmp+=buf[i];
         else
             break;
       }
      Memo1->Lines->Add(tmp);
     tmp="";
     ZeroMemory(buf,500);
   }
       

попробуй так
PM MAIL   Вверх
kuvshinka
Дата 10.3.2011, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

Репутация: нет
Всего: нет



Noris: спасибо за ответ...а что за функция ZeroMemory и что она делает?
PM MAIL   Вверх
Nat
Дата 10.3.2011, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



Можно еще так, разделителем в примере является табуляция:
Код

        char st[ 100 ];
        char *p;
        fstream in( "C:\\file1.txt" );
        if( !in.good() ) return;
        in.getline( st, 100 );
        p = strtok( st, "\t" );
        while( p ) 
        {
              Memo1->Lines->Add(p);
              p = strtok( NULL, "\t" );
        }
        in.close();

PM MAIL   Вверх
Noris
Дата 11.3.2011, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.4.2010

Репутация: нет
Всего: нет



Цитата(kuvshinka @  10.3.2011,  06:30 Найти цитируемый пост)
ZeroMemory 

заполняет нулями выделенный фрагмент памяти под переменную... Другими словами она переменную зануляет, удобно особенно когда применяешь тип переменной char
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.