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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2011, 21:27   #1
tema654
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 49
По умолчанию Сортировка в БД

необходимо произвести сортировку по фамилии в БД. Не представляю как это можно сделать,хелп!
Код:
Program baza;
Uses crt;
type spisok=record;
     fam:string;
     imja:string;
     oth:string;
     yb:string;
     adress:string;
     zab:string;
     dpp:string;
     data:string;
     end;
FT= file of spisok;
Var a:ft;
    i,z,k,s1:integer;
    s:real;
    f:string;
    
Procedure Sozd (var a:ft);
Var i:integer;
    zk:spisok;
    j:string;
begin
rewrite (a);
 while j<>'Y' do
          begin
          write ('Введите Фамилию ');
          readln (zk.fam);
          write ('Введите Имя ');
          readln (zk.imja);
          write ('Введите Отчество ');
          readln (zk.oth);
          write ('Год рождения  ');
          Readln (zk.yb);
          write ('Адрес ');
          readln (zk.adress);
          write ('Заболевание ');
          readln (zk.zab);
          write ('Последнее посещение ');
          readln (zk.dpp);
          write (a,zk);
          writeln ('Завершить ввод данных? ( Y \ N )');
          readln (j);
          end;
close (a);
end;

Procedure dop(var a:ft);
Var i:integer;
    zk:spisok;
    j:string;
begin
reset(a);
seek(a,filesize(a));
 while j<>('Y') do
          begin
          write ('Введите Фамилию ');
          readln (zk.fam);
          write ('Введите Имя ');
          readln (zk.imja);
          write ('Введите Отчество ');
          readln (zk.oth);
          write ('Год рождения  ');
          Readln (zk.yb);
          write ('Адрес ');
          readln (zk.adress);
          write ('Заболевание ');
          readln (zk.zab);
          write ('Последнее посещение ');
          readln (zk.dpp);
          write (a,zk);
          writeln ('Завершить ввод данных? ( Y \ N )');
          readln (j);
          end;
close (a);
end;

procedure itog(f:String; var a:ft);
Var i,k,s1:integer;
    zk:spisok;
begin
reset(a);
s1:=0;
while not eof(a) do
      begin
      read (a,zk);
      if zk.zab='Диабет' then inc(s1);
      end;
writeln('Число больных диабетом:',s1);
if  (f<>'05') or (f<>'04') or (f<>'03') then
writeln('enter-назад');
readln;
close(a);
end;

Procedure vyvod (var a:ft; var k:integer;var f:string);
Var i:integer;
    zk:spisok;
begin
reset(a);
 writeln ('№   Фамилия |  Имя |  Отчество | Дата р.|      Адрес        |Болезнь|Посл.визит');
 k:=0;
  while not eof(a) do
   begin
    k:=k+1;
    write (k);
    read (a,zk);
    write (zk.fam:11);
    write (zk.imja:7);
    write (zk.oth:12);
    write (zk.yb:9);
    write (zk.adress:20);
    write (zk.zab:8);
    write (zk.dpp:11);
    writeln;
   end;
   writeln;
   f:=copy(zk.dpp,4,2);
   writeln('enter-назад');
   readln;
close (a);
end;



procedure delete (k:integer; var a:ft);
Var n,m:longint;
      i:byte;
       zk:spisok;
      mas:array [1..20] of spisok;
begin
repeat
clrscr;
 i:=1;
 reset(a);
 writeln ('№   Фамилия |  Имя |  Отчество | Дата р.|      Адрес        |Болезнь|Посл.визит');
 k:=0;
  while not eof(a) do
   begin
    k:=k+1;
    write (k);
    read (a,zk);
    write (zk.fam:11);
    write (zk.imja:7);
    write (zk.oth:12);
    write (zk.yb:9);
    write (zk.adress:20);
    write (zk.zab:8);
    write (zk.dpp:11);
    writeln;
   end;
 writeln;
 writeln ('Введите номер записи для удаления ');
 readln(n);
 if n>k then begin write ('Такого номера нет'); delay(2000); end;
 until n<=k;
 m:=filesize(a)-n;
 seek (a,n);
 while not eof(a) do
           begin
            read (a,mas[i]);
            i:=i+1;
           end;
 close (a);
 reset (a);
 seek (a,n-1);
 truncate (a);
 close (a);
 reset (a);
 seek (a,n-1);
  for i:=1 to m do
   write (a,mas[i]);
   writeln('enter-назад');
   readln;
end;

Procedure poisk (var a:ft);
var i,k:integer;
    zk:spisok;
    name:string;
begin
reset (a);
 write ('Введите Фамилию для поиска: ');
 readln (name);
 writeln ('Список с заданной фамилией ');
 writeln ('№   Фамилия |  Имя |  Отчество | Дата р.|      Адрес        |Болезнь|Посл.визит');
 k:=0;

 while not eof(a) do
 begin
  read (a,zk);
  if zk.fam=name then
  begin
    k:=k+1;
    write (k);
    write (zk.fam:11);
    write (zk.imja:7);
    write (zk.oth:12);
    write (zk.yb:9);
    write (zk.adress:20);
    write (zk.zab:8);
    write (zk.dpp:11);
    writeln;
  end;
 end;
 if k<1 then writeln('Такого пациента нет');
 writeln('enter-назад');
 readln;
close(a);
end;


begin
repeat
clrscr;
assign (a,'n:\BD1.txt');
writeln ('Меню:');
writeln ('1:Создание ');
writeln ('2:Вывод ');
writeln ('3:Удаление ');
writeln ('4:Поиск ');
writeln ('5:Дополнить таблицу ');
writeln ('6:Итог ');
writeln ('7:Выход ');
readln (z);
clrscr;
 case z of
  1:sozd(a);
  2:vyvod (a,k,f);
  3:delete(k,a);
  4:poisk (a);
  5:dop (a);
  6:itog (f,a);
  end;
  until z=7;
end.
tema654 вне форума Ответить с цитированием
Старый 08.06.2011, 23:39   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

см.
http://www.programmersforum.ru/showthread.php?t=149755
(особенно пост #10)

ещё сюда посмотрите - http://www.programmersforum.ru/showp...31&postcount=4
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка методом линейного выбора и "быстрая" сортировка Карол Помощь студентам 4 27.09.2009 19:52
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32