Помощь - Поиск - Пользователи - Календарь
Полная версия: Удаление элемента из строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
FB
Помогите пожалуйста доделать лабу.
Нужно сделать прогу, которая удаляет из входной строки YS элемент,находящийся перед последовательностью символов, заданных переменной SX(для всех вхождений SX).
Я написал так:

Код
            Var
      Kz,Np,J,DSX: Integer;
      YS,SX,UYS,KY: String;
           begin
      SX:=Edit1.Text;
      YS:=Edit2.Text;
      UYS:=Edit2.Text;
      DSX:=Length(SX);
      Np:=Pos(SX,YS);
      Kz:=0;
      UYS:=YS;
      J:=Np;
      While Np<>0 Do Begin
      Delete(YS,J-1,1);
      Delete(UYS,Np-1,DSX+1);
      Np:=Pos(SX,UYS);
      J:=Np+DSX;            
      Kz:=Kz+1;
      end;
      Edit3.Text:=YS;
      Str(Kz,Ky);
      Edit4.Text:=KY;
          end;
          end.


где Np-позиция SX в YS; UYS-вспомогательная строка; J-вспомогательная переменная,отвечающая за
нахождение всех последующих SX в строке YS. Программа правельно удаляет только два заданных символа,а потом начинать действовать неверно.Мне кажется,что проблема в строке J:=Np+DSX.
Помогите пожалуста исправить программу.
Спасибо.
reill
Я так понимаю ты писал свою лабу на Дельфи....
Я исправил твои ошибки, но пример привожу для паскаля, для того что бы использовать
его на Дельфи тебе нужно переправить ввод и вывод данных..
Заменить readln и writeln на что-то типа:
Код
SX:=Edit1.Text;
YS:=Edit2.Text;

Edit3.Text:=YS;

Ну я думаю разберешься....
Вот прога:

Код
program help;
Var
 J,DSX,dYS: Integer;
 YS,SX: String;
 begin
 readln(SX);
 readln(YS);
 DSX:=Length(SX);
 DYS:=length(YS);
 for j:=1 to dys-dsx Do
 Begin
if copy(ys,j,dsx)=sx then
 Delete(YS,j,dsx);
 end;
 writeln(YS);
     end.

На самом деле все намного проще и короче=)))
AlaRic
Когда же люди научаться читать правила, а?
reill
Это ты к чему???? ???
deman
Цитата
Это ты к чему???? ???

В разделе по паскалю, надо и писать на паскале, для дельфи есть другой раздел
AlaRic
Тема "Помогите плиз" в следующий раз будет сразу же удаляться!
FB
TO Reill:
Спасибо за помощь.
To Admins :
-[,простите тупого,я больше так не буду,честно-честно.
AlaRic
Поверим на слово!    ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.