Помощь - Поиск - Пользователи - Календарь
Полная версия: удаление слова, введенного с клавиатуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Child of Bodom
Спасибо все работает. Мне чтоб цитаты делать надо было включить плагины или java . А почему меня ваш форум не запоминает, когда я на него захожу, каждый раз приходится авторится. Вот...Можете еще с одной задачкой помочь-последней на ближайшие пол года:дан текст. Удалить в нем слово, введеное с клавиатуры. Вот что то у меня тут есть но прога ничего не удаляет:

program rgr3_4;
uses crt;
var f,g: text;
procedure vivod(var f: text);
var x: string;
begin
reset(f);
while not eof(f) do
begin
readln(f,x);
writeln(x);
end;
close(f);
end;
procedure del;
var x,n:string;
p,p1:integer;
Begin
reset (f);
rewrite(g);
writeln;
writeln ('Введите слово без пробелов ');
readln (n);
while not eof(f) do
begin
readln (f,x);
p1:=pos(' ',x);
p:=pos(n,x);
if (p<>0) and (p-p1=1) then
Begin
delete(x,p,length(n)+1);
writeln (x);
writeln (g,x);
end
else
begin
writeln (x);
writeln (g,x);
end;
end;
close (f);
close (G);
end;
Begin
clrscr;
assign (f,'pismo.txt');
assign (g,'vremen4.txt');
vivod(f);
del;
readln;
erase (g);
end.


Надеюсь на вашу помощь!!
Тут тот текстик
мисс_граффити
readln (f,x);
p1:=pos(' ',x);
p:=pos(n,x);
if (p<>0) and (p-p1=1) then...

Строка:
мама мыла раму.
слово, которое надо удалить: раму
p1=5
p=11 (если не ошиблась со счетом)
чему равно p-p1?
Child of Bodom
Мда. Точно бред получается!!!А как тогда зделать???Мне только вот это осталось сделать тока я не знаю как!!! Помогите плиииз
мисс_граффити
может,
if (p<>0) and (x[p-1]=' ') then 

?
а еще рассмотреть случай, что перед словом нет пробела - оно же может быть первым в строке.
и, кстати, логично было бы проверять, что стоит ПОСЛЕ слова.
А то будет:
надо удалить "нос".
строка: нос носили и выносили носатики
получится: или и выносили атики.
Child of Bodom
Так вот если сделать так-ну проверять на наличие пробела после искомого слова, то там надо проверять и точку и воскл знак, и вопроситель, и запятую. Это столько переменных надо вводить что ли или как???
мисс_граффити
множество....
а потом что-то типа
if s[p+length(n)+1] in razdeliteli then
volvo
Юля, а вылететь за пределы строки при такой проверке не боишься? Я бы боялся... Кстати, я где-то приводил трехэтажную проверку одним If-ом на то, что слово первое, или в середине строки (и обрамлено соотв. символами), или в конце строки... Сейчас найду...

Вот оно: 2 строки файла
Только заменить проверку на пробел проверкой на включение во множество...
мисс_граффити
я просто отвечала на узко поставленный вопрос - что делать с кучей возможных символов...
поэтому вылететь за границы не боялась...
хотя, согласна, это было не совсем корректным поступком - раз уж про первое в строке уточнила, надо было и здесь рассмотреть вариант...
Гость
а можете вот это все что вы мне сказали запихнуть в код проги???А то что то столько всего а что куда девать теперь не знаю!!!
Child of Bodom
Скажите пожалуйста сможете это сделать???
p.s.: меня ваш форум не запоминает-почему???
Гость
Помогите мне пожалуйста. Ну очень срочно нужно буду очень благодарен. Хотя я итак вам благодарен, буду еще больше
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.