File65. Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наибольшей длины (в обратном порядке).
Решение:
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 |
program File65; type st = String[100]; var S,Name: St; F_in,F_out: file of st; LenFile,MaxLen,i,i2: integer; begin Write('File In: '); Readln(Name); Assign(F_in,Name); Reset(F_in); Write('File Out: '); Readln(Name); Assign(F_out,'~'+Name); Rewrite(F_out); MaxLen:=-1; while (not eof(F_in)) do begin Read(F_in,S); if (Length(S)>MaxLen) or (MaxLen=-1) then MaxLen:=Length(S); end; Close(F_in); Reset(F_in); LenFile:=0; while (not eof(F_in)) do begin Read(F_in,S); if Length(S)=MaxLen then begin Write(F_out,S); inc(LenFile); end; end; Close(F_in); Close(F_out); Assign(F_in,'~'+Name); Assign(F_out,Name); Rewrite(F_out); while (LenFile>0) do begin Reset(F_in); For i:=1 to LenFile do Read(F_in,S); Close(F_in); Write(F_out,S); dec(LenFile); end; Close(F_out); Erase(F_in); end. |
Другие задачи из раздела File можно посмотреть здесь.
Комментарии: