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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 22:37   #1
doomer3
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию сортировка данных в файле

Помогите пожалуйста с решением задачи:
Дан файл anketa.txt c анкетными данными: ФИО год рождения и т.д.
Требуется отсортировать и вывести в файл anketa2.txt.
Не могу отсортировать. Вот что наклепал:

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type spisok = record
    name:string[34];  {1}
    birth:integer;    {2}
    edu:char;         {3}
    marr:char;        {4}
    child:char;       {5}
    pol:string[2];    {6}
    prof:char;        {7}
end;

var fin,fout2:textfile; fin2,fout:file of spisok; f:spisok;
    i,k:integer;

begin
  AssignFile(fin,'anketa.zdb'); AssignFile(fout,'anketa.res');
  reset(fin); rewrite(fout);
  while not eof(fin) do
    begin
      readln(fin,f.name,f.birth,f.edu,f.marr,f.child,f.pol,f.prof);
      write(fout,f)
    end;
    closefile(fin);
    closefile(fout);
   { assignfile(fin2,'anketa.res');
    assignfile(fout2,'anketa2.txt');
    reset(fin2);
    rewrite(fout2);

      while not eof(fin2) do
        begin
          read(fin2.f);






            closefile(fin2);
            closefile(fout2);
  }
     { TODO -oUser -cConsole Main : Insert code here }

  end.
Файл anketa.txt Anketa.txt


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 17.04.2011 в 23:42.
doomer3 вне форума Ответить с цитированием
Старый 17.04.2011, 22:39   #2
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

А по какому параметру сортировать и как: по возрастанию или убыванию?
Asker13 вне форума Ответить с цитированием
Старый 17.04.2011, 22:41   #3
doomer3
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

Сортировать по году рождения - второй параметр в файле анкета.txt (f.birth) по возрастанию.
doomer3 вне форума Ответить с цитированием
Старый 17.04.2011, 22:43   #4
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Сортировка пузырьком:
http://ru.wikipedia.org/wiki/%D0%A1%...BA%D0%BE%D0%BC
Asker13 вне форума Ответить с цитированием
Старый 17.04.2011, 22:48   #5
doomer3
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

тоже подумал про пузырек, только как применить его к (f.birth) и задать ограничение конца списка в цикле на практике ? может числом строк в файле ?
doomer3 вне форума Ответить с цитированием
Старый 17.04.2011, 23:01   #6
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Тебе надо создать массив spis: array [1..N] of spisok;, где N - константа и является любым числом (100 например). Потом изменить чтение вот так:
Код:
count := 0;
while not eof(fin) do
begin
  Inc(Count);
  with spis[count] do
    readln(fin, name, birth, edu, marr, child, pol, prof);
end;
Count - переменная, которая будет содержать значение равное количеству строк в файле.
У тебя есть массив, есть количество элементов (count). Остаётся только отсортировать и вывести всё в файл.

Последний раз редактировалось Asker13; 17.04.2011 в 23:03.
Asker13 вне форума Ответить с цитированием
Старый 17.04.2011, 23:11   #7
doomer3
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

Спасибо! Попробую!
doomer3 вне форума Ответить с цитированием
Старый 17.04.2011, 23:29   #8
doomer3
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

что значит with ? компилятор ругается
doomer3 вне форума Ответить с цитированием
Старый 17.04.2011, 23:58   #9
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

http://pas1.ru/with
Не знаю, почему ругается, вроде не должен. Может он не на него ругается, а на массив spis?
Asker13 вне форума Ответить с цитированием
Старый 18.04.2011, 00:49   #10
doomer3
 
Регистрация: 16.05.2010
Сообщений: 6
По умолчанию

проверю, но только завтра, спокойной ночи!
doomer3 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка слов в файле alextm07 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 07.01.2011 01:37
Сортировка данных в файле. Animex Помощь студентам 3 10.12.2010 08:21
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Сортировка в текстовом файле Isthmus Паскаль, Turbo Pascal, PascalABC.NET 18 01.05.2008 20:46