Строки в текстовых файлах: Произошло переполнение строки при выполнении операции "+" - Pascal ABC
Формулировка задачи:
Здравствуйте.
Есть код, который перемещает цифры в строках в конец строк и записывает это всё в новый файл.
На 26-ой строке (s1:=s1+s[i]) выбивает ошибку: «Произошло переполнение строки при выполнении операции "+"». С чем это связано и как этого можно избежать?
Решение задачи: «Строки в текстовых файлах: Произошло переполнение строки при выполнении операции "+"»
textual
Листинг программы
var f,g:text; i,j,n,k:integer; s:string; c:char; begin assign(f,'filef.txt'); repeat write('Введите количество строк в файле (не больше двадцати!) n='); readln(n); if not(n in [1..20]) then writeln('Введите число от 1 до 20'); until n in [1..20]; rewrite(f); for i:=1 to n do begin writeln('Введите строку:'); readln(s); writeln(f,s); end; reset(f); assign(g, 'fileg.txt'); rewrite(g); while not eof(f) do begin readln(f,s); n:=Length(s); k:=0; for i:=n downto 1 do if s[i] in ['0'..'9'] then begin k:=k+1; c:=s[i]; for j:=i to n-k do s[j]:=s[j+1]; s[n-k+1]:=c; end; writeln(g,s); end; writeln('Файл g содержит:'); close(f); reset(g); while not eof(g) do begin readln(g,s); writeln(s); end; close(g); end.
Объяснение кода листинга программы
- Объявлены переменные:
- f, g: text; - файловые переменные
- i, j, n, k: integer; - целочисленные переменные
- s: string; - строковая переменная
- c: char; - символ
- Открыт файл f для записи и перезаписи с помощью функции assign и закрыт с помощью функции close.
- Цикл repeat используется для ограничения количества строк в файле до 20. Пользователю предлагается ввести количество строк, но если он вводит больше 20, выводится сообщение об ошибке.
- Заполнение файла f строками, введенными пользователем. Цикл for i:=1 to n выполняет эту операцию.
- Открыт файл g для записи и перезаписи с помощью функции assign.
- Цикл while not eof(f) читает строки из файла f и обрабатывает их по частям, удаляя лишние символы.
- Если в строке есть цифры, они собираются в отдельную строку, которая затем записывается в файл g.
- Файл g выводится на экран с помощью цикла while not eof(g).
- Файлы f и g закрываются с помощью функции close.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д