Что нового

[Данные, строки] Следующая строка

Duha666

Новичок
Сообщения
2
Репутация
0
Код:
Func NextString($sString, $sCurrent) ; первый параметр строка ("abcd"), второй - номер символа (номер последнего - StringLen($sString))
    Local $iSymbolCode

    If $sCurrent = 0 Then
        Return ""
    Else
        $iSymbolCode = Asc(StringMid($sString, $sCurrent, 1)) + 1
        If $iSymbolCode = 256 Then
            Return NextString(StringLeft($sString, $sCurrent - 1) & Chr(0) & StringRight($sString, StringLen($sString) - $sCurrent), $sCurrent - 1)
        Else
            Return StringLeft($sString, $sCurrent - 1) & Chr($iSymbolCode) & StringRight($sString, StringLen($sString) - $sCurrent)
        EndIf
    EndIf
EndFunc
Код работает неверно. После aaaю:

aaaя
aab
aac

Где ошибка?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
{CodeWarn.SModer}
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
OffTopic:
Тема: "Следующая строка"
Интригует! ;D
 
Автор
D

Duha666

Новичок
Сообщения
2
Репутация
0
Sp01LeR сказал(а):
Duha666 [?]

Код работает неверно. После aaaю:
aaaя
aab
aac
А как должно быть после "aaaю" ???
Так работает:

аааю -> ааая -> ааб -> аав

Должно так:

аааю -> ааая -> ааб1 -> ааб2 (1 и 2 - первый и второй символ ASCII соответственно)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
А я все о своем. Duha666, для AutoIt кода есть своя кнопка -
.

По существу. AutoIt, как и API, работает с нуль-терминированными строками, поэтому запись

Код:
StringLeft($sString, $sCurrent - 1) & Chr(0) & StringRight($sString, StringLen($sString) - $sCurrent)


абсолютно бессмысленна, т.к. все, что находится после символа Chr(0), будет отброшено. Если уж очень надо, используйте массивы.
 

Sp01LeR

Знающий
Сообщения
45
Репутация
12
А я все о своем. Duha666, для AutoIt кода есть своя кнопка - .
Хм, справедливости ради стоит заметить, что форум часто подглючивает - я конечно никаких претензий не выдвигаю, но например у меня в файрлисе постоянно заморочки имеются - то ЦСС не подгрузиться, то яваскрипт не реагирует на события...
Может это просто проблема с кэшем, может с установленными плагинами, но тем не менее, мне уже привычней вручную прописать тег \[autoit\] или смайл :smile:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
Sp01LeR сказал(а):
у меня в файрлисе постоянно заморочки имеются...
На последней на сегодняшний день версии FF, я ниразу не имел никаких проблем, кроме тэгов вида [code=*].
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Yashied [?]
На последней на сегодняшний день версии FF, я ниразу не имел никаких проблем, кроме тэгов вида [сode=*].
Аналогично :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
OffTopic:
Sp01LeR
может стоит NoScript?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
OffTopic:
У меня в FF 3.6.12 стоит только Stop-or-Reload Button (привык). Нет нужды в остальном.

@Kaster

Или NoAutoItScript...
 
Верх