• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с задачей в паскале, работа с файлами

wildfires

Ученик
Регистрация
10 Дек 2011
Сообщения
6
Реакции
0
Баллы
0
Помогите с задачей в паскале, работа с файлами

Можете помочь с одной программой ?

Есть два файла j,f со случайным количеством строк. Например если в файле j строк больше, нужно перенести лишнии строки с конца в файл f, что бы строк в обоих файлах было поровну. Или наоборот. Паскаль.

Заранее спасибо.
 
Можете помочь с одной программой ?

Есть два файла j,f со случайным количеством строк. Например если в файле j строк больше, нужно перенести лишнии строки с конца в файл f, что бы строк в обоих файлах было поровну. Или наоборот. Паскаль.

Заранее спасибо.
Не слишком изящно, но работает. Имена, содержимое и расположение исходных файлов можете, конечно, поставить свои.
Код:
VAR
 Name1,Name2,Name,S:String;
 f1,f2,f3:Text;
 Nst1,Nst2,Nst,i:Word;

BEGIN
 Name1:='D:\text1.txt';
 Name2:='D:\text2.txt';
 Assign(f1,Name1);
 ReSet(f1);
 Assign(f2,Name2);
 ReSet(f2);
 Nst1:=0;
 Nst2:=0;
 Repeat
  Inc(Nst1);
  Readln(f1,S);
 Until EoF(f1);
 Repeat
  Inc(Nst2);
  Readln(f2,S);
 Until EoF(f2);
 Close(f1);
 Close(f2);
 If Nst1<Nst2 then
  begin
   Name:=Name1;
   Name1:=Name2;
   Name2:=Name;
   Nst:=Nst1;
   Nst1:=Nst2;
   Nst2:=Nst;
  end;
 Assign(f1,Name1);
 ReSet(f1);
 Assign(f2,Name2);
 Append(f2);
 Name:='D:\text3.txt';
 Assign(f3,Name);
 ReWrite(f3);
 For i:=1 to ((Nst1+Nst2) div 2) do
  begin
   readln(f1,S);
   writeln(f3,S);
  end;
 For i:=((Nst1+Nst2) div 2)+1 to Nst1 do
  begin
   readln(f1,S);
   writeln(f2,S);
  end;
 Close(f1);
 ReWrite(f1);
 Close(f3);
 ReSet(f3);
 For i:=1 to ((Nst1+Nst2) div 2) do
  begin
   readln(f3,S);
   writeln(f1,S);
  end;
 Close(f1);
 Close(f2);
 Close(f3);
 Erase(f3);
END.
 
Vladimir_S, спасибо огромное, немного подправил и сдал на 5)
 
Назад
Сверху