|
|
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
Есть ли в стандартной Tokyo нечто, что может такую строку Код: pascal 1. разложить на компоненты? В идеале хочется увидеть такой массив Код: pascal 1. Проблема в экранирующем символе String.Split умеет парсить закавыченные строки. А экранированные нет. С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 13:20 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Есть ли в стандартной Tokyo нечто, что может такую строку Код: pascal 1. разложить на компоненты? В идеале хочется увидеть такой массив Код: pascal 1. Проблема в экранирующем символе String.Split умеет парсить закавыченные строки. А экранированные нет. С уважением, Vasilisk По-моему, написать свой быстрее, чем ждать ответа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 13:22 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Заменить экранированные символы на что-то типа %$$$$%, потом распарсить Split`ом ? А после сплита вернуть взад замену. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 13:22 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
DarkMasterЗаменитьДа вариантов куча. Если писать, тогда уже обычным циклом. Интересно было есть ли что-то стандартное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 13:33 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_DarkMasterЗаменитьДа вариантов куча. Если писать, тогда уже обычным циклом. Интересно было есть ли что-то стандартное? Использовать нормальные компоненты/классы для работы с active directory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 13:45 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
JaDi нормальные компоненты/классы "нормальных" классов я там не увидел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 13:50 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_В идеале хочется увидеть такой массив ['CN', 'User', 'OU', 'SubDep,OU=1', 'OU', 'Dep', 'DC', 'Dom'] Не совсем понятно по какому принципу строится массив. Но первое, что приходит в голову, это: Код: pascal 1. Будут лишние пустые элементы, но для настоящих программистов это же не страшно? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 14:29 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
DimonkaНе совсем понятно по какому принципу строится массивСтрока разбивается на подстроки ра разделителю ",", а потом каждая подстрока разбивается на "имя", "значение" по "=". При этом символ "\" является экранирующим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 14:35 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_DimonkaНе совсем понятно по какому принципу строится массивСтрока разбивается на подстроки ра разделителю ",", а потом каждая подстрока разбивается на "имя", "значение" по "=". При этом символ "\" является экранирующим может тогда обычный TStringList лучше использовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 14:53 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
haydegenTStringListУ него та же проблема, что и у String.Split. Он умеет работать с закавыченными строками, но не умеет с экранированными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 14:59 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
Поддержки Escape символов, вроде бы, нет. Не паскалевская фича. Да и задача чересчур специфическая. Если нет особых требований по скорости, я бы посоветовал долгий путь заменами: \\ => \slash\ \, => \comma\ \= => \eq\ ... split по "," подстановки все заменить на символы для каждого элемента. Либо, чуть быстрее и короче: \\ => \slash\ \, => \comma\ \= => \eq\ ... , => #0 (точно не встретится в корректной исходной строке) подстановки заменить на символы split по #0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 15:06 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
Ладно.. оптимизируйте: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 16:05 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
У меня свой метод "для ленивых". Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. А потом Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 16:13 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
rgreatУ меня свой метод "для ленивых". который обломается на первом эскейпнутом символе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 16:58 |
|
||
|
Парсинг строк для ленивых
|
|||
|---|---|---|---|
|
#18+
Василий 2, Он не для этого сделан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 17:12 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=101&tid=2040589]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 435ms |

| 0 / 0 |
