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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2008, 00:00   #11
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от maLoy*508 Посмотреть сообщение
А по подробней можно пожалуйста
Что подробней ?

Код:
 F := TFileStream.Create(....
 While true do begin
     C := F.read(Buffer, sizeOf(Buffer));
     if C <> sizeOf(Buffer) then begin
        // Файла не хватило на полный буфер
        // C - длина остатка 
     
     end;
 end;
Но, думаю, это не принципиально, и к сортировке никакого отношения не имеет.
alexBlack вне форума Ответить с цитированием
Старый 30.05.2008, 00:54   #12
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
У Вас процесс чтения неправильно организован. Нужно

Код:
N := 0
while not eof(file1) do begin
    inc(N);
    read(file1,ar[N]);

    if N = 10 then begin
       // Здесь набрался полный блок
       // его можно сортировать и записать 

       ....

       N := 0;
    end;
end;
if N > 0 then begin
  // А вот здесь остаток - часть блока длиной N 
 
  ...
end;
делаю вот так как Вы описали, Делфи ошибку не выдает, но на выходе получаю пустой файл, запись организована так как описано выше в этой теме...
maLoy*508 вне форума Ответить с цитированием
Старый 30.05.2008, 08:12   #13
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Вы бы лучше свой код привели.
alexBlack вне форума Ответить с цитированием
Старый 04.06.2008, 19:59   #14
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Это моя сортировка пузырьком
Код:
procedure BubbleSort(var ar:op);
var i,j,x : integer;
begin
for i :=2 to n do
for j := n downto i do
if ar[j-1]>ar[j] then
begin x := ar[j-1];
ar[j-1] := ar[j];
ar[j] := x
end; 
end;
а это моя разбивка на серии из десяти элементов
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
i:integer;
ar:op;
fl,kl:boolean;
file1:file of integer;
fileA:file of op;
fileB:file of op;


begin

assignfile(fileA,'a.txt');
assignfile(fileB,'b.txt');
assignfile(file1,ExtractFileName(OpenDialog1.FileName));
reset(File1);
reset(FileA);
reset(FileB);
  i := 0;
  fl:=false;
while not eof(file1) do begin
 inc(i);
  read(file1,ar[i]);

  If i=10 then
  begin
      
       BubbleSort(ar);
          if not fl then
        begin
          Write(FileA,ar);
         fl:=true;
         end
       else
         begin
           Write(FileB,ar);
           fl:=false;
         end;

       i:= 0;

    end;

if ( i > 0) then
begin

 BubbleSort(ar);
          if not fl then
        begin
         Write(FileA,ar);
         fl:=true;
         end
       else
         begin
            Write(Fileb,ar);
            fl:=false;
         end;

       i:= 0;
    end;
end;

closefile(File1);
closefile(FileA);
closeFile(FileB);
end;
на выходе в файле а получаю:    A Tц у7@ \±B 1 2 я‘Фw A Tц у7@ \±B 1 2 3 4 5 6 я‘Фw

и в файле b тоже самое...

пожалуйста, срочно нужна помощь...
maLoy*508 вне форума Ответить с цитированием
Старый 04.06.2008, 20:41   #15
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

А что Вы ожидали ?
fileA:file of op;
fileB:file of op;
op, я так понимаю, array of integer
Смотрите выходные файлы в 16-ричном виде
или меняйте формат выходных файлов
или сделайте отдельную процедуру, которая будет конвертировать эти файлы в текстовые.

Про входной файл Вы вообще ничего не сказали.

Последний раз редактировалось alexBlack; 04.06.2008 в 22:25.
alexBlack вне форума Ответить с цитированием
Старый 04.06.2008, 23:08   #16
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

вы правильно поняли...
Если можно, то подскажите как посмотреть в 16 ричном режиме, или на как поменять формат выходных файлов
maLoy*508 вне форума Ответить с цитированием
Старый 04.06.2008, 23:17   #17
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

посмотреть в 16-ричном виде - любой HEXView. В FAR F3/F4 наконец.
----
запись в текстовый файл:
var a:textFile;
и запись массивов поэлементно в цикле
Уж это-то Вы должны знать.
----------------
А почему бы не показать эти массивы в memo ?
alexBlack вне форума Ответить с цитированием
Старый 04.06.2008, 23:31   #18
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Вы предлагаете просто вывести их в memo или работать сразу с данными из memo?
maLoy*508 вне форума Ответить с цитированием
Старый 05.06.2008, 08:10   #19
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от maLoy*508 Посмотреть сообщение
Вы предлагаете просто вывести их в memo или работать сразу с данными из memo?
Просто вывести. То есть алгоритм будет работать с файлами в бинарном виде и параллельно выводить в memo - просто для отладки - чтобы был виден процесс сортировки.
alexBlack вне форума Ответить с цитированием
Старый 05.06.2008, 21:59   #20
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
Просто вывести. То есть алгоритм будет работать с файлами в бинарном виде и параллельно выводить в memo - просто для отладки - чтобы был виден процесс сортировки.
я, конечно, понимаю, что это нагло... Но нельзя бы было Вас попросить привести пример... очень сильно надо... заранее спасибо...
maLoy*508 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помочь с слиянием данных Neyron Microsoft Office Excel 19 04.06.2008 09:11
Внешняя сортировка Ashraf Помощь студентам 1 29.05.2008 08:56
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16