![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена строки [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;