Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Torari

Pages: [1] 2
1
Мне кажется, еще было бы удобно для STRPOS ввести 3ий параметр (направление).

Синтаксис

STRPOS ("str", "substr", mod) - числовая функция; возвращает позицию подстроки в строке

Параметры
str - строка
substr - подстрока
mod - направление (1 сначала, 2 с конца)

$search = "mind"
$r = strpos("My mind, where is my mind", $search, 1)
print($r) // результат 4 (с 4 символа начинается подстрока, когда направление выбрано 1 (с начала))

$search = "mind"
$r = strpos("My mind, where is my mind", $search, 2)
print($r) // результат 22 (с 22 символа начинается подстрока, когда направление выбрано 2 (с конца))

2
strsearch ("str", "substr") - числовая функция; возвращает количество позиций подстроки в строке

str - строка
substr - подстрока

Пример

$search = "mind"
$r = strsearch("My mind, where is my mind", $search)
print($r) // результат 2

STRCUT3 - ("str", begin, mod) - строковая функция; возвращает кусок строки, используя направление

Параметры
str - входная строка
begin - позиция начала копирования
mod - направление копирования (вправо от позиции (1) и до самого конца) или (влево от позиции (2) и до самого начала)

пример
print( strcut3("hello2020", 5, 1 ) ) // результат "o2020"
print( strcut3("hello2020", 5, 2 ) ) // результат "hello"

Или модернизировать STRCUT ("str", begin, size) и STRCUT2 ("str", begin, end), где при отсутствии size и end, включается направление копирования, которое копирует всё целиком до конца от начала позиции копирования. А направление копирования, например STRCUT копирует (при отсутствии size) до конца вправо от позиции. А STRCUT2 копирует (при отсутствии end) до конца (т.е. до начала строки) влево от позиции.

3
Quote
перед заполнением массива известны его размеры
Да, получается известны. Ок, буду пробовать.

Quote
а то все началось
Ну, это философский вопрос  :D с позиции профессионала, он возможно и выглядит как "не хватает функционала". Для меня (как новичка) всё выглядит в свете "не запутаться бы" и "написать скрипт, который понятен мне" и "как можно меньше залезать в профессиональные дебри".  :)

4
 :) "переменные $a_1" это я для тренировки в отдельном сценарии, не стал усложнять скрипт циклами и прочим. Не использовать же в боевом скрипте то, что непонятно работает?

Получается, в двух мерном псевдомассиве, нужно сразу записывать значения массива (который идет первым) целиком, иначе значения первого массива потом не добавить? Печалька.

5
Oraven, Vint, Johnny
Спасибо за содержательные ответы. Попробую переосмыслить алгоритмы.

зы
Я совсем ничего непонимаю про псевдомногомерные массивы. Допустим, есть переменные вида "a" и переменные вида "b". Как их положить в один массив? (Еще предположим, что нулем у меня не мб разделение, ибо встречается ноль в качестве значений. Пусть разделением будет косая черта)

$a_1 = 11
$a_2 = 12
$a_3 = 13
$a_4 = 14

$b_1 = 345
$b_2 = 346
$b_3 = 347
$b_4 = 347

Так?
Code: [Select]
$arr[0] = $a_1
$arr[1] = $a_2
$arr[2] = $a_3
$arr[3] = $a_4
$arr[4] = "/"
$arr[5] = $b_1
$arr[6] = $b_2
$arr[7] = $b_3
$arr[8] = $b_4
$arr[9] = "/"

Или как-то так?
Code: [Select]
$arr[0] = $a_1,"/",$b_1
$arr[1] = $a_2,"/",$b_2
$arr[2] = $a_3,"/",$b_3
$arr[3] = $a_4,"/",$b_4

Или как-то так?
Code: [Select]
$arr[0] = STRCONCAT ($a_1,"/",$b_1)
$arr[1] = STRCONCAT ($a_2,"/",$b_2)
$arr[2] = STRCONCAT ($a_3,"/",$b_3)
$arr[3] = STRCONCAT ($a_4,"/",$b_4)

6
Quote
Что за надобность такая?
Несколько раз меня на мысль такую наводили несколько разных случаев в разное время. Вот решил задать вопрос в общем, без привязки к конкретике. Сейчас попробую сформулировать с конкретикой. Только просьба не смеяться, я не программист. )

Случай 1ый. Есть значения результатов. Их можно сгруппировать по смыслу a, b, c, d, e.
Code: [Select]
a_1, a_2, a_3 и тд
b_1, b_2, b_3 и тд
c_1, c_2, c_3 и тд
d_1, d_2, d_3 и тд
e_1, e_2, e_3 и тд
и тд_1, и тд_2, и тд_3 и тд
Эти результаты со сторонней программы приходят в файлы. Причем приходят результаты не по порядку, а абсолютно хаотично.
Code: [Select]
a_3, a_2, a_1, a_5, a_4 и тд
b_1, b_3, b_4, b_2, b_5 и тд
c_2, c_3, c_1, c_5, c_4 и тд
d_5, d_4, d_3, d_2, d_1 и тд
e_4, e_3, e_1, e_5, e_2 и тд
и тд_1, и тд_2, и тд_3 и тд
Причем, за каждую "итеррацию" (надеюсь так можно выражаться в приличном обществе) приходит разное количество результатов. Как в одну сторону a, b, c, d, e, f и тд... так и в другую 1,2,3,4,5,6 и тд

Может быть так:[spoiler]Может быть так:
Quote
a_1, a_2
b_1, b_1
c_2, c_1
d_2, d_1
e_1, e_2
f_1, f_2
g_1, g_2
h_1, h_2
Или быть так:
Quote
a_3, a_2, a_1, a_7, a_4, a_6, a_5
b_1, b_3, b_6, b_4, b_2, b_5, b_7
c_2, c_3, c_1, c_7, c_5, c_6, c_4
Или вообще так:
Quote
a_3, a_2, a_1, a_5, a_4
b_1, b_3, b_4, b_2, b_5
c_2, c_3, c_1, c_5, c_4
d_5, d_4, d_3, d_2, d_1
e_4, e_3, e_1, e_5, e_2
[/spoiler]

Как я поступаю. (Возможно я поступаю мегобредово, тут уж не обессудьте.).
[spoiler]
Я забираю из файлов поочередно пачки результатов, в массивы. Огромное спасибо Atas, который научил меня это делать здесь.
Quote
$arr_a[0] = a_3
$arr_a[1] = a_2
$arr_a[2] = a_1
$arr_a[3] = a_5
$arr_a[4] = a_4
Quote
$arr_b[0] = b_1
$arr_b[1] = b_3
$arr_b[2] = b_4
$arr_b[3] = b_2
$arr_b[4] = b_5
Quote
$arr_c[0] = c_2
$arr_c[1] = c_3
$arr_c[2] = c_1
$arr_c[3] = c_5
$arr_c[4] = c_4
Quote
$arr_d[0] = d_5
$arr_d[1] = d_4
$arr_d[2] = d_3
$arr_d[3] = d_2
$arr_d[4] = d_1
Quote
$arr_e[0] = e_4
$arr_e[1] = e_3
$arr_e[2] = e_1
$arr_e[3] = e_5
$arr_e[4] = e_2
[/spoiler]

Далее, чтобы гонять эти значения по скриптам (циклам), у меня потребность возникает сгруппировать эти результаты в том виде, в котором я их представляю в голове.
[spoiler]
Для этого мне нужны еще массивы.
Quote
$arr_1[0] = a_1
$arr_1[1] = b_1
$arr_1[2] = c_1
$arr_1[3] = d_1
$arr_1[4] = e_1
Quote
$arr_2[0] = a_2
$arr_2[1] = b_2
$arr_2[2] = c_2
$arr_2[3] = d_2
$arr_2[4] = e_2
Quote
$arr_3[0] = a_3
$arr_3[1] = b_3
$arr_3[2] = c_3
$arr_3[3] = d_3
$arr_3[4] = e_3
Quote
$arr_4[0] = a_4
$arr_4[1] = b_4
$arr_4[2] = c_4
$arr_4[3] = d_4
$arr_4[4] = e_4
Quote
$arr_5[0] = a_5
$arr_5[1] = b_5
$arr_5[2] = c_5
$arr_5[3] = d_5
$arr_5[4] = e_5
[/spoiler]

Но получается, что за каждую итеррацию, я не знаю заранее сколько у меня массивов вида ($arr_a, $arr_b, $arr_c, $arr_d, $arr_e и тд) и сколько массивов вида ($arr_1, $arr_2, $arr_3, $arr_4, $arr_5, $arr_6, $arr_7, $arr_8 и тд)

Случай 2ой. Менее печальный и более предсказуемый. Но мысли возникают, про "облегчение жизни". К примеру, есть файл, в нем таблица.

[spoiler]
заголовок_1     заголовок_2      заголовок_3
значение_1_1   значение_2_1    значение_3_1
значение_1_2   значение_2_2    значение_3_2
значение_1_3   значение_2_3    значение_3_3
[/spoiler]

При извлечении результатов, хочется, при объявлении переменных, не вводить имена переменных вручную. А брать имена для переменных сразу из шапок таблиц в готовом виде. Т.к. таблиц у меня много, всяких разных. Если это не автоматизировать, то с моей запредельной внимательностью и вселенской концентрацией внимания, просто тонна ошибок льется.
[spoiler]$заголовок_1
$заголовок_2
$заголовок_3
Или для массивов.
$arr_заголовок_1
$arr_заголовок_2
$arr_заголовок_3[/spoiler]

7
 ;D Динамически изменяется потребность в переменных. Я тут не причем, жизнь такая.)

8
Что-то меня переклинило, помогите разобраться. Допустим, объявляю в "ручную" переменные.
Code: [Select]
$var_1 = значение_1
$var_2 = значение_2
$var_3 = значение_3
Далее выполняется код. И тут внезапно, бах, у меня появилась нужда в переменных $var_4, $var_5, $var_6, которые я крайне редко использую. И переменные срочно нужно создать и срочно положить туда значения. Что бы с ними дальше работать. Что-то типа нижележащего примера, но в таком виде скрипт не работает.
Code: [Select]
$i=4
For($i, $i<8)
$var_$i = значение_$i
End_cyc
Я понимаю, что пример для 7ми переменных выглядит, мол, "бери и объявляй" в ручную. Но для случая, где ~70 переменных, в которых обычно скрипт используют ~20, а остальные переменные болтаются "баластом" и нужны лишь в редких случаях (но эти случаи встречаются). Как-то скрипт выглядит громоздко.

Аналогичная вещь нужна для массивов.
Code: [Select]
$arr_1[0] = значение_1_0
$arr_1[1] = значение_1_1
$arr_1[2] = значение_1_2

$arr_2[0] = значение_2_0
$arr_2[1] = значение_2_1
$arr_2[2] = значение_2_2
Code: [Select]
$i=3
For($m, $m<8)
$arr_$m[0] = значение_$m_0
$arr_$m[1] = значение_$m_1
$arr_$m[2] = значение_$m_2
End_cyc
Вот такие заморочки)

9
Предложения / Re: [Alpha/Beta Testing]
« on: March 27, 2014, 04:42:49 AM »
добавлена поддержка неск.мониторов (расширенный рабочий стол)
У меня два монитора. Версия кликермана 4,9. Работает alt + Q во втором мониторе, клики кликаются по второму монитору. Не понятно, что включает в себя новая поддержка неск.мониторов для новой версии?

10
Учебные статьи / Re: Массивы
« on: March 26, 2014, 01:05:03 PM »
Quote
а в массиве, как в таблице, много значений или строк в столбик.
Ну, а в любой таблице, в ячейку можно вставить другую таблицу =) можно в ворде поэкспериментировать  ;).

Такие массивы называются "массивы массивов" или "многомерные массивы". Как-то так или как-то по другому. Кажется в школе была тема про них или в вузе, не помню уже подробностей. В любом случае, если кликермэн это поддерживает, то мне нужны примеры синтаксиса... иначе, я сам не додумаюсь).

11
Учебные статьи / Re: Массивы
« on: March 26, 2014, 11:56:23 AM »
А можно положить один массив в другой массив? Если это сделать можно, то было бы здорово посмотреть на пару простых примеров. Для общего повышения образованности, так сказать. Создать массив№1, который лежит в массиве№2. Положить данные в массив№1, который в массиве№2. Взять данные или вывести данные в логи, которые лежат в массиве№1, который лежит в массиве№2.

12
Общие вопросы / Re: Из HEX в Dec
« on: March 22, 2014, 12:09:48 AM »
Atas, Oraven Спасибо за разъяснения :) Очень помогли )

зы
Да, в мануале написано про числа в шестнадцатиричном виде "Введение, Арифметика", не заметил. Забавно оказалось, что для HEX и Dec можно не переводить числа в единую систему счисления перед использованием в теле скрипта.
Code: [Select]
$a = 2014
$b = 0x7de
$d = $a + $b

print ($d)  // $d = 4028
Code: [Select]
$a = 2014
$b = 0x7de
   IF ($a = $b)

print ("$a и $b - одно и тоже число, но в разных системах счисления")

   END_IF

13
Общие вопросы / Из HEX в Dec
« on: March 21, 2014, 04:31:27 PM »
Доброго времени суток. Нужен скрипт перевода чисел из шестнадцатеричной (HEX) в десятичную систему счисления (Dec). Скрипт желателен для кликермэна, чтобы использовать в другом скрипте кликермэна. Такое возможно? Но другие способы тоже приветствуются.

зы пофиксил "oct" = dec) сори

14
Общие вопросы / Re: разбираюсь с POSTMESSAGE
« on: March 21, 2014, 06:37:44 AM »
Quote
хотелось бы узнать, что значат остальные сообщения (по клавиатуре)
присоединяюсь)

15
Всем привет. Собственно, вопрос у меня короткий. Нужно по идентификатору процесса (pID) найти "главное" HWND окна этого процесса. Как?) подскажите плиз)

Pages: [1] 2