Форум: "Основная";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Внизпомогите пожалуйста разобрать (что-то не работает) Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c