Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Замена строки [Delphi, Windows]


WhiteGuy ©   (2005-01-26 15:19:00) 

Привет! Прикол вот в чём:
я хочу в edit2.text удалить все буквы П. я делаю так
strreplace(edit2.text,'П','');
Но при обработке прога вылетает... В чём подвох??


VooDoo3d   (2005-07-14 11:13:00) [1]

Народ!!!Срочняк  надо!!! plz,п омогите из строки "a" заменить подстроку '$$$' на любую другую более длинную подстроку!!!!!


Thaddy   (2005-06-08 20:30:00) [2]

BelchonokH   (26.01.05 15:47) [ 3 ]

Like thus:

While strreplace(.s, 'P ','') do;

This is the correct answer ;) True!

It simply should not do anything else but replace!

Very good, BelchonokH


Thaddy   (2005-06-08 20:28:00) [3]

BelchonokH   (26.01.05 15:47) [ 3 ]

Like thus:

While strreplace(.s, 'P ','') do;

This is the correct answer ;) True!

It simply should not do anything else but replace!

Very good, BelchonokH


KonstantinXaker(KX)   (2005-06-08 18:18:00) [4]

Народ! В каком модуле хранится StrReplace?


SPeller   (2005-01-27 15:11:00) [5]

А чем вам StrReplace не по душе? Если смущает цикл, то напишите процедурку

procedure MyStrReplace(var Str: string; const SFrom, STo: string);
begin
  while StrReplace(Str, SFrom, STo) do ;
end;


И будет вам счастье.


Solik   (2005-01-27 09:01:00) [6]

у sldragon работать неправильно будет, если сработает delete, то следующая буква встанет на место текущей и она в очередной итерации будет пропущена, нужно так:

i:=1;
while i<=Length(st) do if st[i]=ch then delete(st,i,1) else inc(i);


dimaxx   (2005-01-26 21:17:00) [7]

2 WhiteGuy: Вот именно, что ничего. Просто цикл проверяет заменена ли очередная буква и переходит сам на себя. Как только вернули False - все, букв больше нет.


WhiteGuy   (2005-01-26 16:14:00) [8]

Ну спасибо!


sldragon   (2005-01-26 16:10:00) [9]

Привожу код на паскале аналогичной функции

Function StrRep(s: string; ch: char): String;
Var
i: word;
st: string;
Begin
st:=s;
For i:=1 to length(st) do
 if st[i]=ch then Delete(st,i,1);
StrRep:=st
End;

Все, по идее должно работать.


WhiteGuy   (2005-01-26 15:48:00) [10]


> While strreplace(s,'П','') do;

do чего?? :)


BelchonokH   (2005-01-26 15:47:00) [11]

Вроде так:

While strreplace(s,'П','') do;


WhiteGuy   (2005-01-26 15:40:00) [12]

Да-да! Я так тоже делал! Из-за этого и вылетает, хотя компилируется нармал! И по-моему strreplace - это булев?!


RA   (2005-01-26 15:34:00) [13]

Делай так:
s:=edit2.text;
strreplace(s,'П','');
edit2.text:=s;


Наверх

Титульная страница Поиск, карта сайта Написать письмо