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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 00:12   #21
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

по поводу третьего. Либо Вы не разобрались в претензиях преподавателя, либо он не понимает, как работает программа. В выложенных вами скриншотах тот же самый размер блока в 1 байт (см. Rewrite(f, 1) ). К сожалению, думаю, что эту проблему взаимонепонимания с преподавателем Вам прийдётся решать самостоятельно, я тут не помощник.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.11.2012, 23:24   #22
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

посмотрел.. Вы пытаетесь прямо в файле сортировать?!
Это же удар по здравому смыслу, по оптимальности и по вашему жесткому диску!
Почитайте мой пост #4 в этой теме: Паскаль. Сортировка.

ну если всё вышесказанное Вас не останавливает, тогда попробуйте так:
Код:
var
....
  {dlya sortirovki}
  i,j : integer;
  x, y :tov;
  {---------------}


    7:   {Sortirovka po Vozrastaniy Stoimosti}
       begin

       reset(fd);
       for i:=0 to filesize(fd)-2 do
       for j:=i+1 to filesize(fd)-1 do
         begin
           seek(fd,i);
           read(fd,x);
           seek(fd,j);
           read(fd,y);

           if(x.stoim>y.stoim) then
           begin
             seek(fd,i);
             write(fd,y);
             seek(fd,j);
             write(fd,x);
           end;
        end;
        Close(fd);  {SORTIROVKA ZAVERSHENA}

       writeln('Otsortirovannie dannie:');
       writeln(''); {neponimay(  }

       writeln('Vivod dannih:  ');
       assign(fd, fdFileName);
          reset(fd);

          writeln('+----------------------+-----------------------+--------+----------+');
          writeln('|NomZ     Artikyl      |    Naimenovanie       | Kol-vo | Stoimost |');
          writeln('+----------------------+-----------------------+--------+----------+');

          while (not eof(fd)) do
          begin
            read(fd, dan);
            WriteLn('|',filepos(fd), dan.artik: 20, '  | ', dan.naim: 20, '  | ', dan.kol: 6, ' | ', dan.stoim: 6);
          end;
          writeln('+----------------------+-----------------------+--------+----------+');
          close(fd);
          WriteLn; WriteLn('Press Enter to continue');
          Readln;
    end;
p.s. а вы абсолютно зря продолжаете игнорировать мой совет по поводу выделения кода в отдельные процедуры/функции!!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Нетипизированный файл Bizunov Помощь студентам 4 15.05.2011 15:29
Текстовый и типизированный файл Пушистик Паскаль, Turbo Pascal, PascalABC.NET 0 15.04.2009 20:19
нетипизированный файл amandra Общие вопросы Delphi 6 07.10.2008 07:44
Нетипизированный файл OrdJONY Общие вопросы Delphi 10 03.10.2007 18:39