Лучше писать результат не в тот же файл, а в другой: при составлении регулярных выражений без достаточного опыта можно легко ошибиться.
uses System.Text.RegularExpressions;
const CRLF = #13#10;
var s, sbig: string; fin, fout: Text;
begin Assign(fin, 'MyIn.txt'); Reset(fin); sbig := ''; while not Eof(fin) do begin Readln(fin, s); sbig := sbig + s + CRLF end; Close(fin); {пример - уладить подстроки, начиная с "http:" и до первого пробела, причем внутри подстроки может встретиться переход на новую строчку. Используется шаблон '\bhttp:\S+' - подробности: регулярные выражения} sbig:=RegEx.Replace(sbig, '\bhttp:\S+', '', RegexOptions.Multiline); Assign(fout, 'MyOut.txt'); Rewrite(fout); Write(fout, sbig); Close(fout); Writeln('Конец работы'); end.
Если мы напишем программу, то она сможет посчитать кол-во, повторений. В 3 почему 0, это из-за того что цикл не выполниться ни разу. В 4 почему 48, да потому что мы от 8 - 3 = 5, значит цикл повториться 5 раз, следовательно идём таким путём:
0. S = 8;
1. S = 16; // 8 + 8
2. S = 24. // 16 + 8
3. S = 32; // 24 + 8
4. S = 40; // 32 + 8
5. S = 48 // 40 + 8
10 Вопрос можно решить и вторым кстати он считается как самый быстрый.
С = 50;
1. 9 - 1 = 8, цикл должен выполниться 8 раз
2. Мы видем что в теле программы c = c - 3, значит 8 * 3 = 24
uses
System.Text.RegularExpressions;
const
CRLF = #13#10;
var
s, sbig: string;
fin, fout: Text;
begin
Assign(fin, 'MyIn.txt');
Reset(fin);
sbig := '';
while not Eof(fin) do
begin
Readln(fin, s);
sbig := sbig + s + CRLF
end;
Close(fin);
{пример - уладить подстроки, начиная с "http:" и до первого пробела,
причем внутри подстроки может встретиться переход на новую строчку.
Используется шаблон '\bhttp:\S+' - подробности: регулярные выражения}
sbig:=RegEx.Replace(sbig, '\bhttp:\S+', '', RegexOptions.Multiline);
Assign(fout, 'MyOut.txt');
Rewrite(fout);
Write(fout, sbig);
Close(fout);
Writeln('Конец работы');
end.
1. 9
2.15
3. 0
4. 48
5. 5
6. 60
7. 3
8.
9. 48
10. 26
Объяснение:
Если мы напишем программу, то она сможет посчитать кол-во, повторений. В 3 почему 0, это из-за того что цикл не выполниться ни разу. В 4 почему 48, да потому что мы от 8 - 3 = 5, значит цикл повториться 5 раз, следовательно идём таким путём:
0. S = 8;
1. S = 16; // 8 + 8
2. S = 24. // 16 + 8
3. S = 32; // 24 + 8
4. S = 40; // 32 + 8
5. S = 48 // 40 + 8
10 Вопрос можно решить и вторым кстати он считается как самый быстрый.
С = 50;
1. 9 - 1 = 8, цикл должен выполниться 8 раз
2. Мы видем что в теле программы c = c - 3, значит 8 * 3 = 24
3. Следовательно c = 50 - 24
ответ 26