10.12.2011, 19:18 | #1 (permalink) |
Новичок
Регистрация: 10.12.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с задачей в паскале, работа с файлами
Есть два файла j,f со случайным количеством строк. Например если в файле j строк больше, нужно перенести лишнии строки с конца в файл f, что бы строк в обоих файлах было поровну. Или наоборот. Паскаль. Заранее спасибо. |
10.12.2011, 19:18 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Рекомендую обратить внимание на данные топики, в них могут быть полезные ответы Работа с файлами записи Паскаль, работа с файлами |
11.12.2011, 13:27 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
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. |
|
16.12.2011, 19:30 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|