File63. Дано целое число $$K$$ $$(> 0)$$ и строковый файл. Создать два новых файла: строковый, содержащий первые $$K$$ символов каждой строки исходного файла, и символьный, содержащий $$K$$-й символ каждой строки (если длина строки меньше $$K$$, то в строковый файл записывается вся строка, а в символьный файл записывается пробел).
Решение:
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 |
program File63; type st = String[100]; var S: st; F_in,F_out_text: file of st; F_out_char: file of Char; i,K: integer; C:Char; begin Write('File In: '); Readln(S); Assign(F_in,S); Reset(F_in); Write('File String: '); Readln(S); Assign(F_out_text,S); Rewrite(F_out_text); Write('File Char: '); Readln(S); Assign(F_out_char,S); Rewrite(F_out_char); Write('K: '); Readln(K); while (not eof(F_in)) do begin Read(F_in,S); if length(S)>=K then begin C:=copy(S,K,1)[1]; Write(F_out_char,C); S:=copy(S,1,K); Write(F_out_text,S); end else begin C:=' '; Write(F_out_char,C); Write(F_out_text,S); end; end; Close(F_in); Close(F_out_text); Close(F_out_char); end. |
Другие задачи из раздела File можно посмотреть здесь.
это решение не работает ни в турбопаскале ни в АБЦ. Выдаёт ошибку выхода за пределы читаемого файла.