Другие языки программирования и технологии

Программисты пишущие на Delphi пожалуйста помогите!!!

Так как файлы упорядоченные, то можно обойтись без массивов ( при очень больших файлах экономится память и время поиска дублей )
-------------------------Резать здесь ------------------------
procedure CreateSortedFile(const FileName1,FileName2,FileName3:string);
var
f1 : file of integer;
f2 : file of integer;
f3 : file of integer;
k, // Счетчик записанных чисел
sn, // выбранное наименьшее число
n1,
n2,
n3 : integer;
begin
AssignFile(f1,FileName1); Reset(f1);
AssignFile(f2,FileName2); Reset(f2);
AssignFile(f3,FileName3); Rewrite(f3);
Read(f1,n1); Read(f2,n2); k := 0;
while not EOF(f1) or not EOF(f2) do //пока не кончились оба файла читаем их
begin
if (n1 > n2) or EOF(f1) then
begin // Второе число меньше или первый файл кончился
sn := n2; // Выбираем второе число
if not EOF(f2) then Read(f2,n2); // продвигаем второй файл
end
else
if (n1 < n2) or EOF(f2) then
begin // Первое число меньше или второй файл кончился
sn := n1; // Выбираем первое число
if not EOF(f1) then Read(f1,n1); // продвигаем первый файл
end else
begin // Числа равны
sn := n1; // Выбираем любое
if not EOF(f1) then Read(f1,n1); // продвигаем первый файл
if not EOF(f2) then Read(f2,n2); // продвигаем второй файл
end;
if (k=0) or (n3 <> sn) then
begin // первая запись или не записывали этого числа - пишем
Write(f3,sn); Inc(k); n3 := sn;
end;
end;
CloseFile(f1);
CloseFile(f2);
CloseFile(f3);
end;
-------------------------Резать здесь ------------------------
Осторожно, исходник не проверял
Pavlik G
Pavlik G
13 991
Лучший ответ
блин писать лень)) )
Алгоритм:
1)читаем следующие число пока не конец файла если конец то п. 3
2)Проверяем есть ли оно в массиве если есть то пункт 1 если нет то пишем в массив+) к пункту 1
3)Сортируем массив
4) пишем в новый файл наш массив
//п 1-2 для обоих файлоф