IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> чтение файла , выделение слов
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: AleX

Репутация: -  -1  +


Условие такое:
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 700 символов (длина строки текста не должна превышать 70 символов).
Имя файла должно иметь расширение DAT. Написать программу, которая:
- выводит текст на экран дисплея;
- по нажатию произвольной клавиши поочередно выделяет в тексте заданные слова (за-данные слова вводить с клавиатуры).


--------------------
...Купи слона, ну и что что все говорят продай слона...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Вот тебе поочередно (Жми Enter для выделения следующего слова)...

P.S. Чтобы постов, подобных предыдущему, я больше никогда не видел. Ты что, кого-то нанял на работу, и тебе эту работу не сделали? Я кстати, просил объяснить, что значит "поочередно". Ты не захотел...

uses crt;

const
alpha = ['a'..'z', 'A'..'Z'];
var
ft: text;
s: string;

a, b: array[1 .. 50] of string;

line_count, n, i,j,f:integer;
ch:byte;

p, len: byte;
start: integer;
ss, st: string;
isgray: boolean;

procedure print_all;
var i: integer;
begin
clrscr;
for i := 1 to line_count do begin
isgray := true; textcolor(lightgray);
st := a[i];
for len := 1 to length(a[i]) do
if st[len] = '~' then begin
if isgray then begin
textcolor(lightred);
isgray := false;
end
else begin
textcolor(lightgray);
isgray := true;
end
end
else write(st[len]);

writeln;
end;
readln;
end;

begin
Assign(ft,'text700.dat');
reset(ft);

clrscr;

line_count := 0;
while not eof(ft) do begin
readln(ft,s); writeln(s);
inc(line_count);
a[line_count]:=s;
end;

close(Ft);

write('n='); readln(n);
writeln('new word - new line');
for i:=1 to n do readln(b[i]);

clrscr;
for i:=1 to line_count do begin
p := 0; st := a[i];

for j := 1 to n do { !!! }
repeat
start := p;
p := start + pos(b[j], copy(st, start + 1, 255));
if
(
(p <> start)
and
((p = 1) or ( (p > 1) and not(st[p-1] in alpha)))
and
(
(p + pred(length(b[j])) = length(st)) or
((p + pred(length(b[j])) < length(st)) and
not(st[p+length(b[j])] in alpha))
)
) then

begin
ss := a[i];

delete(st, p, length(b[j]));
insert('~'+b[j]+'~', st, p);

inc(p, length(b[j]));
a[i] := st;
print_all;

a[i] := ss;
st := ss;
end;
until p = start;
a[i] := st;

end;
readln;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.11.2021 12:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name