Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбить AnsiString 
:(
    Опции темы
szz
Дата 15.11.2005, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Есть ли аналог для АнсиСтринга функции explode() в PHP или str.split() в ActionScript?


--------------------
PM   Вверх
_hunter
Дата 16.11.2005, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



есть


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Vyacheslav
Дата 16.11.2005, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Для того, чтобы ответить на вопрос, я должен знать PHP или ActionScript. Вы считаете, что они должны входить в обязательное базовое образование программиста на С++?


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Neitron
Дата 16.11.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

Репутация: нет
Всего: 5



Vyacheslav
Нет мы не считаем, поэтому пусть на этот вопрос ответит я.


szz
Нету аналога.
Его ты должен написать сам, используя
ф-ции члены ансистринга AnsiPos и s.SubString
Также предлагаю попробовать воспользоваться StringList
У него есть свойсва DelimitedText и Delimiter.




--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
szz
Дата 16.11.2005, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Цитата(_hunter)
есть

О спасибо за информативный ответ! Я поискал по хелпу ничего не нашел.
Цитата(Vyacheslav @ 16.11.2005, 11:40)
Вы считаете, что они должны входить в  обязательное базовое образование программиста на С++?

Разумеется нет. ОК, я поясню.
Нужна такая функция, которая разделяет строку на подстроки в массив строк, используя разделитель:
Код

AnsiString text = "blabla-=-bebe-=-ogogo-=-ugugu";
AnsiString splitter = "-=-";
AnsiString *result = new AnsiString[getExplodeLength(text, splitter)];// getExplodeLength должна вернуть int, на сколько строк разделиться наша text c помощью splitter, в данном случае она вернет 4
Explode(text, splitter, result);
// вот теперь в result должны находиться 
printf("%s\n%s\n%s\n%s\n", result[0].c_str(), result[1].c_str(), result[2].c_str()б result[3].c_str());
// должно напечатать 
======================
blabla
bebe
ogogo
ugugu
======================

так вот, нужны как раз эти две функции getExplodeLength и Explode
Добавлено @ 12:23
Neitron, я все понял.
Очень странно, ведь ситуация довольно распространенная и порой весьма удобно делать именно так (или может я просто разбаловался высокоуровневыми языками smile ). Странно что ее не продумали. Должна быть где-то в сети такая функция...
Если найду - выложу. не найду - напишу и выложу.


--------------------
PM   Вверх
_hunter
Дата 16.11.2005, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



Цитата
О спасибо за информативный ответ! Я поискал по хелпу ничего не нашел.

пожалуйста. ( какой вопрос -- такой и ответ )

P.S.
что делать Neitron уже ответил


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Alca
Дата 1.7.2007, 21:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Код

//---------------------------------------------------------------------------
void __fastcall TfrmMain::Button1Click(TObject *Sender) {
    ShowMessage(Split("000|111|222|333|444", '|', 2));

}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmMain::Split(const AnsiString & asStr, char cDelimiter, unsigned int iIndex) {
    TStringList* pList = new TStringList(); 
    pList->Delimiter        = cDelimiter;
    pList->DelimitedText = asStr;

    //проверка iIndex
    if ((iIndex < (unsigned)0) || (iIndex >= (unsigned)pList->Count)) {
        return "";
    }

    return pList->Strings[iIndex];
}
//---------------------------------------------------------------------------


Может кому згадится


--------------------
PM WWW ICQ Skype Jabber   Вверх
Romikgy
Дата 1.7.2007, 22:10 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(Alca @  1.7.2007,  20:36 Найти цитируемый пост)
Может кому згадится 

гы ... через жва то года smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
mr.Anderson
Дата 2.7.2007, 10:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



[offtop] smile smile smile [/offtop]


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
JackYF
Дата 2.7.2007, 11:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 4
Всего: 162



+1 к количеству некрофилов, гы. smile что-то в последнее время много развелось smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
szz
Дата 2.7.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Ага smile

Тем более что ответ неверный - у Alca разделитель - одна буква, что сделать элементарно.

Я же просил случай с разделителем строкой произвольной длины, что уже посложнее.

Эх, я сделал это прям те  самые два года назад, проект давно свое отслужил и забыт smile

Выложить как и обещал? 

Ток еще надо найти на пыльных полках  smile 



--------------------
PM   Вверх
Alca
Дата 2.7.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 25
Всего: 50



Выкладывай


--------------------
PM WWW ICQ Skype Jabber   Вверх
Romikgy
Дата 2.7.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(szz @  2.7.2007,  10:53 Найти цитируемый пост)
Я же просил случай с разделителем строкой произвольной длины, что уже посложнее.

через stringlist + replacestring ничего сложного smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
szz
Дата 2.7.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Alca, выложил, курите здесь smile


Romikgy, канешно smile 2 года назад ты это знал, признавайся честно?  smile 


--------------------
PM   Вверх
Romikgy
Дата 2.7.2007, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(szz @  2.7.2007,  20:28 Найти цитируемый пост)
2 года назад ты это знал, признавайся честно?

не помню уже smile возможно да возможно нет  smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.