Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
shaguard
1 / 1 / 2
Регистрация: 20.10.2009
Сообщений: 75
#1

Слияние двух файлов по сериям - Delphi

26.04.2012, 23:16. Просмотров 436. Ответов 0
Метки нет (Все метки)

Смысл у меня есть сортировка! многофазная
В ней нужно сливать отсортированные файлы по сериям! есть фрагмент программы, но доработать чет не могу помогите! Пожайлута! Уж оч надо! Заранее спасибо!

Пример

A 15 16 22 90
B 12 18 30 27

На выходе уже

C 12 15|22 30
D 16 18|27 90

Чтобы процедура была универсальной для любого кол-ва серий!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
procedure file_merge_A_B (S;string);
var a1,a2,i,s,j: integer;
    z,x,ss: boolean;
begin
   reset(A);                                    /// s серия
   reset(B);
   rewrite(C);
   rewrite(D);
   read(A,a1);
   Read(B,a2);   z:=true;
   While (not EOF(A)) and (not EOF(B)) do
    begin
     if z then
           begin
            x:=true;
            i:=1; j:=1;
            While (not EOF(A) and not EOF(B)) and x do
             begin
              If (a1<a2) then
                          begin
                           Write(C,a1);
                           Read(A,a1);
                           inc(i);
                          End
                         else
                          begin
                           Write(C,a2);
                           Read(B,a2);
                           inc(j);
                          End;
              If (i=s) or (j=s) then x:=false;
             End;
            If not x then
                       begin
                     ss:=true;
                     while (i<Size)and ss do
                      begin
                      if not eof(A) then
                                     begin
                                       Write(C,a1);
                                       Read(A,a1);
                                       inc(i);
                                     end
                                    else
                                     ss:=false;
                      end;
                    ss:=true;
                     while (j<Size)and ss do
                      begin
                      if not eof(B) then
                                     begin
                                       Write(C,a1);
                                       Read(B,a1);
                                       inc(j);
                                     end
                                    else
                                     ss:=false;
                      end;
                   end;
         if (i=size) and (j=size) then z:=false;
       end
  else
   begin
   i:=1; j:=1;
     x:=true;
         While (not EOF(A)) and (not EOF(B))and (x) do
                       begin
                         If (a1<a2) then
                           begin
                             Write(D,a1);
                             Read(A,a1);
                             inc(i);
                           End
 
                         else
                           begin
                             Write(D,a2);
                             Read(B,a2);
                             inc(j);
                           End;
                         If (i=s) or (j=s) then x:=false;
                       End;
                        If not x then
                       begin
                     ss:=true;
                     while (i<Size)and ss do
                      if not eof(A) then
                                     begin
                                       Write(D,a1);
                                       Read(A,a1);
                                       inc(i);
                                     end
                                    else
                                     ss:=false;
                    ss:=true;
                     while (j<Size)and ss do
                      if not eof(B) then
                                     begin
                                       Write(D,a1);
                                       Read(B,a1);
                                       inc(i);
                                     end
                                    else
                                     ss:=false;
                       End;
     if (i=size) and (j=size) then z:=true;
   end;
 
     end; Close(A);Close(B);CloseFile(C);CloseFile(D);
  Erase(A);
  Erase(B);
  rewrite(A);  closeFile(A);
  rewrite(B);  CloseFile(B);
 
end;

http://www.cyberforum.ru/delphi-beginners/thread1575008.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 23:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Слияние двух файлов по сериям (Delphi):

Слияние двух стеков
Создать программу, которая сбивает два стека, содержащих возрастную...

Слияние двух Мемо
Есть такая задача. У меня есть два Мемо, я загружаю файл, и текст появляется в...

Слияние двух стеков
Добрый день. В задаче нужно слить два отсортированных стека, так чтобы...

Слияние двух матрицы
Программисты,помогите пожалуйста решить задачу 10 класса) Заданы две матрицы...

Сортировка файлов Многопутевое слияние
Реализовать алгоритм сортировки исходного файла, содержащего N элементов...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2012, 23:16
Привет! Вот еще темы с решениями:

Естественное слияние для файлов
Дан файл f, компоненты которого являются целыми числами. Известно, что никакая...

Слияние двух массивов. Спасайте ;)
Проект1 - нужно упорядочить массив по возрастанию. Сделано. Упорядоченные...

Слияние двух упорядоченных массивов.
Элементы каждого из массивов X и Y упорядочены по не убыванию. Объединить...

разбор по сериям
Подскажите как сделать что бы серии накладывались друг на друга а не как на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru