|
Странный функционал Replace с параметрами start и count
|
|||
---|---|---|---|
#18+
Давно пользуюсь функцией Replace в VB6 и VBS, но до сегодняшнего дня не использовал ее опциональные параметры start и count . Потребовалось произвести замену нескольких символов в строке, пропустив пару-тройку первых, где нахождение заменяемых было допустимо. Предполагаемое решение получилось примерно таким: Код: vbnet 1. 2. 3.
...как, собственно, его рекомендует эта страничка , первая в результатах Google по запросу replace в vbs . Однако реальный результат меня удивил настолько, что я снова решил возыметь наглость создать тему на SQL.ru и прочитать документацию на Replace от разработчика до конца . Код: vbnet 1.
Такие дела. Простите, что потратил ваше время ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 22:12 |
|
Странный функционал Replace с параметрами start и count
|
|||
---|---|---|---|
#18+
Я не знаю, каким местом Вы смотрите. описание синтаксисаReplace(expression, find, replace[, start[, count[, compare]]]) Раскладываем Ваш опус: Код: vbnet 1.
Теперь разбираем. expression := "1;2;3;4;5" - это в чём заменять find := ";" - это что искать/заменять replace := "-" - это на что заменять найденное start := 3 - это откуда начинать. Третий символ исходной строки - это символ "2". count := -1 - это сколько заменять. Значение -1 означает "всё, что найдётся". Итак, что в остатке. Взять строку "1;2;3;4;5". Начать поиск/замену с третьего символа, т.е. в подстроке "2;3;4;5". Найти все ";" и заменить их на "-". Ну и теперь скажите, чем результат отличается от описания? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 07:32 |
|
Странный функционал Replace с параметрами start и count
|
|||
---|---|---|---|
#18+
trigubovichaa, дополню Akina. Присмотритесь к описанию результата в справке внимательно: авторВозвращаемое значение функции Replace — это строка с выполненными подстановками, которая начинается с позиции, заданной с помощью Start и завершается в конце строки выражения . Это не копия исходной строки с начала до конца. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 09:35 |
|
Странный функционал Replace с параметрами start и count
|
|||
---|---|---|---|
#18+
Akina, да вроде тем же, чем и большинство, о чем косвенно, все еще надеюсь, дал понять в своем посте: trigubovichaa решил возыметь наглость создать тему на SQL.ru и прочитать документацию на Replace от разработчика до конца . Там даже ссылочка указана. Если что, по ней можно сходить и понять, что я был вкурсе насчет The_PristВозвращаемое значение функции Replace — это строка с выполненными подстановками, которая начинается с позиции, заданной с помощью Start и завершается в конце строки выражения . Это не копия исходной строки с начала до конца. о чем и привел фрагмент Код: vbnet 1.
Своим постом я хотел привлечь внимание таких же невнимательных, как я, к странному функционалу Replace от VBS, VBA, VB6. Вот Вы, Akina , не находите странным обрезание исходной строки функцией, призванной (исходя из названия) просто заменять фрагменты строки, как это делают аналогичные функции в других языках? Невнимательные ребята с http://gsbelarus.com/gs/wiki , например, так же как и я считают, что Replace должна делать "replace", а никак не "cut off", о чем пишут здесь . Не поленитесь глянуть, это первая (!!!) строка в результатах поиска по запросу replace в vbs в гугле. Если бы мне нужно было резать начало строки, я бы воспользовался Right , на мой взгляд, очевиднейшим средством в сравнении с Replace . Никого не хотел обидеть! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2019, 01:00 |
|
Странный функционал Replace с параметрами start и count
|
|||
---|---|---|---|
#18+
trigubovichaaСвоим постом я хотел привлечь внимание таких же невнимательных, как я, к странному функционалу Replace от VBS, VBA, VB6. Вот Вы, Akina , не находите странным обрезание исходной строки функцией, призванной (исходя из названия) просто заменять фрагменты строки, как это делают аналогичные функции в других языках?Это называется implementation-related. Как автор захотел, так и реализовал. А кому не нравится - пишет свою функцию. И я не нахожу в этом ничего странного, я пользуюсь тем, что есть, в той форме, какой есть, а при необходимости корректирую до нужного мне поведения своим кодом. trigubovichaaНевнимательные ребята с http://gsbelarus.com/gs/wiki , например, так же как и я считают, что Replace должна делать "replace", а никак не "cut off", о чем пишут здесь . Ничего они не "пишут". Они тупо и бессмысленно перевели часть мануала , пролюбив при этом важное уточнение Remarks The return value of the Replace function is a string, with substitutions made, that begins at the position specified by start and concludes at the end of the expression string . It is not a copy of the original string from start to finish. В общем, "никогда не читайте за завтраком советских газет херово переведённых мануалов". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 08:09 |
|
|
start [/forum/topic.php?fid=60&fpage=6&tid=2154882]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 392ms |
0 / 0 |