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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2012, 19:28   #1
Evg888
Новичок
Джуниор
 
Регистрация: 03.01.2012
Сообщений: 1
По умолчанию С++ сортировка в текстовом файле. (Задание на курсовик никак не получается)

Здравствуйте, помогите пожалуйста с курсовиком никак не получается сделать сортировку. Все остальное работает, только с сортировкой не получается никак, я написал, какой-то код, но при выполнении сртировки все зависает.
В задании база данных, в текстовом файле, в структуре, надо отсортировать по одному параметру, по номеру. Никак не получается сообразить как правильно это сделать
Помогите пожалуйста. я сам не справлюсь
Это структура

Код:
struct BOOK
{
  char nazvanie[NAZVANIE];
  int adres;
  int nomer;      
  float stoimost;             
  int col;
Вот кусок который не получается
Код:
void izm()
{
  ofstream fo;    // вспомогательный файл
  ifstream fi;
  char nazvanie[NAZVANIE];
  int flag=0;
  int s = 0;
  BOOK z;
  long dl;
  clrscr();

   
  

  do
  {
  fi.open("book.txt" );
  if (!fi)
  {
    cerr << "oshibca otcritia faila dla izmenenia";
    fprot << "oshibca otcritia faila dla izmeneniya\n";
    exit(1);
  }
  fi.seekg(0,ios::beg);
  fo.open("tmp.txt" , ios::app);

  if (!fo)
  {
    cerr << "oshibca otcritia faila dla zapisi";
    exit(1);
  }
  fo.seekp(0,ios::beg);


  

    
    while ( (!fi.eof())&&(flag != 1) )
    {
    fi >> z;
    
    
    if  ( (z.nomer >= s ) && (strcmp(nazvanie,z.nazvanie) != 0 ))
     {
     strcpy (nazvanie , z.nazvanie);
     flag = 1;
     s = z.nomer;
     fo  << z;

     }

     }                        
   fi.seekg(0,ios::beg);

  while ( !fi.eof() )
  {
    fi >> z;
  
    if (strcmp(z.nazvanie, nazvanie ) != 0)
      
     fo << z;
  
    }

  fi.close();
  fo.close();
  
  
  
    
      remove("book.txt");                 // удаление с диска файла  book.txt
      rename("tmp.txt","book.txt"); // переименование файла  tmp.txt
                                                      //  v book.txt
	     }  while (flag==1)   ;

  return;
}
Вложения
Тип файла: txt курсовик.txt (11.9 Кб, 132 просмотров)

Последний раз редактировалось Evg888; 02.06.2012 в 19:37.
Evg888 вне форума Ответить с цитированием
Старый 02.06.2012, 19:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Никак не получается сообразить как правильно это сделать
Не надо сортировать прямо в файле. Загружай в динмассив и в нем сортируй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск символов в тестовом файле и их вывод. sinobithug PHP 7 05.11.2010 14:55
Никак не получается.... Seldom Общие вопросы C/C++ 0 11.03.2010 10:44
задача на Delphi, массивы. никак не получается! Saka Помощь студентам 11 21.12.2009 02:04
Курсовик. Класс, организующий доступ к данным в файле Striker_ Помощь студентам 0 18.06.2009 18:48
у меня никак не получается скомпелировать фаил finero Общие вопросы C/C++ 4 10.07.2008 19:29