Строки в текстовых файлах: Произошло переполнение строки при выполнении операции "+" - 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.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • f, g: text; - файловые переменные
    • i, j, n, k: integer; - целочисленные переменные
    • s: string; - строковая переменная
    • c: char; - символ
  2. Открыт файл f для записи и перезаписи с помощью функции assign и закрыт с помощью функции close.
  3. Цикл repeat используется для ограничения количества строк в файле до 20. Пользователю предлагается ввести количество строк, но если он вводит больше 20, выводится сообщение об ошибке.
  4. Заполнение файла f строками, введенными пользователем. Цикл for i:=1 to n выполняет эту операцию.
  5. Открыт файл g для записи и перезаписи с помощью функции assign.
  6. Цикл while not eof(f) читает строки из файла f и обрабатывает их по частям, удаляя лишние символы.
  7. Если в строке есть цифры, они собираются в отдельную строку, которая затем записывается в файл g.
  8. Файл g выводится на экран с помощью цикла while not eof(g).
  9. Файлы f и g закрываются с помощью функции close.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы