Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами - Free Pascal
Формулировка задачи:
Файл input.txt содержит несколько строк текста. Слова в тексте могут разделяться пробелами и знаками препинания. Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами. Список синонимов находится в файле sinonim.dat в виде:
слово1 синонимслова1
слово2 синонимслова2
.......................
словоN синонимсловаN
Решение задачи: «Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами»
textual
Листинг программы
const Delims=[#0..#127]-['0'..'9','A'..'Z','a'..'z']; var fs: Text; function Synonym(s: String): String; var p: String; begin Synonym:=s; s:=s+' '; Reset(fs); while not EOF(fs) do begin ReadLn(fs,p); if Pos(s,p)=1 then begin Synonym:=Copy(p,Length(s)+1,255); Break; end; end; end; var s, d, w: String; i: Integer; begin Assign(fs,'sinonim.dat'); Assign(input,'input.txt'); Assign(output,'output.txt'); Reset(fs); Reset(input); Rewrite(output); while not EOF do begin ReadLn(s); s:=s+' '; d:=''; w:=''; for i:=1 to Length(s) do begin if s[i] in Delims then begin if w>'' then d:=d+Synonym(w); d:=d+s[i]; w:=''; end else w:=w+s[i]; end; WriteLn(Copy(d,1,Length(d)-1)); end; Close(fs); Close(input); Close(output); end.
Объяснение кода листинга программы
- В начале кода объявляются константы и переменные.
- В функции
Synonym
происходит поиск синонимов для слова в тексте из файлаsinonim.dat
. - В основном блоке кода происходит чтение и запись текста из/в файлы
input.txt
иoutput.txt
. - В каждой строке текста, разделенной пробелами, ищутся слова, которые нужно заменить.
- Каждое найденное слово, если оно найдено, заменяется синонимом из файла
sinonim.dat
. - Записанные в переменную
d
строки, содержащие найденные слова и их синонимы, записываются в файлoutput.txt
. - После каждой строки, содержащей найденные слова, записывается следующая строка, не содержащая найденные слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д