В текстовом файле содержится строка из слов - Pascal ABC
Формулировка задачи:
В текстовом файле содержится строка из слов,разделенных запятыми. Создать новый файл , в котором слова записаны в обратном порядке( запятые после слов сохраняются)
Например исходный файл:
мама, мыла, раму
Тогда новый:
раму, мыла, мама
Пожалуйста помогите!!!
Решение задачи: «В текстовом файле содержится строка из слов»
textual
Листинг программы
var f:text;
s:string;
a:array[1..100] of string;
n,i:byte;
begin
assign(f,'input.txt');//файл в папке с програмой
reset(f);
readln(f,s);
s:=s+',';
close(f);
n:=0;
while pos(',',s)>0 do
begin
n:=n+1;
a[n]:=copy(s,1,pos(',',s)-1);
delete(s,1,pos(',',s));
end;
for i:=1 to n div 2 do
begin
s:=a[i];
a[i]:=a[n-i+1];
a[n-i+1]:=s;
end;
assign(f,'output.txt');
rewrite(f);
for i:=1 to n do
begin
write(f,a[i]);
if i<n then write(f,',');
end;
close(f);
writeln('Файл перезаписан')
end.
Объяснение кода листинга программы
- Создается переменная f типа text и присваивается значение 'input.txt'. Эта переменная будет использоваться для чтения из текстового файла.
- Выполняется команда reset(f), которая подготавливает файл для чтения.
- Выполняется команда readln(f,s), которая читает строку из файла и сохраняет ее в переменной s.
- Строка s удлиняется на один символ, используя оператор конкатенации (s:=s+',').
- Закрывается файл f с помощью команды close(f).
- Переменная n инициализируется значением 0.
- Запускается цикл while, который выполняется до тех пор, пока в строке s есть запятые (pos(',',s)>0).
- Внутри цикла переменная n увеличивается на 1.
- В строку a[n] записывается подстрока s, начиная с первого символа и заканчивая позицией запятой в строке s (pos(',',s)-1).
- Строка s удаляется из переменной s (delete(s,1,pos(',',s)).
- Цикл while повторяется.
- Для каждого i от 1 до n/2 (т.е. для четных индексов) выполняется следующий блок кода:
- Строка s присваивается значению a[i].
- Значение a[i] присваивается значению a[n-i+1].
- Значение a[n-i+1] присваивается строке s.
- Создается новый файл с именем 'output.txt' и инициализируется пустым.
- Выполняется цикл for, который проходит по каждому i от 1 до n (т.е. для всех индексов).
- Внутри цикла выполняется команда write(f,a[i]), которая записывает значение a[i] в файл 'output.txt'.
- Если i меньше n, то после записи значения a[i] в файл также выполняется команда write(f,','), чтобы добавить запятую после каждого числа.
- После завершения цикла for закрывается файл 'output.txt' с помощью команды close(f).
- Выводится сообщение 'Файл перезаписан'.