Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить кусок строки


Николай ©   (2004-06-29 20:29:00) 

Есть строка: "абвгд - жзиклмн". Нужно получить вторую ее часть - после " - ". Ведь обязана быть такая функция! Искал, искал - не нашел. Поможете?


AndrewVolkov   (2004-06-29 22:18:00) [1]

то [6], я саму идею дал. А уж как ей воспользоваться (проверить на 0 и т.д.) - это уж личное дело того кто созидает. :)


Anatoly Podgoretsky   (2004-06-29 21:55:00) [2]

Ihor Osov'yak ©   (29.06.04 21:08) [6]
В зависимости от того, что надо делать если строка не содержит этого знака и возратить для этого случая всю строку, то тогда это не будет являться ошибкой, а вот если надо возратить пустую строку, то конечно это ошибка.
Но это не единственная проблема, возвратить по условию надо строку после "-", а не вместе с минусом.


Николай   (2004-06-29 21:08:00) [3]

Спасибо!

Или благодарю, как кому больше нравится :)


Ihor Osov'yak   (2004-06-29 21:08:00) [4]

2 [4] AndrewVolkov   (29.06.04 20:44)

А у [2] - оптимальнее, функция Pos вызывается только один раз.
Но у вас обоих есть общая ошибка - не делается анализ, если Pos возвратит нуль. Конечно, в этом примере такое невозможно, но если входное значение будет меняться - почему бы и нет. Тогда в [2] эту проблему решаем относительно просто - анализ I на превышение нуля:

if  (I > 0)
then
 Str2 := Copy(Str1, I, Length(Str1) - I)
else
 Str2 := '';


AndrewVolkov   (2004-06-29 20:44:00) [5]

>[2] А у меня в одну строчку :))


begin...end   (2004-06-29 20:39:00) [6]


> [1] AndrewVolkov   (29.06.04 20:36)

:)


begin...end   (2004-06-29 20:38:00) [7]

var
 Str1, Str2: String;
 I: Integer;

begin

 Str1 := 'абвгд - жзиклмн';
 I := Pos('-', Str1);
 Str2 := Copy(Str1, I, Length(Str1) - I);

end.


AndrewVolkov   (2004-06-29 20:36:00) [8]

Result:=Copy(FullString, Pos('-', FullString), Length(FullString)-Pos('-', FullString);,
где FullString - твоя входная строка "абвгд - жзиклмн"


Наверх

Титульная страница Поиск, карта сайта Написать письмо