Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
laser   (2003-01-15 23:30) [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

Result:
s1 = "п"
s2 = " "

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

s1 = "помогите"
s2 = "разобрать"


 
MXA   (2003-01-16 00:17) [1]

:) а на каком это языке вообще?
понажимай F7 да Ctrl+F7 - через минуту сам все поймеш!!!


 
OlDemon   (2003-01-16 07:22) [2]

не я просто $#%%# от такого кода


 
OlDemon   (2003-01-16 07:27) [3]

тебя кто так учил?
1. Код при компиляции выдал 3! ошибки
2. s1 никогда не будет равен "помогите" поймешь почему?
3. Здаешь функцию copy? С ней твой код уложится в 2 строчки.
4. и т.д.


 
OlDemon   (2003-01-16 07:28) [4]

Ура я понял что не работает - твой голова!!! :)))


 
gek   (2003-01-16 07:58) [5]

Нет парень идет в верном направлении
можно конечно и так

s2:=copy(str,pos("пожалуйста",str) + length("пожалуйста") + 1,length("пожалуйста"));
s1:=copy(str,1,pos("пожалуйста",str)-1);


Ну а если слов стоящие по бокам неизвестны и строка состоит из n-го количества слов?

в качестве примера чуть подправим


p1:=pos("пожалуйста",str) + length("пожалуйста")+1;

while(str[p1] <> "") do
begin
s2:=s2+str[p1];
inc(p1);
end;

p1:=pos("пожалуйста",str)-1;
if p1 <= 0 then exit;

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


Думаю принцип понятен


 
Думкин   (2003-01-16 08:29) [6]


> gek © (16.01.03 07:58)
> Ну а если слов стоящие по бокам неизвестны и строка состоит
> из n-го количества слов?

И там можно - надо указать какие функции он может юзать.
1. Можно составить список всех слов используя Copy,Pos,Delete. 2. Если разделители разные, то можно прпойтись как и описано и опять же составить список.
3. Если можно юзать TStringList - то там проще, если разделитель один.



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

Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
14-87079
Temp
2003-01-08 12:52
2003.01.27
Записные книжки


14-87122
Rocks Pops
2003-01-10 00:16
2003.01.27
Mr. Sender


8-86967
AlexeyB
2002-10-09 10:07
2003.01.27
Преобразование grayscale -> halftone


9-86612
LM
2002-07-24 23:05
2003.01.27
SOUND in game


4-87222
Alinka
2002-12-10 11:28
2003.01.27
второй экземпляр программы не запускался





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский