Что нового

[Баг] Функция StringInStr не хочет искать вхождение с конца строки

atacit

Новичок
Сообщения
4
Репутация
0
Например, данные выражения возвращают одно и то же значение:
StringInStr("abcdefg.txt",".", 0,1) = 8
StringInStr("abcdefg.txt",".", 0,-1) = 8

...или я чего то не понимаю в синтаксисе этой функции
AutoIt v3.3.8.1
AutoIt3Wrapper v2.1.0.33
 

asdf8

Скриптер
Сообщения
564
Репутация
152
atacit [?]
...или я чего то не понимаю
даже если эта функция ищет с конца, возвращается номер найденного символа, который всегда считается с начала.
 
Автор
A

atacit

Новичок
Сообщения
4
Репутация
0
даже если эта функция ищет с конца, возвращается номер найденного символа, который всегда считается с начала.
Действительно так.
Спасибо!
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
atacit
Можно так:

Код:
#include <String.au3>
ConsoleWrite(StringInStr("abcdefg.txt",".", 0,1) & @CRLF)
ConsoleWrite(StringInStr(_StringReverse("abcdefg.txt"),".", 0,-1) & @CRLF)
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
WSWR
Предлагаю последнюю строка записать так:
Код:
#include <String.au3>
$sText = "abcdefg.txt"
ConsoleWrite(StringLen($sText) - StringInStr($sText,".", 0,-1) + 1 & @CRLF)
 
Верх