подскажите, что я сделала не так? Или я не так поняла Вашу мысль? Потому что я создала еще file of integer и начала к нему перекатывать символы.
Код:
Uses crt;
type
matr = array[1..5] of integer;
tFile = file of integer;
procedure show(var f: text);
var
s: string;
begin
Assign(f, 'input.txt');
reset(f);
while not eof(f) do
begin
readln(f, s);
writeln(s);
end;
Close(f);
end;
procedure input(var a: matr; var delword: string; var L: integer);
var
i: integer;
begin
writeln('Enter delword:');
readln(delword);
L := Length(delword);
for i := 1 to length(delword) do a[i] := ord(delword[i]);
end;
procedure transfer(var f: text; var f3: tFile);
var
s: string; i, k: integer;
begin
reset(f);
assign(f3, 'ascii');
rewrite(f3);
while not eof(f) do
begin
readln(f, s);
for i := 1 to length(s) do
begin
k := ord(s[i]);
write(f3, k);
end;
end;
close(f);
close(f3);
end;
//подскажите, где я не так поняла Вашу мысль
procedure preprocess(var f3: tFile; var f4: tFile);
var
k: integer;
begin
reset(f3);
assign(f4, 'preoutput');
rewrite(f4);
while not eof(f3) do
begin
repeat
read(f3, k);
write(f4, k);
until (k = 32) or eof(f3);
if not eof(f3) then writeln(f3);
end;
close(f3);
close(f4);
end;
procedure process(var f4: tFile; var f2: text; a: matr; L: integer);
var
k, i, p, time, count: integer;
flag, flag1, flag2: boolean;
b: array[1..30] of integer;
begin
writeln('Enter time:');
readln(time);
count := 0;
reset(f4);
Assign(f2, 'output.txt');
rewrite(f2);
while not eof(f4) do
begin
p := 0;
repeat
inc(p);
read(f4, k);
b[p] := k;
until (k = 10) or eof(f4);
if k = 10 then dec(p);
if p = L then
begin
i := 0;
flag2 := true;
repeat
inc(i);
flag1 := b[i] = a[i];
until (flag1 = false) or (i = L);
if flag1 then
begin
inc(count);
if count mod time = 0 then flag2 := false;
end;
flag := flag2;
end else flag := true;
if flag then
begin
for i := 1 to p do write(f2, chr(b[i]));
writeln(f2);
for i := 1 to p do write(chr(b[i]));
writeln;
end;
end;
Readln;
close(f2);
close(f4);
end;
var
f, f2: text;
f3, f4: tFile;
delword: string;
a: matr;
time, L: integer;
begin
clrscr;
show(f);
input(a, delword, L);
transfer(f, f3);
preprocess(f3, f4);
process(f4, f2, a, L);
end.
Для пример я взяла такой файл. Я добавила знаки препинания, но думаю, что если вводимое слово не будет стоять рядом с (, . ? !), то все будет нормально
Код:
one five, six, please!
two seven? No, it can do it.
one eight! Thank you very much.
three read.
one
four