Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-72188
Dima1
2003-01-13 08:49
2003.01.23
Народ, раскажите мне, как работать с переменной Pointer.


4-72593
Lipa
2002-12-09 16:01
2003.01.23
О выключении компьотера.


1-72288
Delph
2003-01-15 11:25
2003.01.23
QuickReport печать с N страницы по K возможна?


3-72063
Alek Aaz
2003-01-05 06:24
2003.01.23
Запись/чтение BLOB полей


6-72452
s002156Shurik
2002-11-22 19:35
2003.01.23
Как работать с сокетами под дос?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский