Ru-Board.club
← Вернуться в раздел «Программы»

» Indigo Rose AutoPlay Media Studio

Автор: erickck
Дата сообщения: 21.10.2015 00:51
Zloy_Gelud, Огромное спасибо!

И еще вопрос по той же bass. Создаю синхронизатор, который срабатывает при обновлении трека на станции. Создал по примерах callback-функцию, но при обновлении песни, программа вылетает.
Можно ли через MemoryEx создавать callback-функции?


Код: require "alien"
bass = alien.load(_SourceFolder.."\\bass.dll")

--callback
function cl_bak(handle,channel,data,user)
bass.BASS_ChannelGetTags:types{ret = "string", "ulong", "ulong", abi="stdcall"}
meta = bass.BASS_ChannelGetTags(current_chanell, 5)
Dialog.Message("next song", meta);
end

callback_func = alien.callback(cl_bak,{"ulong","ulong","ulong","ulong",abi="stdcall"})
bass.BASS_ChannelSetSync:types{"uint","uint","uint","callback","uint", abi="stdcall"};
BASS_SYNC_META = 4;

--init
bass.BASS_Init:types{"int", "uint", "uint", "int", "uint", abi="stdcall"}
init = bass.BASS_Init(-1, 44100, 0, 0, 0)
if init ~= 0 then
bass.BASS_StreamCreateURL:types{"string", "uint", "uint", "int", "uint", abi="stdcall"}
current_chanell = bass.BASS_StreamCreateURL("http://sc2c-sjc.1.fm:7700", 0, 0, 0, 0)
if current_chanell ~= 0 then
bass.BASS_ChannelPlay:types{"ulong", "int", abi="stdcall"}
isplay = bass.BASS_ChannelPlay(current_chanell, 0)
if isplay ~= 0 then
bass.BASS_ChannelGetTags:types{ret = "string", "ulong", "ulong", abi="stdcall"}
meta = bass.BASS_ChannelGetTags(current_chanell, 5)

sync_id = bass.BASS_ChannelSetSync(current_chanell,BASS_SYNC_META,0,callback_func,0)
Dialog.Message("song", meta)
end
end
end
Автор: Zloy_Gelud
Дата сообщения: 21.10.2015 09:58
erickck

Цитата:
Можно ли через MemoryEx создавать callback-функции?

Можно. Но ее нужно писать на ASM'е. А в этом я не бум-бум.
Автор: erickck
Дата сообщения: 21.10.2015 12:34
Zloy_Gelud, Большое спасибо и на этом) Интересно что когда callback срабатывает немедленно, то отлично работает.


Код: local user = alien.load 'user32.dll'

function each_hwnd (hwnd,p)
print(hwnd)
return 1
end

each_hwnd_callback = alien.callback(each_hwnd,{"int","pointer",abi="stdcall"})
user.EnumWindows:types {"callback","pointer",abi="stdcall"}
user.EnumWindows(each_hwnd_callback,nil)
Автор: KerberX
Дата сообщения: 22.10.2015 19:21
Кто-нибудь пытался создавать расширения для Lua на C? Почему не компилируется такой код?

Код:
//#include <math.h>
//
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

static int Square(lua_State *L) {
    double a = lua_tonumber(L, 1);
    double b = a*a;
    //
    lua_pushnumber(L, b);
    return 1;
}

static const luaL_reg Lib[] = {
    {"Square", Square},
    {NULL, NULL}
};

int luaopen_Lib(lua_State *L)
{
    luaL_register(L, "Lib", Lib);
    return 1;
}
Автор: Zloy_Gelud
Дата сообщения: 26.10.2015 11:54
У кого-нить версия Personal Edition имеется?
Автор: Robby
Дата сообщения: 26.10.2015 15:05
Zloy_Gelud
Есть AutoPlay Media Studio 8.0.7.0 Personal Edition. Подойдет?
Автор: Zloy_Gelud
Дата сообщения: 26.10.2015 15:07
Robby
Ну конечно!
Автор: Robby
Дата сообщения: 26.10.2015 15:31
AutoPlay Media Studio 8.0.7.0 Personal Edition (50.0 МБ)
Автор: Floumen
Дата сообщения: 29.10.2015 02:57
Помогите пожалуйста.. Вроде писал этот вопрос или мне кажется или приснилось хз..

Вообем как сделать так чтобы при скачивания больших архивов более 2гб проценты отображались верно!

Ато архив весом в 8 ГБ.. Скачивает так:
1гб - 50%
2гб - 100%
3,4,5,6_7,8 ГБ - 100%

Это как то неправильно

Попробовал какой-то нестандартный плагин так так докачало до 300 процентов а потом пошло в обратную сторону до 100%

Подскажите нормальный скрипт с плагином пожалуйста
Автор: erickck
Дата сообщения: 29.10.2015 11:52
Можно качать через плагин:
Download
Автор: byura
Дата сообщения: 30.10.2015 12:32
есть ли у кого форма отправки почты из меню
нашел скрипт который запускает программы почты по умолчанию
это не подходит
Автор: Baltazar500
Дата сообщения: 30.10.2015 13:33
Доброго всем времени суток - интересует, можно ли в AMS использовать regexp'ы ? и если да то как ? что где экранировать чтобы они заработали ?

ну и второй вопрос - как обработать несколько значений в loop-цикле (в поле Input вводятся пути до файлов от и до и каждый путь перерабатывается в short-вид - просто пишу что задумал, готовое решение не обязательно, хватит простого примера loop'a)
Автор: KerberX
Дата сообщения: 30.10.2015 17:09

Цитата:
Доброго всем времени суток - интересует, можно ли в AMS использовать regexp'ы ? и если да то как ? что где экранировать чтобы они заработали ?

Полагаю ты ищешь это: http://www.lua.org/manual/5.1/manual.html#5.4.1


Цитата:
ну и второй вопрос - как обработать несколько значений в loop-цикле (в поле Input вводятся пути до файлов от и до и каждый путь перерабатывается в short-вид - просто пишу что задумал, готовое решение не обязательно, хватит простого примера loop'a)

Как понимать "пути до файлов от и до"? Да и "short-вид" это что версия 8.3 для имени файла?
Автор: Baltazar500
Дата сообщения: 30.10.2015 18:48

Цитата:
Полагаю ты ищешь это: http://www.lua.org/manual/5.1/manual.html#5.4.1
похоже оно, спасибо, значит через "x:" ...
Цитата:
Как понимать "пути до файлов от и до"?
т.е. диск\папка\файл
Цитата:
Да и "short-вид" это что версия 8.3 для имени файла?
он самый, хочу функцию string -> shornames прикрутить в loop обработку т.к. из input он обрабатывает только 1-ю строчку :\ вот за этим и нужен пример loop'a, допустим loop на баше это будет нечто такое
Цитата:
for test in ya.ru google.ru; do ping -c4 $test; done
(это просто пример, к текущей задаче отношения не имеет). Короче, как организовать обработку нескольких перечисленных значений одним и тем же скриптом ?
Автор: KerberX
Дата сообщения: 30.10.2015 18:58
Baltazar500
Что-то вроде этого. Предполагается что пути в Input'е будут разделены символом "|". То есть так:
C:\Windows\explorer.exe|C:\Windows\HelpPane.exe
[more]

Код: function String.ToTable(sDelimitedString, vDelimiter)
    if type(vDelimiter) == "number" then
        local tData = {};
        for i = 1, #tostring(sDelimitedString), vDelimiter do
            tData[#tData+1] = String.Mid(sDelimitedString, i, vDelimiter);
        end
        if #tData == 0 then
            return nil;
        else
            return tData;
        end
    elseif type(vDelimiter) == "string" then
        local tOut = {};
        local sWorking;
        local nPos = nil;
        local sData;
        local nTableIndex = 1;
        local nDelimiterLength = String.Length(vDelimiter);
        --
        if nDelimiterLength < 1 then
            tOut[nTableIndex] = sDelimitedString;
            return tOut;
        end
        --
        sWorking = sDelimitedString;
        nPos = String.Find(sWorking,vDelimiter);
        while nPos ~= -1 do
            sData = String.Left(sWorking, nPos-1);
            tOut[nTableIndex] = sData;
            nTableIndex = nTableIndex + 1;
            local nLength = String.Length(sWorking);
            sWorking = String.Right(sWorking,nLength - (nPos + (nDelimiterLength-1)));
            nPos = String.Find(sWorking, vDelimiter);
        end
        --
        if sWorking ~= "" then
            tOut[nTableIndex] = sWorking;
        end
        --
        if #tOut ~= 0 then
            if tOut[1] ~= "" then
                return tOut;
            end
        end
    end
end
--
local sText = Input.GetText("Input1");
if sText ~= "" then
    local tFiles = String.ToTable(sText, "|");
    if tFiles ~= nil then
        local tSFN = {};
        for x, y in pairs(tFiles) do
            tSFN[#tSFN+1] = File.GetShortName(y);
        end
        --
        Input.SetText("Input2", table.concat(tSFN, "|", 1, #tSFN));
    end
end
Автор: Baltazar500
Дата сообщения: 31.10.2015 18:27
KerberX,

Цитата:
Полагаю ты ищешь это: http://www.lua.org/manual/5.1/manual.html#5.4.1
походу это всё таки не то, или я не въехал как юзать значится так, имеем регулярное выражение "[A-Z]:\\\\.+?\.mkv" (включая кавычки) , которое в числе прочих найдёт строку "C:\\video\\01. bla-bla-bla.mkv" (включая кавычки), как мне его воткнуть в string.find или в string.replace в качестве искомого ? или никак ?
Цитата:
Что-то вроде этого. Предполагается что пути в Input'е будут разделены символом "|".
хм, погляжу спс

upd: таки loop у ams есть практически в исходном виде http://www.indigorose.com/webhelp/ams/Users_Guide/Lesson_10_.htm, есть лишь небольшая разница в синтаксисе
Автор: KerberX
Дата сообщения: 31.10.2015 18:36
Baltazar500
В Lua нет именно таких регулярок. Тут другое. Вот переведённое и несколько дополненное описание.
[more]
nBegin, nEnd, sFindMatch = string.find(sSource, sPattern);
--[[ Где:
sSource - исходная строка;
sPattern - шаблон для поиска;
nBegin - номер первого символа найденной подстроки;
nEnd - номер последнего символа найденной подстроки;
sFindMatch - найденная по шаблону подстрока;
---------------------------------
nBegin, nEnd, sFindMatch = string.find("ололошадь", "о(ло[%w]-дь)");
nBegin - 4
nEnd - 9
sFindMatch - лошадь
]]--
Символьный класс:
Символьный класс используется, чтобы представить набор символов. Следующие комбинации используются для описания символьного класса:

•x: (где x - соответствует сам себе. (Он не может быть равен ни одному из волшебных символов ^$()%.[]*+-?).
•.: (точка) соответствует любому символу.
•%a: соответствует любой букве.
•%c: соответствует любому управляющему символу.
•%d: соответствует любой цифре.
•%l: соответствует любой букве в нижнем регистре.
•%p: соответствует любому символу пунктуации.
•%s: соответствует любому пробельному символу.
•%u: соответствует любой букве в верхнем регистре.
•%w: соответствует любому алфавитно-цифровые символу.
•%x: соответствует любой шестнадцатеричной цифре.
•%z: соответствует символу с представлением 0.
•%x: (где x - любой не алфавитно-цифровой символ), соответствует сам себе. Это - стандартный способ экранировки волшебных символов. Лучше следить за тем, чтобы любому символу пунктуации (даже не "волшебному") предшествовал '%', когда этот символ применен в шаблоне.
•[set]: соответствует любому символу из набора, заданного в set. Диапазон символов может быть определен, с помощью символа '-' отделяющего начало и конец диапазона. Все символьные классы %x описанные выше, могут использоваться как компоненты в наборе. Все другие символы в наборе представляются как есть. Например, [%w_] (или [_%w]) соответствует любому алфавитно-цифровому символу или символу подчеркивания, [0-9] соответствует любой десятичной цифре, и [0-9%l%-] соответствует любой десятичной цифре или любой букве в нижнем регистре или символу дефиса '-'.
Взаимодействие между диапазонами и классами не определено. Поэтому, наборы подобные [%a-z] или [a-%%] не имеют никакого значения.

•[^set]: Отрицательный набор символов. Соответствует любому символу, кроме тех, что заданы в наборе set. Содержимое набора интерпретируется аналогично описанному выше [set].
Для всех классов, представляемых одиночными символами (%a, %c, и т.п.), соответствующая прописная буква представляет отрицание класса. Например, %S представляет все НЕ пробельные символы.

Представления символа, пробела и других символьных групп зависят от текущих региональных установок. В частности, класс [a-z] не эквивалентен %l.

Элемент шаблона:
Элементом шаблона может быть

•Одиночный символьный класс, который соответствует любому одиночному символу из заданного класса;
•Одиночный символьный класс, сопровождаемый '*', что соответствует 0 или большему количеству повторений символов из заданного класса. Эти элементы повторения будут всегда соответствовать самой длинной возможной последовательности.
•Одиночный символьный класс, сопровождаемый '+', что соответствует 1 или большему количеству повторений символов из заданного класса. Эти элементы повторения будут всегда соответствовать самой длинной возможной последовательности.
•Одиночный символьный класс, сопровождаемый '-', что также соответствует 0 или большему количеству повторений символов из заданного класса. В отличие от *, элементы повторения будут всегда соответствовать самой короткой возможной последовательности;
•Одиночный символьный класс, сопровождаемый '?', что соответствует 0 или единственному вхождению символа из заданного класса;
•%n, при n от 1 до 9; такой элемент равняется n-й зафиксированной подстроке (см. ниже);
•%bxy, здесь x и y - два различных символа. Такой элемент соответствует строкам, которые начинаются с x, заканчиваются на y, и в них сбалансированы x и y. Это означает, что, если читать строку слева направо, подсчитывая +1 для x и -1 для y, то последний y является первым y, для которого счетчик равен 0. Например, элемент %b() соответствует выражениям со сбалансированными круглыми скобками.
Шаблон:
Шаблон представляет собой последовательность описанных выше элементов. Символ '^' в начале шаблона, говорит о том, что заданная последовательность начинается с начала строки. Символ '$' в конце шаблона, говорит о том, что заданной последовательностью строка заканчивается. Символы '^' и '$', размещенные в других местах шаблона, не имеют никакого специального значения и представляются как есть.

Подшаблоны:
В шаблон можно включить подшаблоны, выделив их круглыми скобками. Если найденная строка соответствует шаблону, то ее подстроки, соответствующие подшаблонам, будут доступны для будущего использования. Подшаблоны пронумерованы согласно их левым круглым скобкам. Например, в шаблоне "(a*(.)%w(%s*))", часть строки, соответствующая "a*(.)%w(%s*)" будет зафиксирована как первый подшаблон (и поэтому имеет номер 1); любые символы попавшие под соответствие "." будут зафиксированы как подшаблон номер 2, и часть строки, соответствующая "%s*" получит номер 3.

Специальный вариант использования подшаблонов - получение текущей позиции в строке. Для этого используются пустые подшаблоны (). Например, если мы применим шаблон "()aa()" к строке "flaaap", то получим два результата: 3 и 5.

Шаблон не может содержать вложенные ноли. Используйте %z вместо этого.
[/more]

Ну и ещё есть такое. Вроде эта штука делает именно то, что тебе нужно. https://yadi.sk/d/Uxump6v7k9J67
Автор: collagen
Дата сообщения: 31.10.2015 18:58
Перевел "Lua 5.3 Справочное руководство".
Для тех кто возможно захочет что-то изменить, вложил в архив файлик Lua5.3.hhp - чтобы любой мог разобрать/собрать chm-файл с помощью программы HTML Help Workshop.
Автор: Baltazar500
Дата сообщения: 01.11.2015 01:41
KerberX, спс
Автор: suprememozg
Дата сообщения: 10.11.2015 22:25
Всем доброго времени суток.
Интересует вопрос, как скрыть пароль \ логин подключения к FTP.
Есть опция hidepassword. Но, к сожалению, ip адресс, логин, пароль отлавливается снифферами.
Например - Wpe pro.
Помогите пожалуйста.
Автор: KerberX
Дата сообщения: 10.11.2015 22:31
suprememozg
Где скрыть, в объекте Input в AMS, да и причём тут снифферы?
Автор: suprememozg
Дата сообщения: 11.11.2015 17:30
Ты не понял. Если использовать Func - FTP.Connect("ip", "login", "pasword", true);
То при подключении можно отловить с помощью проги WPE PRO или др программами для перехвата трафика.
А мне надо скрыть все данные. Хотя бы пароль. Использую param - Hidepassword = true;
Никакого результата.
Автор: KerberX
Дата сообщения: 11.11.2015 17:37
suprememozg
Значит плагин не шифрует его. И вряд ли можно это исправить. Можешь обратиться в техподдержку IndigoRose, плагин FTP их разработка.
Автор: LTJBukem
Дата сообщения: 13.11.2015 10:39
Подскажите, есть считываемые из txt-файла трёхзначные значения 001, 002, 003 и т.д. по возрастанию. Как в первых ста значений убрать нули вначале, чтобы мне было проще их сравнивать дальше с моим значением?
Автор: Zloy_Gelud
Дата сообщения: 13.11.2015 11:48
LTJBukem
См. String.TrimLeft
Автор: LTJBukem
Дата сообщения: 13.11.2015 15:58
Zloy_Gelud
А поподробнее можно?
Я все String перепробовал, но моих знаний не хватает.
Автор: KerberX
Дата сообщения: 13.11.2015 16:01
LTJBukem
Подробно:

Код: local sNumber = "0001";
-- Так
local s = String.TrimLeft(sNumber , "0");
-- Или так
local s = tonumber(sNumber);
-- Или даже так
local s = string.match(sNumber, "[0]+([%d]+)");
Автор: LTJBukem
Дата сообщения: 13.11.2015 16:25
KerberX
Благодарю за развёрнутый ответ. Я уже пробовал 1 вариант самостоятельно. Только выведя результат в input, оказалось, что у меня предыдущая обработка выводит числовой результат с пробелом в начале, поэтому первый способ и не работал.
А вот ваш 2 вариант вообще спокойно переживал и с пробелом в начале. Здорово.
Спасибо.
Автор: Pahuchiy1
Дата сообщения: 14.11.2015 13:02
Всем доброго времени суток.
столкнулся с такой проблемой:
необходимо что бы в "ListBox1" выводилась таблица, название которой указано в окошке "Input1"
Если вместо Input.GetText("Input1") подставить таблицу, то всё заработает...только вот указать я её хочу не в редакторе, а в запущеном приложении.

Нерабочий набросок:

for i=1, #Input.GetText("Input1")
do
ListBox.SetItemText("ListBox1", i, Input.GetText("Input1")[i]);
end

И ещё вопрос: как получить список всех переменных?
Спасибо
Автор: Baltazar500
Дата сообщения: 14.11.2015 15:12
Как сделать "мульти-кнопку" ? дабы при нажатии она сменялась на другую и наооборот ? такое возможно реализовать "простым" способом ? а то пока видится лишь одно индусское решение - создать 2-ю страницу и в конце кода кнопки на 1-й странице повесить свитч на 2-ю страницу с другой кнопкой (и наоборот) + кнопка будет обрабатывать поле input и надо будет гонять текст со страницы на страницу

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: память не может быть written


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.