Задача следующая:
Дан файл, содержащий сведения о сотрудниках отдела учреждения.
Структура записи файла: фамилия, имя, отчество сотрудника, год рождения, должность, домашний телефон, домашний адрес. Записи в файле не упорядочены.
Написать программу которая:
- упорядочивает записи в алфавитном порядке, используя список, и записывает их в новый файл;
- печатает список сотрудников (в алфавитном порядке), у которых есть домашний телефон, выводить только ф.и.о. и номер телефона.
Вопрос - как упорядочить записи в алфавитном порядке и записать их в новый файл?
Последний раз садился за TC в прошлом году, ничего не помню - помогите, пожалуйста.
Давайте Вы напишете как читаете из файла, а как отсортировать полученные данные я покажу.
Хм. Я думал что Вы все элементы из файла считываете, скажем, в массив. Тогда можно было бы применить qsort().
Если считывать по одному, то это усложнит сортировку.
Ох, подскажите пожалуйста тогда как это сделать - я это-то с трудом из себя выдавил, абсолютно всё забыл.
Посмотрите http://ru.wikibooks.org/wiki/Язык_Си_в_примерах/Сортировка_на_основе_qsort. Там подобный пример, но попроще.
Спасибо большое =)
Считывать данные с жесткого диска все равно придется. Если считывать по одной записи, то это усложнит и крайне замедлит сортировку.
На одну запись не потребуется более 512 байт. Значит, полностью перенеся файл в оперативную память, мы займем, имея 10 000 записей, всего 5 Мегабайт.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)