Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на сортировку информации в файле 
:(
    Опции темы
1122
  Дата 15.4.2008, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет. Есть такая задача:
В текстовом файле хранится историческая информация: дата в формате dd.mm.yyyy (число.месяц.год) и краткое сообщение о событии. Записать в другой файл эти исторические события в хронологическом порядке.
Как мне уже подсказали, ее нужно решать с помозью структуры...
Вот что написал:
Код

#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 4

int main()
{
    struct history
    {
    unsigned  int dd;
    unsigned    int mm;
    unsigned    int yyyy;
    char text[256];
    };
    struct history mass[N];
    int i;
    FILE *fin, *fout;

    if ((fin=fopen ("text1.txt","r+t"))==NULL)
    {
         printf("oshibka");
         exit(1);
    }
    if ((fout=fopen ("text2.txt","r+t"))==NULL)
    {
         printf("oshibka");
         exit(1);
    }

    rewind(fin);
    for(i = 0; i < N; i++)
    {
        
        fread(&mass[i].dd, sizeof(unsigned int), 2, fin);
        fread(&mass[i].mm, sizeof(unsigned int), 2, fin);
        fread(&mass[i].yyyy, sizeof(unsigned int), 4, fin);
        fread(&mass[i].text, sizeof(char), 256, fin);
    }
        for(i = 0; i < N; i++)
    {
        printf("%d",mass[i].dd);
        printf("%d",mass[i].mm);
        printf("%d",mass[i].yyyy);
        printf("%s\n",mass[i].text);
    }



    getch();
    return 0;
}


Подскажите пожалуйста, почему она криво заполняется (отображаются только последние две строчки из файла (их всего 4) и еще всякая абра-кадабра в начале)...
И еще подскажие плиз как ее сортировать... что-то я не догоняю как ее отсортировать с помощью qsort();
Буду рад любой помощи. Заранее спасибо!!!
PM MAIL   Вверх
1122
Дата 15.4.2008, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот такое подойдет. как вы думаете?

Код

     for(i = 0; i < N; i++)
    { data[i] = (30*12*mass[i].yyyy)+(30*mass[i].mm)+mass[i].dd;        
    }
    for(i = 0; i < N; i++)
    { 
        for(j=i; j < N; i++)
        {
            if(data[i] < data[j])
            {
                ddb = mass[i].dd;
                mmb = mass[i].mm;
                yyyyb = mass[i].dd;
                //bufftext = mass[i].text;
                mass[i].dd = mass[j].dd;
                mass[i].mm = mass[j].mm;
                mass[i].yyyy = mass[j].yyyy;
                //mass[i].text = mass[j].text;
                mass[j].dd = ddb; 
                mass[j].mm = mmb;
                mass[j].yyyy = yyyyb;
                //mass[j].text = bufftext;
                for(a = 0; a < 256; a++)
                {
                    bufftext[a] = mass[i].text[a];
                    mass[i].text[a] = mass[j].text[a];
                    mass[j].text[a] = bufftext[a];
                }
            }
        }
    }


Это сообщение отредактировал(а) 1122 - 15.4.2008, 09:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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