UoKit.com Форумы > Кликер > UO Pilot
Страницы: 1, 2
Fire73
Ребят, такая ситуация, такой скрипт.

В текстовом документе REG.txt следующее:
@Zolotoy Serebro Bronza


Код
load_array %arr C:\Users\REG.txt
//log %arr [1]   // первая строка из файла
//log %arr [2]   // вторая

log clear
log mode compact

set $regexp "[^ ]+"
set #n regexp (#pos $one %arr[1] $regexp)  // поиск в строке любого текста до пробела
if  #n = 1
end_if

set $regexp "(?<= )[^ ]+"
set #n regexp (#pos $two %arr[1] $regexp)  // поиск в строке текста после пробела
if  #n = 1
end_if

set clipboard $two
sendex ^v


Вопрос:
1) $two в моем случае это - Serebro, но как сделать так, чтобы к слову генерировался дополнительный случайный символ, чтобы, например, в итоге получилось Serebrom, Serebroz...?
2) Какое составить регулярное выражение, чтобы к 3 слову в REG.txt было тоже присвоено имя #three
Вверх
cirus
Цитата
чтобы к слову генерировался дополнительный случайный символ

Код
set $two serebro
set #rand 97 + random(26)
init_arr %a (1) $two chr(#rand)
log %a[1]
end_script

Цитата
2) Какое составить регулярное выражение, чтобы к 3 слову в REG.txt было тоже присвоено имя #three

Код
set $regexp "[^ ]+$"

Вверх
Fors1k
Цитата(Fire73 @ 16.9.2019, 16:01)

Ребят, такая ситуация, такой скрипт.

В текстовом документе REG.txt следующее:
@Zolotoy Serebro Bronza
Код
Код
load_array %arr C:\Users\REG.txt
//log %arr [1]   // первая строка из файла
//log %arr [2]   // вторая

log clear
log mode compact

set $regexp "[^ ]+"
set #n regexp (#pos $one %arr[1] $regexp)  // поиск в строке любого текста до пробела
if  #n = 1
end_if

set $regexp "(?<= )[^ ]+"
set #n regexp (#pos $two %arr[1] $regexp)  // поиск в строке текста после пробела
if  #n = 1
end_if

set clipboard $two
sendex ^v


Вопрос:
1) $two в моем случае это - Serebro, но как сделать так, чтобы к слову генерировался дополнительный случайный символ, чтобы, например, в итоге получилось Serebrom, Serebroz...?
2) Какое составить регулярное выражение, чтобы к 3 слову в REG.txt было тоже присвоено имя #three

Ну и вообще можешь в целом сильно сократить свой код:
Код
load_array %arr C:\Users\REG.txt
get word $two 2 %arr[1]
get word $three 3 %arr[1]
set #rand random(26) + 97
set $smbl chr(#rand)
set $two $two$smbl

log $two
log $three
end_script

Вверх
Fire73
Спасибо, ребят!
А вот если добавить 2 рандомные буквы, а не одну?
Вверх
Fors1k
Код
load_array %arr C:\Users\REG.txt
get word $two 2 %arr[1]
get word $three 3 %arr[1]
set #rand random(26) + 97
set #rand1 random(26) + 97
set $smbl chr(#rand)
set $smbl1 chr(#rand1)
set $two $two$smbl$smbl1

log $two
log $three
end_script

Вверх
FREEON
Все разабрауся
Вверх
FREEON
Есть регулярное вырожение: -0x[0-5][0-9]$
как записать что бы числа могли искаться
-0x01
-0x10
-0x20
-0x59
но не включало в результат поиска два нуля:
-0x00
Вверх
Fors1k
Цитата(FREEON @ 16.2.2020, 16:52)

Есть регулярное вырожение: -0x[0-5][0-9]$
как записать что бы числа могли искаться
-0x01
-0x10
-0x20
-0x59
но не включало в результат поиска два нуля:
-0x00

Код
load_array %a "C:\qwe.txt"
set $rgxp "(?<=(?!(-0x00)))-0x[0-5][0-9](?=$)"
for #i 1 size(%a)
    set #n regexp (#p $a %a[#i] $rgxp)
    if #n > 0
        set $res $res $a
    end_if
end_for
init_arr %result (1 1) $res
save_array %result "C:\qwe_result.txt"
end_script

Вверх
cirus
Цитата
set $rgxp "(?<=(?!(-0x00)))-0x[0-5][0-9](?=$)"

Или так:
Код
set $rgxp "-0x(0[1-9]|[1-5][0-9])$"

Вверх
Fors1k
Цитата(cirus @ 16.2.2020, 17:55)

Или так:
Код
set $rgxp "-0x(0[1-9]|[1-5][0-9])$"


Да, тоже интересный вариант
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.