Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#16: 2010-09-10 21:29:22 ЛС | профиль | цитата
nesco писал(а):
Да, я знаю, но изначально он и было по одному символу, а потом я уже переименовывать не стал
Изначально было _prop_delimiter[1] - как говорил Galkov - защита от дурака. Когда убрали [1] не заметил. Так и должно быть. ИМХО.
Dilma писал(а):
достаточно немного доработанного GetTok
и GetTok сделан по умному
 
GetTok(str, _prop_Char[1])
Есть предложение:
Понимаешь блин иду я блин смотрю блин а он курит блин такой.
Разбиваем по слову "блин".
Этот "блин" куда девать ?
Добавляем три режима: "блин" вправо, "блин" влево, "блин" долой.
Не смешите мои тапочки.
Assasin, конечно, парень насыщеный идеями.
nesco, ComboBox вспомни.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#17: 2010-09-10 22:38:30 ЛС | профиль | цитата
Так что делать будем, приводить все к одному символу, тогда все будет работать и так, как есть
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#18: 2010-09-10 22:46:11 ЛС | профиль | цитата
Ну это не я решаю.
То что GetTok используется не в одном компоненте, говорить лишнее.
Разбить текст по "Слава коммунистической партии" конечно можно, но зачем А если очень нужно, то замена "Слава..." на любой одиночный и всего делов.
Если Assasin нужно разбить по "1;" - сделает Replace "1;" на ";" и вперёд и с песнями.

Дурью маемся.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#19: 2010-09-10 22:50:23 ЛС | профиль | цитата
Tad писал(а):
о что GetTok используется не в одном компоненте, говорить лишнее

Быстродействие GetTok оставляет желать лучшего
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#20: 2010-09-10 23:06:22 ЛС | профиль | цитата
GetTok менять не нужно.

разделители длинною более чем в 1 символ это редкость, но все же может встретиться. Задачу с такими условиями действительно можно и так решать
Tad писал(а):
нужно разбить по "1;" - сделает Replace "1;" на ";" и вперёд и с песнями.

хотя это костыль

Tad писал(а):
Дурью маемся.

пользователя, который спросит "почему нельзя вписать более одного символа" такой ответ врятли удовлетворит
карма: 27
0
Ответов: 16884
Рейтинг: 1239
#21: 2010-09-10 23:09:51 ЛС | профиль | цитата
nesco писал(а):
Быстродействие GetTok оставляет желать лучшего
А что ты хотел, если в десятке строк кода используется четыре функции ?
------------ Дoбавленo в 23.09:
Dilma писал(а):
пользователю, который спросит "почему нельзя вписать более одного символа"
Вписать в Wiki и отправлять пользователя туда
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 301
Рейтинг: 11
#22: 2010-09-10 23:10:35 ЛС | профиль | цитата
Tad, а если в данной строке :: - является разделителем а все остальные символы и их комбинации - не является?
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#23: 2010-09-10 23:16:40 ЛС | профиль | цитата
Dilma писал(а):
GetTok менять не нужно

Вот уж никто не собирался этого делать
------------ Дoбавленo в 23.12:
evgenyatam писал(а):
а если в данной строке :: - является разделителем а все остальные символы и их комбинации - не является?

А вот оно и сейчас работать не будет, есть повторяющиеся символы
------------ Дoбавленo в 23.16:
Dilma писал(а):
хотя это костыль

А может и пойти по пути этой костыльной системы Внутри компонента заменить строковый разделитель на одиночный, служебный символ и по нему производить разделение. Это просто идея, пинать не надо. В принципе, какая разница, чем будет достигнут конечный результат
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#24: 2010-09-10 23:32:14 ЛС | профиль | цитата
evgenyatam писал(а):
если в данной строке :: - является разделителем
то нужно проверить того, кто его применил в психдиспансере. А если серьезно, то Replace :: на любой хитрый символ (из непечатываемых) и вперёд.
Dilma писал(а):
хотя это костыль
это не костыль а обыкновенная практика, вроде связки Convertor+Memory для получения нижней точки. Хотя Convertor+Memory больше похожи на костыль (даже визуально ) Dilma, только без обид. Просто к слову.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#25: 2010-09-11 00:09:42 ЛС | профиль | цитата
В принципе, я переделал под замещающий алгоритм, подожду ответа
------------ Дoбавленo в 00.09:
Assasin писал(а):
Должно разделить на "11" и "2222"

А вот этого, кстати, я тоже не понял -- с какого перепугу

Разделитель представлен строкой "1:", она встречается в строке только один раз, а значит, на выходе должно быть -- "111" и "2222" при входной строке 1111:2222
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#26: 2010-09-11 00:21:06 ЛС | профиль | цитата
nesco писал(а):
А может и пойти по пути этой костыльной системы
Да... Курить начал ?
nesco писал(а):
В принципе, я переделал под замещающий алгоритм, подожду ответа
Точно начал и травка видать забористая. Зря. Дурь поощерять нельзя ИМХО.
Вводим понятие "многознаковый разделитель". Патент HiAsm.
evgenyatam, здесь я применил символ с кодом 7.
code_20542.txt
------------ Дoбавленo в 00.21:
nesco писал(а):
А вот этого, кстати, я тоже не понл -- с какого перепугу
А может он празднует еврейский Новый год
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_20542.txt [861B] [115]
Разработчик
Ответов: 26163
Рейтинг: 2127
#27: 2010-09-11 00:31:34 ЛС | профиль | цитата
Tad писал(а):
Вводим понятие "многознаковый разделитель". Патент HiAsm.

Почему "многознаковый" -- "строковый"

Можно подумать, сам не то же самое сделал
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#28: 2010-09-11 00:50:22 ЛС | профиль | цитата
nesco писал(а):
А может и пойти по пути этой костыльной системы

острых ощущений захотелось?

Tad писал(а):
Хотя Convertor+Memory больше похожи на костыль (даже визуально )

если брать код, то костылем как раз будет являться Convertor с нижней точкой Result

nesco, согласен с Tad, ом - не нужно в компоненты вставлять индусонаправленный код. Если хочется реализовать фичу, она должна быть максимально эффективной, а костылей пользователь и сам может в своей схеме наставить.

Предлагаю всеже переделать элемент (FParse во всяком случае) на работу только с один символом через ф-цию GetTok
карма: 27
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#29: 2010-09-11 01:00:27 ЛС | профиль | цитата
Dilma писал(а):
на работу только с один символом через ф-цию GetTok

А как же реверс, написать GetTokR
А как же StrEnum
------------ Дoбавленo в 01.00:
А почему нельзя оставить то, что есть, только перевести все на один символ-разделитель
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#30: 2010-09-11 01:15:05 ЛС | профиль | цитата
nesco писал(а):
А как же StrEnum


#pas
I := Length(Delimiters);
А ведь в моем макете был одиночный символ. Твоё изобретение.
Каюсь. Не обратил внимания на эту строчку. Повезло тебе.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)