Главная страница
    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.46 MB
Время: 0.005 c
15-1262974524
Ламо777
2010-01-08 21:15
2010.03.28
Софт для захвата потокового видео с веб-страниц


2-1264495718
Цукор5
2010-01-26 11:48
2010.03.28
Утечка памяти


15-1263146426
Petr V. Abramov
2010-01-10 21:00
2010.03.28
RBC празднует :)


15-1263112641
Nic
2010-01-10 11:37
2010.03.28
Соединение из Delphi MSSQL Server через RDP. Как?


2-1264276321
TStas
2010-01-23 22:52
2010.03.28
Как поменять порядок вкладок у PageControl в RunTime





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