Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2017, 20:51   #1
broiler747
Пользователь
 
Регистрация: 30.11.2017
Сообщений: 22
По умолчанию Имеется программа, которая заменяет определенное слово в файле, что изменить чтобы вместо файла, писать в консольном режиме предложение в котором будет меняться слово.-Delphi

program Project3_ready;

{$APPTYPE CONSOLE}

uses
SysUtils,
Windows;

const

D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];

M = 1;
cFn1 = 'file1.txt';
cFn2 = 'file2.txt';
var
F1, F2 : Text;
S, Sw, Fn1, Fn2 : String;
Arr1, Arr2 : array[1..M] of String;
i, j, Len, LenW, Cnt : Integer;
begin

SetConsoleCP(1251);
SetConsoleOutputCP(1251);

Fn1 := ExtractFilePath(ParamStr(0)) + cFn1;
Fn2 := ExtractFilePath(ParamStr(0)) + cFn2;

repeat
Writeln('Файл с исходным текстомГ¬: ', Fn1);
Writeln;
Writeln('Задайте слова, которые нужно заменить');
i := 0;
repeat
Write('Ñëîâî ', i + 1, ': ');
Readln(S);
if S <> '' then begin
Inc(i);
Arr1[i] := S;
end;
until (S = '') or (i = M);
Cnt := i;

Writeln('Задайте слова на которые нужно заменить.');
i := 0;
repeat
Write('Ñëîâî ', i + 1, ': ');
Readln(S);
if S <> '' then begin
Inc(i);
Arr2[i] := S;
end;
until (S = '') or (i = M);

if i < Cnt then Cnt := i;
Writeln('Количество пар для замены: ', Cnt);
if Cnt = 0 then begin
Writeln('Пары не заданы. Действие отменено.');
Readln(S);
Continue;
end;

AssignFile(F1, Fn1);
AssignFile(F2, Fn2);
Reset(F1);
Rewrite(F2);
while not Eof(F1) do begin
Readln(F1, S);
Len := Length(S);
LenW := 0;

for i := Len downto 1 do
if not (S[i] in D) then begin
Inc(LenW);
if (i = 1) or (S[i - 1] in D) then begin
Sw := Copy(S, i, LenW);

j := 1;
while (j <= Cnt) and (Sw <> Arr1[j]) do Inc(j);
if j <= Cnt then begin
Delete(S, i, LenW);
Insert(Arr2[j], S, i);
end;
LenW := 0;
end;
end;
Writeln(F2, S);
end;
CloseFile(F1);
CloseFile(F2);

Writeln('Текст обработан. Результат записан в файл: ', Fn2);
Writeln;
Readln(S);
until S <> '';
end.
broiler747 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа находит и длинное и короткое слово можете изменить её так чтобы она находило только короткое слово Александр121 Помощь студентам 3 23.11.2017 20:25
программа, которая удаляет из слова наименьшее количество букв так, чтобы слово не содержало двух типов опечаток. Николай Сергеев Паскаль, Turbo Pascal, PascalABC.NET 2 20.11.2013 16:52
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово (С++) Lapochka Помощь студентам 6 01.12.2011 14:05
Дано 2 слова. Написать программу, которая будет определять присутствует ли слово 1 в слове 2. Паскалька^^ Помощь студентам 5 19.10.2010 00:55
Как изменить цвет текста на всей строке в RichEdit, если строка содержит определенное слово?? IIpopoK Общие вопросы Delphi 0 22.06.2008 07:57