![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите пожалуйста разобрать (что-то не работает) [D6, WinXP]
laser © (2003-01-17 15:05:00)const str="Помогите пожалуйста разобрать";
var
p1:word;
s1,s2:string;
begin
p1=pos("пожалуйста",str);
if p1 <= 0 then exit;
while(str[p1] <> " ")
begin
s1:=s1+str[p1];
dec(p1);
end
p1:=pos("пожалуйста",str) + length("пожалуйста");
while(str[p1] <> " ")
begin
s2:=s2+str[p1];
inc(p1);
end
Result:
s1 = "п"
s2 = " "
,а должно быть
s1 = "помогите"
s2 = "разобрать"
Игорь Шевченко (2003-01-17 15:22:00) [1]Имеется в виду, естественно, код в вопросе :-)
Игорь Шевченко (2003-01-17 15:20:00) [2]В школу!
Абсолютно ошибочный код!
Skier (2003-01-17 15:14:00) [3]const
str="Помогите пожалуйста разобрать";
StrToCheck = "пожалуйста";
var
ADstStr : String;
begin
ADstStr := StringReplace(str, StrToCheck, "", []);
ShowMessage(ADstStr);
end;
Th (2003-01-17 15:13:00) [4]я бы сделал так:
const str="Помогите пожалуйста разобрать";
var buf: string;
p1: integer;
begin
buf:=str;
p1=pos("пожалуйста",buf);
if p1 <= 0 then exit;
delete(buf,p1,length("пожалуйста"));
s1:=copy(buf,1,p1-1);
s2:=copy(buf,p1,length(buf)-p1+1);
Что касается твоего кода, то корректно было бы условия циклов такими сделать:
while p1>0
и
while p1<=length(str)
end;
MBo (2003-01-17 15:12:00) [5]Сколько раз уже будешь спрашивать?
with TStringList.Create do begin
CommaText:=str;
s1:=Strings[0];
s2:=Strings[2];
Free;
end;