PDA

Просмотр полной версии : Нужно обработку строк


Bart1856
15.01.2009, 00:27
Бот ругается на строку в макросе
if ($mass eq "clear") goto werenoa
это просто проверка на эквивалентность строки, ранее указано, что $mass = "clear", что где прописать, чтобы это обрабатывалось и, попутно, включена ли конкатенация строк типа
$a = 123
$b = 456
# и чтобы выводилось результатом в ц 123456
$c = $a . $b. Если нет, то где надо что дописать?

4epT
15.01.2009, 01:05
вместо eq поставь ==
если не прокатит, то попробуй различную вариацию кавычек, по моему правильно писать так: $mass = clear

а на счёт $c приведи пример где тебе это надо

Bart1856
15.01.2009, 01:43
........
$a = 123
..........
if ($mass == clear) goto werenoa
goto no123is
:werenoa
$mass = no123
log "НЕТ $mass"
goto fgh
:no123is
$mass = $mass$a
log "НЕТ $mass" # выведет "НЕТ no123" или "НЕТ clear123" например
.....................
с равенством заработало, а конкатенации нет. оно работает только так, как выше
и как надо вызвать вот такое? это как бы в масс собрано всё, что надо и вызывать макрос должен, имя которого получилось в переменной
call $mass
в консоле такое [macro] proverka error: error in 139: failed to call script
название макроса существует, проверил логом масс'a
как это правильно надо по переменной вызов делать?
Если нельзя, то как вызывать без сравнения, есть конечно вариант
if ($mass == no123) goto no123
goto next2
:no123
call no123
:next2, но так получится целая куча сравнений, не ошибиться в этом будет одно, а мне надо было, чтобы по прошествии пары месяцев просто при необходимости пару блоков добавить и всё, со сравнениями такой вариант отменяется((

4epT
15.01.2009, 03:02
по моему так не фига не выйдет:
call $mass
тут нужно конкретное имя

Bart1856
16.01.2009, 03:26
то есть, можно только сравненением получается?
А как ещё можно это организовать, более интересными способами?
А то у меня на данный момент сравнениями получится 127 комбинаций, это если макрос не расширять. Ну например, какой командой посчитать кол-во символов в строке?(строка хранится в переменной).

4epT
16.01.2009, 20:28
а в перле есть такая функция? может как-то её запарить через "@eval"??

Bart1856
16.01.2009, 20:39
Ну в делфи есть такая ф-ция, я думаю, в перле тоже должна быть, только я его лишь начинаю изучать, поэтому не знаю

Bart1856
18.01.2009, 00:17
Вы давали файл, в котором содержался патч, чтобы @eval нормально обрабатывался, вероятно, так же можно сделать и с вызовом макроса по переменной, а не по конкретному имени? Если можете, дайте патч., чтобы переменная воспринмалась в качестве имени, то есть, чтобы макро плагин воспринимал содержимое переменной и преобразовывал в имя.

4epT
20.01.2009, 00:14
хихи.. я на днях убил винт там были все мои наработки с ботом.. у меня даже бота нету.. забавно.. я думаю что это реально сделать, найти в макро-плагине где обрабатыватся команда "call" и посмотреть что там нужно добавить