Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

помогите пожалуйста разобрать (что-то не работает)   Найти похожие ветки 

 
laser ©   (2003-01-14 21:31) [0]

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

получается
s1= "н"
s2= " "

,а должны быть слова

s1= "очень "
s2= "срочно"


 
laser ©   (2003-01-14 21:34) [1]

извините вместо "крутой" слово "надо"
Правда очень надо


 
laser ©   (2003-01-14 21:52) [2]

Да я знаю, что для вас это ерунда, ну плиз


 
Mihey   (2003-01-14 22:11) [3]

Ну так конечно не правильно!

p1=pos("крутой",str);
if p1 <= 0 then exit;

while(str[p1] <> " ")
begin
s1:=s1+str[p1];
dec(p1);
end

Во первых, str[p1] в первый раз - это буква "н" из слова "надо". А далее идёт пробел, т.е. цикл прекращается. Вот и получаешь "н". Аналогично и со вторым циклом - опять находит пробел после слова надо и цикл вырубается. Используй функцию Copy или вообще разбей всё предложение на слова.


 
МитяЙ2 ©   (2003-01-14 22:16) [4]

Держи код!
Все работает.
Вообще-то не понял какие могут
быть тут проблемы.
Все элементарно!

procedure TForm1.BitBtn1Click(Sender: TObject);
const str="очень очень надо срочно";
var p1:word;
s1,s2:string;
begin
// здесь изменил
p1:=pos("надо",str)-2;
if p1 <= 0 then exit;

while str[p1]<>" " do
begin
s1:=str[p1]+s1;
dec(p1);
end;
// здесь изменил
p1:=pos("надо",str) + length("надо")+1;

// здесь изменил
while p1<=length(str) do
begin
s2:=s2+str[p1];
inc(p1);
end;


Митяй


 
МитяЙ2 ©   (2003-01-14 22:18) [5]

И заняло-то минуту у меня.



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
3-72113
cf
2002-12-23 18:47
2003.01.23
DBGrid


1-72363
WCM
2003-01-12 13:27
2003.01.23
Length function


1-72323
TTCustomDelphiMaster
2003-01-14 20:39
2003.01.23
Формат даты


3-72115
Vitalik S
2002-12-29 11:02
2003.01.23
Глюк с Хранимой процедурой


3-72100
kaif
2002-12-29 15:29
2003.01.23
Updatable view...