Вверх ↑
Этот топик читают: Гость
Ответов: 68
Рейтинг: 1
#1: 2020-04-24 06:21:53 ЛС | профиль | цитата
Всем привет. Я наверное один такой, который задает нетривиальные вопросы. Вопрос в следующем.
Есть шифратор файлов, в моем случае это шифратор видео.


Add(MainForm,8308775,385,133)
{
Height=214
Caption="Encrypt - threads demo"
BorderStyle=1
Position=1
}
Add(Edit,4011429,476,133)
{
Left=60
Top=5
Width=320
Text="123456"
}
Add(Label,15199179,476,84)
{
Left=10
Top=10
Width=48
Height=17
Caption="Пароль:"
}
Add(LineBreakEx,3037814,476,175)
{
Caption="pass"
Type=3
link(_Data,4011429:Text,[])
}
Add(Label,5968536,742,84)
{
Left=10
Top=35
Width=87
Height=17
Caption="Исходный файл:"
}
Add(Label,3369797,938,84)
{
Left=10
Top=75
Width=121
Height=17
Caption="Зашифрованный файл:"
}
Add(Button,5726157,371,826)
{
Left=10
Top=120
Width=95
Height=25
Caption="Зашифровать"
link(onClick,1595303:doStart,[])
}
Add(Label,14925684,1085,1043)
{
Left=80
Top=155
Width=10
Height=17
Caption="0"
link(Text,3557433:Value,[])
}
Add(LineBreakEx,9758177,721,553)
{
Caption="fsrc"
Type=2
}
Add(LineBreakEx,5516860,728,574)
{
Caption="fencr"
Type=2
}
Add(LineBreakEx,10668305,714,532)
{
Caption="pass"
Type=2
}
Add(EnCrypt,13958992,658,763)
{
Mode=4
InitVector="AAA"
Point(onError)
Point(doAbort)
Point(onProgress)
link(onEncrypt,14941371:doWork2,[(724,769)(724,832)])
link(Key,10668305:getVar,[(671,655)(720,655)])
link(SrcFileName,9758177:getVar,[(678,665)(727,665)])
link(DstFileName,5516860:getVar,[(685,675)(734,675)])
link(onError,11356253:doEvent1,[(761,776)(761,741)])
link(onProgress,14941371:doWork3,[(725,783)(725,841)(760,841)])
}
Add(Message,8933103,840,749)
{
Caption="Ошбика"
Icon=1
}
Add(Button,7998221,567,854)
{
Left=235
Top=150
Width=105
Caption="Прервать"
link(onClick,4116247:doEvent1,[])
}
Add(HubEx,14941371,756,826)
{
link(onEvent,15768141:doSafeMode,[])
}
Add(Thread,1595303,441,826)
{
FastStop=0
link(onExec,9160381:doEvent1,[])
}
Add(Edit,824952,742,147)
{
Left=10
Top=50
Width=330
Text="bigfile.avi"
}
Add(Button,15277380,644,147)
{
Left=345
Top=50
Width=40
Caption="..."
link(onClick,1218516:doExecute,[])
}
Add(ODialog,1218516,700,147)
{
Filter="Все файлы (*.*)|*.*"
Title="Выбор файла"
FileName=""
Point(FileName)
link(onExecute,824952:doText,[])
link(FileName,12181497:Var3,[(706,132)(782,132)(782,194)])
}
Add(Edit,12991863,938,147)
{
Left=10
Top=95
Width=330
Text="bigfile.avi.encrypted"
}
Add(Button,4070287,840,147)
{
Left=345
Top=95
Width=40
Caption="..."
link(onClick,2080759:doExecute,[])
}
Add(ODialog,2080759,896,147)
{
Filter="Все файлы (*.*)|*.*"
Title="Выбор файла"
FileName=""
Point(FileName)
link(onExecute,12991863:doText,[])
link(FileName,10205981:Var3,[(902,128)(983,128)(983,187)])
}
Add(GetDataEx,10205981,938,182)
{
link(Data,12991863:Text,[])
}
Add(GetDataEx,12181497,742,189)
{
link(Data,824952:Text,[])
}
Add(LineBreakEx,9353820,742,210)
{
Caption="fsrc"
Type=3
link(_Data,12181497:Var2,[])
}
Add(LineBreakEx,1787963,938,203)
{
Caption="fencr"
Type=3
link(_Data,10205981:Var2,[])
}
Add(Label,6318026,385,217)
{
Left=10
Top=155
Width=68
Height=17
Caption="Обработано:"
}
Add(InfoTip,8165527,609,427)
{
Info=#207:Более правильно сначала через Synchronize (либо сразу по клику на кнопку) получить требуемые данные от визуальных компонентов в переменные, затем уже без Synchronize в параллельном потоке запустить обработку|
Width=253
Height=172
}
Add(LineBreakEx,6229770,588,714)
{
Caption="start"
}
Add(LineBreakEx,5156901,868,1001)
{
Caption="start"
Type=1
link(OnEvent,15007035:doTimer,[(920,1007)(920,1049)])
}
Add(InfoTip,7225840,483,301)
{
Info=#10:Паттерн №2|124:Уменьшен EnCrypt.BufferSize для ускорения выдачи событий и показано способ реализации оповещения пользователя в таком случае|
Font=[MS Sans Serif,8,1,0,1]
Width=442
Height=60
}
Add(Memory,3557433,1085,826)
{
}
Add(SafeMode,15768141,1015,826)
{
Name="CritSection1"
link(onSafeMode,3557433:doValue,[])
AddHint(-20,36,72,13,Name)
}
Add(SafeMode,15450595,1022,1043)
{
Name="CritSection1"
link(onSafeMode,14925684:doText,[])
AddHint(-23,36,72,13,Name)
}
Add(InfoTip,16259543,980,777)
{
Info=#74:Данные, к которым обращаются несколько потоков, должны защищаться SafeMode|0:|0:|0:|0:|0:|0:|43:Здесь не следует заграгивать главный поток!|
Width=190
Height=151
}
Add(LineBreakEx,5684143,553,980)
{
Caption="stop"
}
Add(LineBreakEx,2541384,868,1064)
{
Caption="stop"
Type=1
link(OnEvent,15007035:doStop,[(922,1070)(922,1056)])
}
Add(Timer,15007035,931,1043)
{
Interval=100
Enable=1
link(onTimer,15450595:doSafeMode,[])
AddHint(-4,41,33,13,Interval)
}
Add(Hub,9160381,497,826)
{
OutCount=3
link(onEvent1,7172380:doSynchronize,[(525,832)(525,720)])
link(onEvent2,13958992:doEncryptFile,[(609,839)(609,776)])
link(onEvent3,5684143:doWork,[(524,846)(524,986)])
}
Add(Synchronize,7172380,539,714)
{
link(onSync,6229770:doWork,[])
}
Add(InfoTip,15317784,462,679)
{
Info=#64:Здесь Synchronize требуется для включения таймера из пар. потока|
Width=190
Height=81
}
Add(LineBreakEx,12946360,840,721)
{
Caption="stop"
}
Add(Hub,11356253,784,735)
{
link(onEvent1,12946360:doWork,[(812,741)(812,727)])
link(onEvent2,8933103:doMessage,[(813,748)(813,755)])
}
Add(LineBreakEx,13326123,637,840)
{
Caption="stop"
}
Add(Hub,4116247,609,854)
{
link(onEvent1,13326123:doWork,[(630,860)(630,846)])
link(onEvent2,13958992:doAbort,[(641,867)(641,790)])
}
Add(InfoTip,10198054,847,1001)
{
Info=#28:Исполняется в главном потоке|
Width=281
Height=123
}
Add(InfoTip,2406579,539,903)
{
Info=#228:Поскольку таймер показывает пользователю прогресс с некоторым интервалом, то последнее значение (100%) пользователь может не увидеть - по завершению работы можно принудительно через Synchronize ещё раз вывести последнее значение|
Width=274
Height=102
}
Add(ZLIB,43492,924,889)
{
}
Add(StreamPack,15537523,875,889)
{
DataCount=#3:bmp|
link(onPack,43492:doCompress,[])
}


Он создает зашифрованный видео файл и сохраняет его рядом с оригиналом.

А так же есть Дешифратор, который восстанавливает видео из зашифрованного видео, в первоначальный видео файл. В общем после дешифровки происходит сохранение исходного видео файла.


Add(MainForm,8308775,385,133)
{
Width=425
Height=225
Caption="Encrypt - threads demo"
BorderStyle=1
Position=1
Point(Handle)
}
Add(Edit,4011429,476,133)
{
Left=60
Top=5
Width=320
Text="123456"
}
Add(Label,15199179,476,84)
{
Left=10
Top=10
Width=48
Height=17
Caption="Пароль:"
}
Add(LineBreakEx,3037814,476,189)
{
Caption="pass"
Type=3
link(_Data,4011429:Text,[])
}
Add(Label,5968536,742,84)
{
Left=10
Top=35
Width=87
Height=17
Caption="Исходный файл:"
}
Add(Label,3369797,938,84)
{
Left=10
Top=75
Width=127
Height=17
Caption="Расшифрованный файл:"
}
Add(Button,5726157,371,826)
{
Left=10
Top=120
Width=95
Height=25
Caption="Расшифровать"
link(onClick,1595303:doStart,[])
}
Add(Label,14925684,1085,1043)
{
Left=80
Top=155
Width=10
Height=17
Caption="0"
link(Text,3557433:Value,[])
}
Add(LineBreakEx,9758177,721,553)
{
Caption="fsrc"
Type=2
}
Add(LineBreakEx,5516860,728,574)
{
Caption="fencr"
Type=2
}
Add(LineBreakEx,10668305,714,532)
{
Caption="pass"
Type=2
}
Add(Button,7998221,546,854)
{
Left=235
Top=150
Width=105
Caption="Прервать"
link(onClick,4116247:doEvent1,[])
}
Add(HubEx,14941371,756,826)
{
link(onEvent,11258259:doEvent1,[])
}
Add(Thread,1595303,441,826)
{
Delay=100
FastStop=0
link(onExec,9160381:doEvent1,[])
}
Add(Edit,824952,742,147)
{
Left=10
Top=50
Width=330
Text=""
}
Add(Button,15277380,644,147)
{
Left=345
Top=50
Width=40
Caption="..."
link(onClick,1218516:doExecute,[])
}
Add(ODialog,1218516,700,147)
{
Filter="*.encrypted"
Title="Выбор файла"
FileName=""
Point(FileName)
link(onExecute,824952:doText,[])
link(FileName,12181497:Var3,[(706,132)(782,132)(782,194)])
}
Add(Edit,12991863,938,147)
{
Left=10
Top=95
Width=375
Text="youfile.wmv"
}
Add(Button,4070287,840,147)
{
Left=345
Top=95
Width=40
Visible=1
Caption="..."
link(onClick,2080759:doExecute,[])
}
Add(ODialog,2080759,896,147)
{
Filter="Все файлы (*.*)|*.*"
Title="Выбор файла"
FileName="youfile.wmv"
NoChangeDir=1
FileMustExists=0
Point(FileName)
link(onExecute,12991863:doText,[])
link(FileName,10205981:Var3,[(902,128)(983,128)(983,187)])
}
Add(GetDataEx,10205981,938,182)
{
link(Data,12991863:Text,[])
}
Add(GetDataEx,12181497,742,189)
{
link(Data,824952:Text,[])
}
Add(LineBreakEx,9353820,742,210)
{
Caption="fsrc"
Type=3
link(_Data,12181497:Var2,[])
}
Add(LineBreakEx,1787963,938,224)
{
Caption="fencr"
Type=3
link(_Data,10205981:Var2,[])
}
Add(Label,6318026,385,217)
{
Left=10
Top=155
Width=68
Height=17
Caption="Обработано:"
}
Add(InfoTip,8165527,609,427)
{
Info=#207:Более правильно сначала через Synchronize (либо сразу по клику на кнопку) получить требуемые данные от визуальных компонентов в переменные, затем уже без Synchronize в параллельном потоке запустить обработку|
Width=253
Height=172
}
Add(LineBreakEx,6229770,588,714)
{
Caption="start"
}
Add(LineBreakEx,5156901,868,1015)
{
Caption="start"
Type=1
link(OnEvent,15007035:doTimer,[(920,1021)(920,1049)])
}
Add(InfoTip,7225840,483,301)
{
Info=#10:Паттерн №2|124:Уменьшен EnCrypt.BufferSize для ускорения выдачи событий и показано способ реализации оповещения пользователя в таком случае|
Font=[MS Sans Serif,8,1,0,1]
Width=442
Height=60
}
Add(Memory,3557433,1085,826)
{
}
Add(SafeMode,15768141,938,826)
{
Name="CritSection1"
link(onSafeMode,3557433:doValue,[])
AddHint(-20,36,72,13,Name)
}
Add(SafeMode,15450595,1015,1043)
{
Name="CritSection1"
link(onSafeMode,14925684:doText,[])
AddHint(-23,36,72,13,Name)
}
Add(InfoTip,16259543,980,777)
{
Info=#74:Данные, к которым обращаются несколько потоков, должны защищаться SafeMode|0:|0:|0:|0:|0:|0:|43:Здесь не следует заграгивать главный поток!|
Width=190
Height=151
}
Add(LineBreakEx,5684143,553,973)
{
Caption="stop"
}
Add(LineBreakEx,2541384,868,1064)
{
Caption="stop"
Type=1
link(OnEvent,15007035:doStop,[(920,1070)(920,1056)])
}
Add(Timer,15007035,931,1043)
{
Interval=500
Enable=1
link(onTimer,15450595:doSafeMode,[])
AddHint(-4,41,33,13,Interval)
}
Add(Hub,9160381,497,826)
{
OutCount=3
link(onEvent1,7172380:doSynchronize,[(518,832)(518,720)])
link(onEvent2,7816974:doDecryptFile,[(605,839)(605,846)])
link(onEvent3,5684143:doWork,[(524,846)(524,979)])
}
Add(Synchronize,7172380,532,714)
{
link(onSync,6229770:doWork,[])
}
Add(InfoTip,15317784,462,679)
{
Info=#64:Здесь Synchronize требуется для включения таймера из пар. потока|
Width=190
Height=81
}
Add(LineBreakEx,12946360,826,861)
{
Caption="stop"
}
Add(Hub,11356253,784,868)
{
OutCount=3
link(onEvent1,12946360:doWork,[(812,874)(812,867)])
link(onEvent2,3959344:doWork,[(816,881)(816,895)])
link(onEvent3,11258259:doEvent2,[(830,888)(830,839)])
}
Add(LineBreakEx,13326123,637,819)
{
Caption="stop"
}
Add(Hub,4116247,609,854)
{
link(onEvent1,13326123:doWork,[(630,860)(630,825)])
link(onEvent2,7816974:doAbort,[(661,867)(661,860)])
}
Add(InfoTip,10198054,847,1001)
{
Info=#28:Исполняется в главном потоке|
Width=281
Height=123
}
Add(InfoTip,2406579,539,903)
{
Info=#228:Поскольку таймер показывает пользователю прогресс с некоторым интервалом, то последнее значение (100%) пользователь может не увидеть - по завершению работы можно принудительно через Synchronize ещё раз вывести последнее значение|
Width=274
Height=102
}
Add(DeCrypt,7816974,700,833)
{
Mode=4
InitVector="AAA"
Point(doAbort)
Point(onProgress)
Point(onError)
Point(DstStream)
link(onDecrypt,14941371:doWork2,[(748,839)(748,832)])
link(Key,10668305:getVar,[(713,686)(720,686)])
link(SrcFileName,9758177:getVar,[(720,696)(727,696)])
link(DstFileName,5516860:getVar,[(727,707)(734,707)])
link(onProgress,11356253:doEvent1,[(765,846)(765,874)])
link(onError,14941371:doWork3,[(828,853)(828,841)(760,841)])
}
Add(Hub,11258259,861,826)
{
InCount=2
OutCount=1
link(onEvent1,15768141:doSafeMode,[])
}
Add(LineBreakEx,3959344,826,889)
{
Caption="start"
}


Вот собственно вопрос. КАК!!! просмотреть зашифрованное видео не расшифровывая и не сохраняя его изначально в файл, а напрямую из под дешифратора? Чтоб восстановленный файл нигде не создавался.

--- Добавлено в 2020-04-24 06:39:37

Какой то глюк произошел. Создался дубль темы.

Редактировалось 1 раз(а), последний 2020-04-24 06:39:37
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2020-04-24 10:44:10 ЛС | профиль | цитата
КАК!!! просмотреть зашифрованное видео не расшифровывая и не сохраняя его изначально в файл, а напрямую из под дешифратора? Чтоб восстановленный файл нигде не создавался.


Чего-то очень странный вопрос.
Дешифрируешь зашифрованный файл в стрим в памяти из него создаёшь видеопоток и передаёшь указатель на него проигрывателю. Иногда достаточно передать указатель на первую позицию в стриме.
Если вопрос состоит в том, как из памяти воспроизвести поток, то все движки имеют такую функцию в своём API.
Иногда, крайне редко, она не описана в API проигрывателя, но она есть по определению и её всегда можно вытащить. Суслика видишь? Вот и я не вижу. А он есть.
Просто надо изучить API.
Для звуковых потоков в BASS я сколько угодно так делал не зависимо от mp3, ogg и wav.
Звуковой это поток, или видеопоток - это без разницы. Поток он и в Африке поток!

Редактировалось 4 раз(а), последний 2020-04-24 11:10:17
карма: 6

0
Ответов: 68
Рейтинг: 1
#3: 2020-04-24 11:16:02 ЛС | профиль | цитата
Ну для вас может и очень просто и даже странный вопрос, а я как человек далекий от программирования но очень хотящий разобраться, мне тяжело. Если поделитесь примерчиком был бы при много благодарен.
карма: 1

0
Ответов: 2059
Рейтинг: 131
#4: 2020-04-24 11:35:31 ЛС | профиль | цитата
В качестве примера компонент BASS_StreamCreateMem в архиве https://yadi.sk/d/WR4dkdnb7bQelw проигрывает файл из стрима в памяти.
Вот тоже самое, но вид с боку:
В этом же архиве BASS_SmpFile создаёт потоки в памяти из файлов и выдаёт указатели на них.
BASS_SmpPlayer воспроизводит потоки по этим указателям.

С каждым конкретным движком надо заниматься отдельно!
Компонент надо делать отдельный под соответствующий движок.

Редактировалось 2 раз(а), последний 2020-04-24 11:42:09
карма: 6

0
Ответов: 68
Рейтинг: 1
#5: 2020-04-24 12:52:20 ЛС | профиль | цитата
Спасибо большое , но мне это никак не помогло. Потому что я не знаю как с этим работать. Ладно буду мучиться. Все равно спасибо огромное.
карма: 1

0
Ответов: 2059
Рейтинг: 131
#6: 2020-04-24 13:43:40 ЛС | профиль | цитата
Ладно буду мучиться.

Мучатся и пытаться подобрать компоненты не надо!
Всё равно их нет в HiAsm!!!
Надо учится читать программы чтобы понять API выбранного движка, а лучше научиться программировать.
Тогда и нужные тебе компоненты сделать можно самому.
Если кубики делать под Delphi и FPC - изучай паскаль, но это бесперспективно.
Сейчас все разговаривают на C++ и C# и все API заточены под них.
Зная какой нибудь язык не составит труда изучить другой. Вопрос нескольких дней и дело привычки.

Ну для вас может и очень просто и даже странный вопрос, а я как человек далекий от программирования но очень хотящий разобраться

Извини. Я обознался с AlexKir.

Вот примеры проигрывания потока какие можно придумать. https://forum.hiasm.com/getfile/38225
В примере проигрывания файла из интернета надо заменить ссылку, а то она битая.
Например такой: https://ru.sefon.cc/api/mp3_download/direct/105979/3vUCACrJL-rGFUehsT5RMg7z380l6mECi2wCUr-hHcCQ9CPbcf2CSw7fS9YMzuffJ3dCzZ6cm0RoWl6qHYnUjZf5YKSDjSWvSuEKMc2ah9PIYjTsTZz_n5zjZakBxubM6sq9ot3XyavMtP4buekkOx_MlzR1MvK4MKzOJ0w/

----

Редактировалось 5 раз(а), последний 2020-04-24 15:51:59
карма: 6

0
Ответов: 68
Рейтинг: 1
#7: 2020-04-24 14:24:19 ЛС | профиль | цитата
Я надеялся на пример или схему, и готов заплатить если надо, но... все равно спасибо
карма: 1

0
Ответов: 2059
Рейтинг: 131
#8: 2020-04-24 14:42:21 ЛС | профиль | цитата
Я надеялся на пример или схему

Если имеется в виду видео, то таких компонентов нет!!!
Надо доделывать имеющиеся, или делать новый.
У меня сейчас нет возможности в этом разбираться.
Сейчас делаю современный 3D движок с физикой, AI, ... Порядка 147 компонентов.
Там у меня есть компонент воспроизведения видео в текстуру из памяти, но таскать весь движок за собой ради этой функции не логично.

Может кто ещё возьмётся?

Я за то, чтобы всё программное обеспечение было бесплатным, а за деньги и строчки не напишу.

Редактировалось 1 раз(а), последний 2020-04-24 14:47:36
карма: 6

0
Ответов: 5227
Рейтинг: 585
#9: 2020-04-24 15:00:59 ЛС | профиль | цитата
flint2 писал(а):
Я за то, чтобы всё программное обеспечение было бесплатным

И все программисты безработные, ну flint2 ты шутник блин

В теории можно спроецировать файл в память (в файл подкачки к примеру) и настроить поток через моникер, но это только в теории. А на практике как обычно туева хуча гемора...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 68
Рейтинг: 1
#10: 2020-04-24 15:08:13 ЛС | профиль | цитата
andrestudio писал(а):
flint2 писал(а):
Я за то, чтобы всё программное обеспечение было бесплатным

И все программисты безработные, ну flint2 ты шутник блин

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



Было бы супер получить что то на практике.(((((
карма: 1

0
Ответов: 2059
Рейтинг: 131
#11: 2020-04-24 15:13:15 ЛС | профиль | цитата
В теории можно спроецировать файл в память
andrestudio, Хоть из ресурсов.
В примере для BASS так и сделано. https://forum.hiasm.com/getfile/38225
Для видео никакой разницы нет.
Или так:
Add(MainForm,3918878,147,147)
{
Width=408
Height=324
Point(onClose)
link(onCreate,4252681:doInit,[])
}
Add(BASS_Init,4252681,210,161)
{
}
Add(Button,1048926,84,434)
{
Left=15
Top=60
Width=75
Caption="Пауза"
link(onClick,14617115:doPause,[])
}
Add(BASS_ChannelPause,14617115,161,434)
{
Channel="kkk"
}
Add(Button,343191,84,476)
{
Left=15
Top=85
Width=75
Caption="Прдолжить"
link(onClick,8382606:doWork2,[])
}
Add(BASS_ChannelPlay,3455431,161,476)
{
Channel="kkk"
}
Add(Button,15915808,84,518)
{
Left=15
Top=110
Width=75
Caption="Стоп"
link(onClick,8832714:doEvent1,[])
}
Add(BASS_ChannelStop,13591916,161,518)
{
Channel="kkk"
}
Add(HTTP_Get,14478398,266,63)
{
URL="https://ru.sefon.cc/api/mp3_download/direct/105979/3vUCACrJL-rGFUehsT5RMg7z380l6mECi2wCUr-hHcCQ9CPbcf2CSw7fS9YMzuffJ3dCzZ6cm0RoWl6qHYnUjZf5YKSDjSWvSuEKMc2ah9PIYjTsTZz_n5zjZakBxubM6sq9ot3XyavMtP4buekkOx_MlzR1MvK4MKzOJ0w/"
link(onDownload,3071770:doCopy,[])
}
Add(Button,12312283,161,63)
{
Left=15
Top=35
Width=75
Caption="Загрузить"
link(onClick,14478398:doDownload,[])
}
Add(MemoryStream,3071770,392,70)
{
Point(Memory)
link(onCopy,16506873:doEvent1,[(440,76)(440,83)])
}
Add(BASS_StreamCreateMem,8717850,378,245)
{
Name="kkk"
link(onCreate,8382606:doWork1,[(422,251)(422,365)(137,365)])
link(Memory,3071770:Memory,[(384,173)(412,173)])
link(FLength,3071770:Size,[(391,173)(405,173)])
}
Add(HubEx,8382606,133,476)
{
link(onEvent,3455431:doPlay,[])
}
Add(LED,4323261,539,77)
{
Left=205
Top=75
}
Add(Hub,16506873,455,77)
{
link(onEvent1,4323261:doOn,[(504,83)(504,97)])
link(onEvent2,8717850:doCreate,[(481,90)(481,170)(366,170)(366,251)])
}
Add(Hub,8832714,133,518)
{
OutCount=3
link(onEvent1,13591916:doStop,[])
link(onEvent2,8717850:doDestroy,[(263,531)(263,258)])
link(onEvent3,4323261:doOff,[(343,538)(343,90)])
}


Редактировалось 4 раз(а), последний 2020-04-24 15:33:30
карма: 6

0
Ответов: 68
Рейтинг: 1
#12: 2020-04-24 15:29:13 ЛС | профиль | цитата
У меня этот BASS ошибки выдает

http://prntscr.com/s57wau

Редактировалось 1 раз(а), последний 2020-04-24 15:29:34
карма: 1

0
Ответов: 2059
Рейтинг: 131
#13: 2020-04-24 15:37:10 ЛС | профиль | цитата
А что это http://prntscr.com/s57wau такое? (понятно что отчёт)?
Схема то где?
Вот схема выше с живой ссылкой на файл - она работает?

Редактировалось 1 раз(а), последний 2020-04-24 15:41:11
карма: 6

0
Ответов: 68
Рейтинг: 1
#14: 2020-04-24 15:38:47 ЛС | профиль | цитата
Из этого архива - https://forum.hiasm.com/getfile/38225
карма: 1

0
Ответов: 5227
Рейтинг: 585
#15: 2020-04-24 15:39:55 ЛС | профиль | цитата
kir1381, https://basicsprog.ucoz.ru/publ/6-1-0-39 вот и теория с практикой...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)