1

Тема: AHK: Выбор случайного файла каждые 10 минут

Доброго времени, друзья.

Не подскажете - как  определить переменную не точным адресом файла, а случайным адресом из конкретной папки (с выбором расширений - либо doc либо rtf) - с переопределением этой переменной каждые 10минут ?

Переменная с конкретным определением адреса -  это sDocum := "F:\-34 420\статья.rtf"

2

Re: AHK: Выбор случайного файла каждые 10 минут

Не совсем понятно что нужно в итоге: случайный файл из папки выбрать?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: Выбор случайного файла каждые 10 минут

__Михаил__ - да, выбрать случайный файл из указанной папки "F:\-34 420" с расширением либо doc либо rtf (там просто много и других расширений)

4

Re: AHK: Выбор случайного файла каждые 10 минут

Не подскажете - как  определить переменную не точным адресом файла, а случайным адресом из конкретной папки (с выбором расширений - либо doc либо rtf) - с переопределением этой переменной каждые 10минут ?

Переменная с конкретным определением адреса -  это sDocum := "F:\-34 420\статья.rtf"

5

Re: AHK: Выбор случайного файла каждые 10 минут

Случайный файл с конкретным расширением можно так выбрать:

ext := "doc"
Files := []
Loop, Files, D:\MyFolder\*.%ext%, F
   Files.Push(A_LoopFilePath)
Random, rand, 1, Files.Count()
MsgBox, % randomFile := Files[rand]

А уж как это делать каждые 10 минут попробуйте сами догадаться.

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

6

Re: AHK: Выбор случайного файла каждые 10 минут

teadrinker а там же не одно расширение, а несколько.
Остальные расширения - как в код вписать ?

7

Re: AHK: Выбор случайного файла каждые 10 минут

Что тут сложного?

ext := "doc"
ext1 := "rtf"

Files := []
Loop, Files, D:\MyFolder\*.%ext%, F
   Files.Push(A_LoopFilePath)

Loop, Files, D:\MyFolder\*.%ext1%, F
   Files.Push(A_LoopFilePath)

Random, rand, 1, Files.Count()
MsgBox, % randomFile := Files[rand]
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

8

Re: AHK: Выбор случайного файла каждые 10 минут

Или так:

Files := []
for k, ext in ["doc", "rtf"] {
   Loop, Files, D:\MyFolder\*.%ext%, F
      Files.Push(A_LoopFilePath)
}
Random, rand, 1, Files.Count()
MsgBox, % randomFile := Files[rand]
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Выбор случайного файла каждые 10 минут

Понятно. Спасибо.

10

Re: AHK: Выбор случайного файла каждые 10 минут

teadrinker

Ещё нужно через RegExMatch шаблон показать - и уникальная тема, на которую можно в дальнейшем ссылку кидать.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

11 (изменено: teadrinker, 2020-08-11 16:34:30)

Re: AHK: Выбор случайного файла каждые 10 минут

Да, можно и через RegExMatch:

Files := []
Loop, Files, D:\MyFolder\*, F
   if (A_LoopFileExt ~= "i)^(doc|rtf)$")
      Files.Push(A_LoopFilePath)
Random, rand, 1, Files.Count()
MsgBox, % randomFile := Files[rand]

Но проще так:

Files := []
Loop, Files, D:\MyFolder\*, F
   if A_LoopFileExt in doc,rtf
      Files.Push(A_LoopFilePath)
Random, rand, 1, Files.Count()
MsgBox, % randomFile := Files[rand]
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder