| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > как разбить строку на подстроки |
| Автор: supervladislav 23.9.2012, 21:03 |
| Скажите есть ли подобие функции Split или explode как в php , может нужно использовать какойнибудь иной модуль? |
| Автор: Данкинг 23.9.2012, 21:19 |
| Подобия Split (если я правильно понимаю, что она делает) нет. Есть функция COPY. Если же нужно разбить строку на подстроки на основе какого-то символа, то ищи по форуму слово GETWORDNUM. |
| Автор: northener 23.9.2012, 21:19 |
| Посмотри на TStringList.DelimitedText |
| Автор: Keeper89 24.9.2012, 03:23 |
| Я просто оставлю это здесь: http://docwiki.embarcadero.com/Libraries/en/System.StrUtils.SplitString |
| Автор: Qu1nt 24.9.2012, 09:54 |
| http://docwiki.embarcadero.com/Libraries/en/System.RegularExpressions.TRegEx.Split |
| Автор: supervladislav 24.9.2012, 15:21 |
| Данкинг, написли бы хотябы краткое описание по аргументам функции ,что надо передать ,что она возвратит. |
| Автор: Данкинг 24.9.2012, 16:01 |
| Параметры: разделяемая строка, разделитель, порядковый номер разделяемого слова. Т.е. getwordnum ('бугога@мугога@ололо','@','2') возвратит "мугога". |
| Автор: supervladislav 24.9.2012, 16:49 |
| Keeper89, Qu1nt, скажите для работы данной функции надо подключить модуль? Добавлено через 3 минуты и 55 секунд Данкинг, а ак определить общее колличество слов? Добавлено через 7 минут и 48 секунд Данкинг, я не очень понял ,что такое порядковый номер разделяемого слова? |
| Автор: supervladislav 24.9.2012, 17:26 |
| Данкинг, Как мне все то слова возвратить? |
| Автор: Данкинг 24.9.2012, 17:39 |
Никак, только самому писать функцию для подсчёта. Как "что такое"? Ты строку-то на подстроки разбиваешь. Вот порядковый номер подстроки и есть. |
| Автор: supervladislav 24.9.2012, 18:01 |
| Данкинг,всёравно спасибо. Обращаясь ко всем остальным неучтно никто не работал вот с этимим компонентами/модулями? http://docwiki.embarcadero.com/Libraries/e...ns.TRegEx.Split |
| Автор: northener 24.9.2012, 18:07 |
| Ещё раз повторю - TStringList.DelimitedText TStringList сам разделит строку на слова и поместит каждое слово в свою Strings[]. |
| Автор: supervladislav 24.9.2012, 20:54 | ||
| northener, скажите , а как класс компонента объявлять в контексте продцедуры . А как лучше , можно ли его сделать глобальным для всех продцедур и функций, или так лучше не делать?
|
| Автор: Данкинг 24.9.2012, 21:02 |
| supervladislav, чем тебе моя функция не нравится: я её столько раз уже юзал, что не представляю, как можно обходиться без оной в подобных случаях. |
| Автор: supervladislav 24.9.2012, 22:57 | ||||
| northener, выдаётся вот такая ошибка [DCC Error] Unit1.pas(281): Missing operator or semicolon вот в этой строке.
Скажите может надо использовать цикл ,чтобы вытащить оттудова строки , функция Load возвращает массив. Народ ,почему ниводной документации толково не написано ,какие данные являются входящимим вот сюда?
Что мне возвратит DelimitedText |
| Автор: Данкинг 24.9.2012, 23:09 |
Число открывающих и закрывающих скобок не совпадает, дальше можно уже не смотреть. |
| Автор: northener 25.9.2012, 00:29 |
Вот тебе пример использования TStringList для разбития строки на отдельные слова. |
| Автор: supervladislav 25.9.2012, 16:42 | ||||
| northener, посмотрел несколько очень хороших примеров Вроде написал вот так, но компилятор тылдычет вот на этой строке , но где тут может быть пропущена точка или скобка ума не приложу. [DCC Error] Unit1.pas(278): E2066 Missing operator or semicolon
|
| Автор: Данкинг 25.9.2012, 16:54 | ||
supervladislav, ты смотрел пример northener'а ?
|
| Автор: supervladislav 25.9.2012, 17:03 |
| Данкинг, northener, я смотрел его пример, но просто к этому времени я уже смог сделать свой пример пока неработоспособный, вот туе я увидел вариант примера http://www.delphibasics.ru/TStringList.php |
| Автор: supervladislav 25.9.2012, 18:25 |
| northener, пока не понял ваш пример слишком пока много непонятных мне компонентов , сейчас почитаю. |
| Автор: supervladislav 26.9.2012, 20:44 |
| northener, это привычка осталась от php. |