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.


Topics - Axelenz

Pages: [1]
1
Уважаемые знатоки форума, прошу подсказать, может есть более изящное решение следующей задачи.

Есть массив:

Code: (html5) [Select]
Хорошая, лучшая цена: 10,50 y.e. ед.товара
Только сегодня, цена - 21.39 y.e. за штуку
Купите товар по ц.: 15,7 y. e. в розницу
. . .

необходимо из каждой текстовой строки $price массива данных вырезать только саму цену, т.е. цифры с любыми разделительными знаками между ними.
Вариант

Code: (clickermann) [Select]
$price = STRFILTER($price,".0123456789,", 1)

не подходит из-за непредсказуемости текста. Подходит только вариант найти первую и последнюю цифры в тексте, а до и после - всё отбросить.

Набросал вот такой код, но может кто подскажет более простой/быстрый вариант, как это лучше реализовать ?

Code: (clickermann) [Select]
//---------- поиск первой и последней цифры в цене
                     FOR($na = 1, $na < strlen($price))
                        $first = $na
                        IF(STRPOS("0123456789", STRCUT($price, $na, 1)) > 0)
                           $na = strlen($price)
                        END_IF
                     END_CYC
                     $price = strcut2($price, $first, strlen($price))
                     FOR($na = strlen($price), $na > 0, -1)
                        $last = $na
                        IF(STRPOS("0123456789", STRCUT($price, $na, 1)) > 0)
                           $na = 0
                        END_IF
                     END_CYC
                     $price = strcut2($price, 1, $last)
                     //---------------------------------------

2
Кусок кода позволяет найти файлы (в папке загрузки) по одинаковому словосочетанию в названии, из них выбирается файл более новый, например: по дате (времени) в названии самого файла. С помощью горячих клавиш файл разблокируется (для Office 2016).
Работает для Windows 8.1, Office 2016.

Code: (clickermann) [Select]
//Закрыть окно Clickermann
WNDSTATE(WNDFIND("Редактор - C:\Clickermann\"), 0)
WAIT(1)


//------------------------- Начальные данные для поиска файла ------------------
$name = inputbox("Введи имя файла для поиска или используй по умолчанию:", "price_2018", 5)

HINTPOPUP($name, "Искать файл по имени:")
WAIT(2)

//Добавление "0" перед месяцем и датой, если они имеют длину в 1 знак
IF(STRLEN($_date_m) = 1)
   $_date_m = STRCONCAT("0", $_date_m)
END_IF

IF(STRLEN($_date_d) = 1)
   $_date_d = STRCONCAT("0", $_date_d)
END_IF

//Объединить в одну строку год, месяц, дату: "20180224"
$_date_ = STRCONCAT($_date_y, $_date_m, $_date_d)

HINTPOPUP($_date_, "Искать файл по дате:")
WAIT(2)


//------------------------- Цикл поиска нужного файла --------------------------
GETFILELIST($prices, "C:\Users\User\Downloads\*.xlsx")

$price = "Нет файлов с таким именем !"

FOR($n = 0, $n < ARRSIZE($prices))
   $price = "Нет нового файла !"
   //Поиск "однотипных" файлов, например: с одинаковым началом в названии
   IF(STRPOS($prices[$n], $name) = 1)
      //Поиск среди них "свежего" файла, например: по дате, по времени
      IF(STRPOS($prices[$n], $_date_) > 0)
         $price = $prices[$n]
         $n = ARRSIZE($prices)
      END_IF
   END_IF
END_CYC

//Если искомого файла "Нет" - останов
SWITCH(STRPOS($price, "Нет"))
CASE(1)
   HINTPOPUP($price, "Файл НЕ найден:")
   WAIT(3)
   HALT
DEFAULT
   HINTPOPUP($price, "Файл найден:")
   WAIT(2)
END_SWITCH


//------------------------- Разблокировть файл (Office 2016) -------------------
//------------------------- Работа в проводнике Windows
EXECUTE("C:\Windows\explorer.exe\")
WAIT(1)
WNDSETINFO(WNDFIND("Этот компьютер"), 0, 0, 1440, 862)
WAITMS(500)

//Переключение языка на RU
SETKBLAYOUT(WNDFIND("Этот компьютер"), 1049)
WAIT(1)

//Папка загрузки
KEYDOWN(#F4)
WAITMS(100)

KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#A)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(100)

//Вставить путь к папке. Имя пользователя: "User"
TOCLIP("C:\Users\User\Downloads\")

KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(300)

KEYPRESS(#ENTER)
WAIT(1)

//Окно поиска
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#F)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(500)

//Вставить имя найденного файла
TOCLIP($price)

KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAIT(1)

KEYPRESS(#ENTER)
WAIT(1)
//------------------------- перейти к файлу и разблокировать
KEYPRESS(#DOWN)
WAIT(1)

KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#A)
WAITMS(50)
KEYUP(#CTRL)
WAIT(1)

KEYDOWN(#ALT)
WAITMS(50)
KEYPRESS(#ENTER)
WAITMS(50)
KEYUP(#ALT)
WAIT(1)

//Разблокировать: "З" (RU)
KEYPRESS(80)
WAITMS(100)

KEYPRESS(#ENTER)
WAIT(1)

//Закрыть проводник
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#W)
WAITMS(50)
KEYUP(#CTRL)
WAIT(2)

Если покороче и без горячих клавиш, то разблокировать файл можно так (путь к PowerShell указан для 32-разрядной системы):

Code: (clickermann) [Select]
//------------------------- Разблокировть файл (Office 2016) -------------------
EXECUTE("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe")
WAITMS(100)

KEYSTRING(STRCONCAT(" unblock-file -path C:\Users\User\Downloads\", $price))
KEYPRESS(#ENTER)
WAITMS(100)

KEYSTRING("exit")
KEYPRESS(#ENTER)
WAITMS(100)



3
В адресную строку браузера вставляем

Code: [Select]
data:text/html, <html contenteditable>
Либо можно приукрасить с помощью стилей "редактор" под Ваши потребности, например:

Code: [Select]
data:text/html, <style>html,body{margin: 0; padding: 0;}</style><textarea style="font-size: 1.5em; line-height: 1.5em; background: %23000; color: %233a3; width: 100%; height: 100%; border: none; outline: none; margin: 0; padding: 90px;" autofocus placeholder="wake up Neo..." />
В Clickermannе перейти на "редактор" можно с помощью "горячих клавиш":
Ctrl+Tab – Переключение на следующую вкладку, то есть на одну вправо.
Ctrl+Shift+Tab – Переключение на предыдущую вкладку, то есть на одну влево.
Окна "редакторов" можно создать для удобства, как слева так и справа от основного окна, в котором работаете.

Как сие можно использовать на практике ? Думаю, что можно окна "редакторов" использовать, например, в качестве буфера для хранения текста, используя только браузер и Clickermann, не вызывая других программ типа редакторов или менеджеров буфера обмена... Несложно будет набросать простенький скрипт.

Набор "горячих клавиш", которые также могут пригодиться при этом:
Ctrl+T – Открыть новую вкладку.
Ctrl+L, Alt+D, F6 – Выделить текст в адресной строке.
Ctrl+1-8 – Переключение на вкладку, положение которой на панели вкладок соответствует нажатой вами цифре.
Ctrl+9 – Переключение на последнюю вкладку.
Ctrl+Tab – Переключение на следующую вкладку, то есть на одну вправо.
Ctrl+PageDown  – Переключение на следующую вкладку, то есть на одну вправо.
Ctrl+Shift+Tab – Переключение на предыдущую вкладку, то есть на одну влево.
Ctrl+PageUp – Переключение на предыдущую вкладку, то есть на одну влево.
Ctrl+W - Закрыть текущую вкладку.
Ctrl+F4 – Закрыть текущую вкладку.
Ctrl+Shift+T – Открыть последнюю закрытую вкладку.
Ctrl+O – Открыть файл.
Ctrl+S – Сохранить файл.


Pages: [1]