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

Вниз

Получить отдельные значения строки   Найти похожие ветки 

 
ИгорУЛЬКА   (2010-01-27 12:04) [0]

Добрый день, Мастера. Допустим, есть строка "Потапов Семен Семеныч". Как проще получить по отдельности фамилию, имя и отчество. Пока на ум приходит только ручной разбор строки (Pos + Copy), но, чую, существует решение поэлегантней.


 
12 ©   (2010-01-27 12:19) [1]

можно глянуть на
ExtractStrings

"В стандарте - нет такого. Возможно, есть где-нибудь в сторонних библиотеках, только быстрее и проще сделать цикл с Pos..."
ЮЗ на подобный вопрос


 
Медвежонок Пятачок ©   (2010-01-27 12:34) [2]

Допустим, есть строка "Потапов Семен Семеныч".

а допустим есть строка "Остап Ибрагим Бей Оглы Бендер"
и надо получить :
"Остап"
"Ибрагим Бей Оглы"
"Бендер"


 
Anatoly Podgoretsky ©   (2010-01-27 13:20) [3]

Элегантнее с помощью PosEX


 
Anatoly Podgoretsky ©   (2010-01-27 13:21) [4]

Есть красивее, с помощью CommaText


 
Nucer   (2010-01-27 13:40) [5]

Мой вариант:
procedure Explode(Separator: Char; S: string; Strings: TStringList; Limit: Integer = 0);
var
 I, N: Integer;
 Start: Integer;
 Done: Boolean;
begin
 Strings.BeginUpdate;
 try
  Strings.Clear;
  if S = "" then Exit;
  N := 0;
  Start := 1;
  Done := False;
  repeat
    Inc(N);
    I := PosEx(Separator, S, Start);
    if (I = 0) or (N = Limit) then
      begin
        I := Length(S) + 1;
        Done := True;
      end;
    Strings.Add(Copy(S, Start, I - Start));
    Start := I + 1;
  until Done;
 finally
   Strings.EndUpdate;
 end;
end;


Не всегда нужна обработка кавычек и апострофов, которую нельзя отключить в ExtractStrings.


 
Anatoly Podgoretsky ©   (2010-01-27 14:18) [6]

А наш проще Stings.CommaText := Text;


 
Jeer ©   (2010-01-27 15:03) [7]


> Медвежонок Пятачок ©   (27.01.10 12:34) [2]
>
> Допустим, есть строка "Потапов Семен Семеныч".
>
> а допустим есть строка "Остап Ибрагим Бей Оглы Бендер"
> и надо получить :
> "Остап"
> "Ибрагим Бей Оглы"
> "Бендер"


Молодец !

В качестве оффтопа..

Где-то так в начале 80-х, когда еще был жив военный институт в бухте Казачья, что в Крыму, полетели мы туда - я и старший товарищ.
В процессе оформления документов на допуск, кто-то допустил ошибку и в итоге появились три человека:
- я
- Шамиль Кули
- Заде Али Оглы

Нас вдвоем ( физ.лица ) мурыжили три дня, пока разбирались, что заявлены всего два человека: я и Шамиль Кули-заде Али оглы

Это реальная история :)


 
12 ©   (2010-01-27 17:52) [8]

^))


 
Smile   (2010-01-27 20:04) [9]

Неужели в начале 80-х не было "нужды" в паспортах?
Оформление на допуск происходило без соответствующих документов?
От  себя: в достоверности, не сомневаюсь
:)



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

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

Наверх





Память: 0.47 MB
Время: 0.004 c
2-1264752952
s_t_d
2010-01-29 11:15
2010.03.28
Последовательность, орг. переход на новую страницу


15-1262467825
Юрий
2010-01-03 00:30
2010.03.28
С днем рождения ! 3 января 2010 воскресенье


15-1263058858
GanibalLector
2010-01-09 20:40
2010.03.28
Интерфейс


2-1264175878
nonameee
2010-01-22 18:57
2010.03.28
Потоки как работать параллельно


2-1264681015
d.l.
2010-01-28 15:16
2010.03.28
Сравнить файлы двух папок





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