1

Тема: AHK: Части переменной в массив.

Здравствуйте! Вот переменная:

10:05 - 10:50IT ; Пушкин; Дятлово - A111 (Осно)
9:05 - 10:50IT ; Грибоедов; Дятлово - B407 (Осно)
11:00 - 11:45IT ; Пушкин; Дятлово - A111 (Осно)
11:00 - 11:45IT ; Грибоедов; Дятлово - B407 (Осно)

Как переместить время в массив? Т.е. чтобы в каждой части массива было 9:05 - 10:50, 11:00 - 11:45 и 11:00 - 11:45?
Заранее спасибо.

2 (изменено: belyankin12, 2017-11-12 01:42:30)

Re: AHK: Части переменной в массив.

arr := []
Loop 10 {
arr[A_Index] := A_Index
msgbox, % arr[A_Index]
}
Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

3 (изменено: teadrinker, 2017-11-12 01:44:27)

Re: AHK: Части переменной в массив.

var =
(
10:05 - 10:50IT ; Пушкин; Дятлово - A111 (Осно)
9:05 - 10:50IT ; Грибоедов; Дятлово - B407 (Осно)
11:00 - 11:45IT ; Пушкин; Дятлово - A111 (Осно)
11:00 - 11:45IT ; Грибоедов; Дятлово - B407 (Осно)
)
arr := StrSplit(RegExReplace(var, "(IT(?=[^\r\n]+$))?\s+;.*?(\R|$)"), "IT")

for k, v in arr
   MsgBox, % v
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

4

Re: AHK: Части переменной в массив.

Большое спасибо

5

Re: AHK: Части переменной в массив.

teadrinker, а если предположить, что там не только IT? А в каждой строке разные символы, как тогда быть?

6

Re: AHK: Части переменной в массив.

var =
(
10:05 - 10:50IT ; Пушкин; Дятлово - A111 (Осно)
9:05 - 10:50 ; Грибоедов; Дятлово - B407 (Осно)
11:00 - 11:45I ; Пушкин; Дятлово - A111 (Осно)
11:00 - 11:48++ ; Грибоедов; Дятлово - B407 (Осно)
)

arr := StrSplit(RegExReplace(var, "m`a)(\d+:\d+ - \d+:\d+).*?$", "$1"), "`n")

for k, v in arr
   MsgBox, % v
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit).

7

Re: AHK: Части переменной в массив.

Лучше так:

arr := StrSplit(RegExReplace(var, "m`a)(\d+:\d+ - \d+:\d+).*?$", "$1"), "`n", "`r")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

8

Re: AHK: Части переменной в массив.

Всем привет.

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

Нужна функция, обратная strsplit(), собирающая строку из элементов массива через разделитель. Этакий explode.

Заранее благодарю.

9

Re: AHK: Части переменной в массив.

Stepnoy, а в чём сложность? Обходите массив через for k, v in arr, и собираете строку через разделитель.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

10

Re: AHK: Части переменной в массив.

teadrinker, да сложности-то никакой нет.

Видать, немного неправильно пост написал). Нужно было вместо "нужна функция" спросить "есть ли такая функция?".
Потому как все знают простую истину: меньше кода и лучшая читабельность лучше чем наоборот.

Неужели нет такой? Что-то мне кажется, что я ее когда-то здесь встречал.
Если действительно нет, значит путаю с другим языком и форумом.

11

Re: AHK: Части переменной в массив.

Все методы объектов перечислены здесь.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

12

Re: AHK: Части переменной в массив.

teadrinker, ну да, правда я читал общую информацию про объекты.
Тогда ладно, придется свою функцию делать.

13

Re: AHK: Части переменной в массив.

Делов-то на две минуты.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

14

Re: AHK: Части переменной в массив.

teadrinker, да я не спорю.

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