Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Плагины и доп. ПО _ Плагин для работы с файлами

Автор: Cockney 11.4.2016, 14:24

Плагин дает возможность работать с файлами побайтово.


Актуальная версия : Прикрепленный файл  FilesAPI0000.zip ( 30,63 килобайт ) Кол-во скачиваний: 1702

Минимальная версия пилота : 2.36

Описание функций :

CreateFile

Код
set $a FilesAPI.CreateFile (<имя файла>) - Создает файл и автоматически дает доступ к чтению/записи.


Возвращаемое значения :

-1 - ошибка создания файла
<рандомное число> - хендл файла

OpenFile

Код
set $a FilesAPI.OpenFile (<имя файла> <режим открытия>) - Открывает существующий файл в заданном 
режиме.


Допустимые значения <режим открытия> :

Read
Write
ReadWrite

Возвращаемые значения :

-1 - ошибка открытия файла
-2 - <режим открытия> либо задан некорректно либо вообще не задан
<рандомное число> - хендл файла

CloseFile

Код
set $a FilesAPI.CloseFile (<хендл файла>) - Закрывает файл.


Возвращаемые значения :

-1 - ошибка закрытия ли неправильный хендл
1 - успешно

SetFilePos

Код
set $a FilesAPI.SetFilePos (<хендл файла> <смещение> <позиция>) - Устанавливает указатель в файле на нужное <смещение> относительно <позиция>


Допустимые значения <смещение> :


Любое неотрицательное число (желательно не превышать общий размер файла).


Допустимые значения <позиция> :



FILE_CURRENT - текущая позиция
FILE_BEGIN - начало файла
FILE_END - конец файла

Возвращаемые значения :

-1 - ошибка установки смещения
-2 - некорректное <смещение>
-3 - неккоректное <позиция>
<число> - новая позиция в файле

SetWriteMode

Код
set $a FilesAPI.SetWriteMode (<хендл файла> <режим>) - устанавливает порядок записи байт.


Допустимые значения <режим> :

LE - litle-endian порядок
BE - big-endian порядок

Возвращаемые значения :
-1 - ошибка, возможно некорректный хендл файла
-2 - <режим> либо не задан либо некорректен
1 - успешно

Примечания :

SetWriteMode влияет только на работу функций WriteWORD, WriteDWORD. Остальные функции записи

игнорируют этот параметр.

SetReadMode

Код
set $a FilesAPI.SetReadMode (<хендл файла> <режим>) - устанавливает порядок чтения байт.


Допустимые значения <режим> :

LE - litle-endian порядок
BE - big-endian порядок

Возвращаемые значения :
-1 - ошибка, возможно некорректный хендл файла
-2 - <режим> либо не задан либо некорректен
1 - успешно

Примечания :

SetReadMode влияет только на работу функций ReadWORD, ReadDWORD. Остальные функции чтения

игнорируют этот параметр.

WriteBYTE

Код
set $a FilesAPI.WriteBYTE (<хендл файла> <байт>) - пишет байт в файл в текущую позицию.


Допустимые значения <байт> :

Все числа в диапозоне 0..255.

Возвращаемые значения :

-1 - ошибка записи или некорректный хендл
-2 - некорректный параметр <байт>
1 - успешно

WriteWORD

Код
set $a FilesAPI.WriteWORD (<хендл файла> <слово>) - запись в файл слова в текущую позицию.


Допустимые значения <слово> :

Число, не превышающее 65535.

Возвращаемые значения :

-1 - ошибка записи или неверный хендл.
-2 - некорректный параметр <слово>.
1 - успешно

WriteDWORD

Код
set $a FilesAPI.WriteDWORD (<хендл файла> <дворд>) - запись двойного слова в файл в текущую 
позицию.


Допустимые значения <дворд> :

Число, не превышающее 4294967295.

Возвращаемые значения :

-1 - ошибка записи или неверный хендл.
-2 - некорректный параметр <дворд>.
1 - успешно

WriteArrayOfByte(для версий <= 2.35)

Код
set $a FilesAPI.WriteArrayOfByte (<хендл файла> <байты>) - запись массива байт в файл в 
текущую позицию.


Допустимые значения <байты> :

Массив размерностью [1 N] элементов, содержащих числа в диапозоне 0..255.

Возвращаемые значения :

-1 - ошибка записи или неверный хендл
-2 - некорректный параметр <байты>
<число> - успешно. сколько фактически записано байт.

Примечания :

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

set delimiter ' '

WriteArrayOfByte(для версий >= 2.36)

Неготово.

ReadBYTE

Код
set $a FilesAPI.ReadBYTE (<хендл файла>) - чтение байта из файла с текущей позиции.


Возвращаемые значения :

-1 - ошибка чтения или неверный хендл.
<число> - успешно. прочитанный байт.

ReadWORD

Код
set %a FilesAPI.ReadWORD (<хендл файла>) - чтение слова из файла с текущей позиции.


Возвращаемые значения :

-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старший байт слова
[1 2] - младший байт слова

Примечания :

Порядок возвращаемых байт зависит от SetReadMode.

ReadDWORD

Код
set %a FilesAPI.ReadDWORD (<хендл файла>) - чтение двойного слова из файла с текущей позиции.


Возвращаемые значения :

-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старшее слово дворда
[1 2] - младшее слово дворда

Примечания :

Порядок возвращаемых слов зависит от SetReadMode.

ReadArrayOfByte (для версий <= 2.35)

Код
set $a FilesAPI.ReadArrayOfByte (<хендл файла> <кол-во байт>) - чтение массива байт из 
файла с текущей позиции.


Допустимые значения <кол-во байт> :

Неотрицательное число до 1048575.

Возвращаемые значения :

-1 - ошибка чтения или неверный хендл
-2 - некорректный параметр <кол-во байт>
Массив размером [1 <кол-во байт>]

ReadArrayOfByte (для версий >= 2.36)

Неготово.

LogicOR

Код
set $a FilesAPI.LogicOR (<операнд 1> <операнд 2>) - логическое ИЛИ.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка.
-2 - некорректный(е) параметры.
<число> - успешно. Результат.

LogicXOR

Код
set $a FilesAPI.LogicXOR (<операнд 1> <операнд 2>) - логичесоке исключающее ИЛИ.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LogicSHL

Код
set $a FilesAPI.LogicSHL (<операнд 1> <операнд 2>) - поразрядный сдвиг влево.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LogicSHR

Код
set $a FilesAPI.LogicSHR (<операнд 1> <операнд 2>) - поразрядный сдвиг вправо.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LogicAND

Код
set $a FilesAPI.LogicAND (<операнд 1> <операнд 2>) - логичесоке И.


Допустимые значения <операнд 1> и <операнд 2> :

Числа до 4294967295

Возвращаемые значения :

-1 - ошибка
-2 - некорректный(е) параметры
<число> - успешно. Результат.

LowBYTE

Код
set $a FilesAPI.LowBYTE (<слово>) - получение младшего байта из слова.


Допустимые значения <слово>:

Числа до 65535.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <слово>
<число> - успешно. Результат.

HighBYTE

Код
set $a FilesAPI.HighBYTE (<слово>) - получение старшего байта из слова.


Допустимые значения <слово>:

Числа до 65535.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <слово>
<число> - успешно. Результат.

LowWORD

Код
set $a FilesAPI.LowWORD (<дворд>) - получение младшего слова из дворд.


Допустимые значения <дворд>:

Числа до 4294967295.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <дворд>
<число> - успешно. Результат.

HighWORD

Код
set $a FilesAPI.HighWORD (<дворд>) - получение страшего слова из дворд.


Допустимые значения <дворд>:

Числа до 4294967295.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр <дворд>
<число> - успешно. Результат.

BuildWORD

Код
set $a FilesAPI.BuildWORD (<байт> <байт>) - сборка двух байт в одно слово.


Допустимые значения <байт>'ов:

Числа 0..255.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр(ы) <байт>
<число> - успешно. Результат.

BuildDWORD

Код
set $a FilesAPI.BuildDWORD (<слово> <слово>) - сборка двух слов в один дворд.


Допустимые значения <слово>'ов:

Числа до 4294967295.

Возвращаемые значения :

-1 - ошибка
-2 - некорректный параметр(ы) <слово>
<число> - успешно. Результат.


Основные моменты :

1)Все параметры регистрозависимые.
2)Все параметры заключаются с обоих сторон символом '*'.
3)В параметрах допускаются пробелы, но они обрезаются(если с расположены с краев).
4)Все функции чтения/записи меняют значение позиции указателя в файле(указатель на текущий байт).
Имейте это ввиду и контролируйте функций SetFilePos.

5)После окончания работы с файлом необходимо его закрыть.
6)В один файл можно писать/читать из нескольких вкладок(особо не тестил, но вроде работает).
7)Маск. размер файла - 2Гб.

Автор: DarkMaster 11.4.2016, 14:59

А псевдо хекс прикрутишь?) Чтобы записывать типа: 0F15A6B45CC8A21E.

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

Автор: Cockney 11.4.2016, 15:09

Ах да, вместо десятичных чисел можно передавать в шестнадцатеричном виде. т.е. пропускаем через dec2hex и отдаем в плагин. и наоборот,когда получаем из плагина юзаем dec2hex. это имелось ввиду?

числа в 16х должны быть в формате пилота, с 0x.

Автор: DarkMaster 11.4.2016, 15:13

Цитата
это имелось ввиду?

Имелось ввиду длинную строку. У меня просто первая мысль которую давно хотел сделать: сейвить бмп внутри скрипта. Если под каждые 4 байта делать вызов, то это будет очень длинно.

Автор: Cockney 11.4.2016, 15:13

WriteArrayOfByte/Read....

Автор: DarkMaster 11.4.2016, 15:18

я походу слепой... два раза смотрел - находил только read...

Автор: cirus 12.4.2016, 11:22

Цитата
Плагин дает возможность работать с файлами побайтово.

Для чего это надо?

Автор: Cockney 12.4.2016, 12:35

Была надобность часто работать именно так с файлами. Лень было таскать с собой иде от нормального языка, сделал плагин. Поделился.

Автор: DarkMaster 12.4.2016, 13:20

Цитата
Для чего это надо?

Это надо. Сам хотел) Бывает необходимость поправить пару байт либо считать какой-нибудь формат далекий от синтаксиса загрузки массива.
Кстати из банального - это позволит сделать дописывание текста в файл.

А в чем проблема с плагином для версии 36+? Она вроде вниз полностью совместима при условии использования переноса строк "\r\n".

Автор: Cockney 12.4.2016, 13:39

в 36 будет другой механизм передачи и получения массивов с данными. Что-бы обойти все ограничения, в частности на 32кб возвращаемые.

Автор: DarkMaster 12.4.2016, 13:57

Это я догадываюсь. Я не понимаю почему длл в неизменном виде с 2.17 протоколом для 2.35 версии нельзя использовать на 2.36.

Автор: Cockney 12.4.2016, 14:01

Можно, только зачем? Это не сложно сделать. Но если есть вариант для 36, зачем использовать урезанный?

Автор: DarkMaster 12.4.2016, 14:50

Цитата
Это не сложно сделать.

Меня именно этот момент и интересует. Почему нужно что-то делать, чтобы оно заработало. Изначально планировалась максимальная совместимость вниз, чтобы подобных проблем не возникало. Где лажанули интересно...

Автор: Cockney 12.4.2016, 16:14

Так, по порядку.

1)Что бы обеспечить уж полную совместимость - ничего делать и не нужно. Все будет как сейчас.
2)Что мне хотелось бы поправить для 36 : передача данных по ссылке, а не строкой в плагин, что с уменьшит время работы функции при файлах > 10мб.

Выглядеть это будет так :

WriteReadArrayOfByte(<хендл файла> <адрес массива>)

Второй вариант, универсальный для обоих версий :

WriteReadArrayOfByte(<хендл файла> <адрес массива> <флажок, какой метод нужен>).

Ну а на возврат....

Автор: WKnight 12.4.2016, 16:17

А я тут случайно добавил команду вывода текста в файл 'write (<filename> <any text>)'. Файл всегда дописывается если существует. Подстроки '\n' и '\r' заменяются на символы с кодами 13 и 10 соответственно.

Автор: DarkMaster 12.4.2016, 16:27

оно уже есть?
write 1.txt 13\r\n
результата не дало...

Цитата
Ну а на возврат....

А в чем проблема возврата? Так же по ссылке указатели поправить и норм.

Автор: WKnight 12.4.2016, 16:35

Оно вчера вечером появилось, а сегодня на форум захожу, а оно вон оно как...

Автор: DarkMaster 12.4.2016, 18:02

Цитата
Оно вчера вечером появилось, а сегодня на форум захожу, а оно вон оно как...

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

Автор: Cockney 12.4.2016, 19:09

Микроскопом гвозди забивать ?!
-----------
Проблем с возвратом нет, надо копать.....как придумаю красивый вариант...но пока будет так : 32кб для 35 и неограниченно для 36.

Автор: DarkMaster 12.4.2016, 19:33

Цитата
Микроскопом гвозди забивать ?!

Если касательно дописывания текста в файл, то да) Посимвольно разделять строку по массиву, а потом передавать в плагин предварительно открыв файл, установив режим записи и выставив позицию записи, если рядом будет функция просто дописывающая текст, то да - микроскоп. Но это не значит, что микроскоп плох. Вся его радость в том, что ограничений нет. Ну разве что скорость парсинга строк пилота будет неизбежно тормозить процесс при объемной работе, но при этом работа будет сделана, причем любая.
Кстати не очень понятный момент, а как в версиях 2.35 и ниже передавать массив, если передача массива появилась только в 2.36? Или имеется ввиду, что мы записываем:
%arr[1 1] y
%arr[1 2] w
%arr[1 3] f
а передаем:
%arr[1]
?
Тогда это все-таки передача не массива, а элемента массива...

Автор: Cockney 12.4.2016, 21:23

Да, получается тогда элемент, я путаюсь в понятиях.

Автор: Cockney 17.4.2016, 9:45

Кто сталкивался с таким?


Есть элемент размера дворд (сразу скажу, что это часть заголовка бмп, ширина или высота картинки). Считал, получил младший байт с размером(т.к. ширина меньше 255, то он и будет в младшем байте лежать). Но стоит увеличить ширину, к примеру, до 500, и код, обрабатывающий младший байт идет мимо. Нужно работать со старшим словом. Естественно, размер картинки заранее не известен, и код соответственно разный. Есть какие идеи, че можно с этим придумать? И подчеркну, о бмп неизвестно абсолютно ничего.

Автор: DarkMaster 17.4.2016, 11:22

Цитата
И подчеркну, о бмп неизвестно абсолютно ничего.

Я очень сильно не уверен, что имеет смысл обрабатывать бмп в общем виде. Вариантов кодировок бмп ОЧЕНЬ много. Для начала я бы ограничился актуальными для пилота.

По проблеме - можно проверять старший и в зависимости от его содержимого считывать младший и строить логику. Вообще не плохо бы почитать по сам формат. Там все не так просто, я уже когда-то садился из любопытства почитать и понял, что это бред, который если не нужен для работы, то читать из интереса не будешь.

Автор: Cockney 17.4.2016, 12:28

Кодировки тут не при чем. Я хочу получить дворд, но значение в этом дворде может быть равно и 1 байту, а может и двум. Это не известно. Но нужно получить корректное значение. Тут любое почти поле может быть таким.

А на предмет чего проверять старший а потом младший? они могут быть не пустые и разного размера.

К примеру :

Ширина бмп : 25

Дворд : 94386478256
Старший ворд : 56352
Младший : 47

Ширина бмп : 400

Дворд : 85676530932
Старший ворд : 48274
Младший : 5438

Числа взял от балды, но когда на деле копал примерно тоже самое было.


Документация тут поможет только для получения смещений полей. Все.

Автор: DarkMaster 17.4.2016, 15:33

Цитата

Документация тут поможет только для получения смещений полей. Все.

Кхе. Доки я уже когда-то смотрел, как уже писал. Может я не совсем корректно выразился "кодировки", если угодно "форматы". Бмп он не один. Его много. В этих "много" как раз куча разных вариантов заполнения шапки. Что точно помню, так это то, что там в начале идет номер байта с которого начинается не посредственно битовая маска(это статично во всех форматах), а после уже остальной заголовок который сильно разнится по размеру, полям и содержанию в зависимости от "формата". В общем виде может оказаться проще посмотреть начала битовой маски и размер файла, чем заниматься поддержкой всех полей.

Автор: Cockney 17.4.2016, 16:38

Ну, тут срежем, там обойдем, и получится не полноценная, асфальтированная дорога, а протоптанная дорожка.


Ты не понимаешь про что я. Мне все равно какие поля и за что они отвечают и как расположены, мне важно получить правильные данные, которые находятся в этих полях.

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

Вернее как он расположен мы знаем, но не знаем, байт ли нам нужен или нет.

Автор: DarkMaster 17.4.2016, 17:22

Цитата
Ну, тут срежем, там обойдем, и получится не полноценная, асфальтированная дорога, а протоптанная дорожка.

Ты собираешься работать со всеми бмп? Ищи либу. Я реально не вижу обрабатывать, например, сжатие в бмп - им никто не пользуется.

Цитата
Вернее как он расположен мы знаем, но не знаем, байт ли нам нужен или нет.

Смотри доки, смотри какие структуры могут содержаться и в каких форматах. Это надо тупо сидеть и дословно перерисовывать 10 вариантов стандарта в код.

Автор: Cockney 17.4.2016, 18:16

Нет, я имею ввиду, сооовсем другое.

Смотри :

Код

//делаем дворд
//сначала or потом shl
set $a  FilesAPI.LogicOR (*250* *16*) //250 - старшая часть, 16 - младшая
set $g FilesAPI.LogicSHL (* $a * *16*) //сдвиг влево на 16
set logging $g
end_script


Этот код генерирует дворд, представь, что этот дворд мы прочитали из файла. Получается : 16384000. Запоминаем.

Этот дворд имеет основание - 250, что входит в рамки 1 байта.

А вот следующий дворд :

Код

//делаем дворд
//сначала or потом shl
set $a  FilesAPI.LogicOR (*340* *16*) //340 - старшая часть, 16 - младшая
set $g FilesAPI.LogicSHL (* $a * *16*) //сдвиг влево на 16
msg $g
end_script


Получаем 22282240. Тоже запоминаем. И думаем, что мы прочитали это из файла.

Этот дворд уже имеет основание 340, что выходит за рамки байта и подпадает под ворд.

Итого имеем :

16384000(250) и 22282240(340). Вот. А теперь представь, что мы не знаем какое у них основание. Просто прочитали и все. Но, из этих чисел нужно вытащить эти основания. Из одного вытащить 1 байт(250), а из другого 2(340). Надеюсь я понятно пояснил задачу.

Если под форматом бмп имеется ввиду порядок байт, то можно прочитать их в нужном режиме, но проблема другого характера. Нужно понять, что перед нами - 1 байт или 2.

Автор: DarkMaster 17.4.2016, 18:37

Цитата
Если под форматом бмп имеется ввиду порядок байт

Под ним имеется ввиду заголовок в комплексе и сжатие битмапа.
Цитата
Нужно понять, что перед нами - 1 байт или 2.

Дворд предполагает, что у нас есть 4 байта и эти 4 байта могут иметь значения от 00 до ff каждый. Если значение хранится и менно в дворде, то при хранении, например, 250, он не допускает наличие каких-либо значений в остальных байтах, соответственно мы можем смело утверждать, что запись будет выглядеть, как:
00 00 00 FA // При нормальном порядке байт
FA 00 00 00 // При обратном порядке байт.
Т.е. чтобы понять сколько у нас по факту байт используется и вычислить основание, нам просто нужно посчитать количество пустых байт подряд начиная со старшего. Ну либо я так и не понял тебя...

Если же это не натуральный дворд и количество байт выделяемых под размер динамическое, то должен быть либо указатель/номер байта либо какое-то дополнительное поле в структуре дающее понять где начало и где конец значения, чтобы отделить его от следующего параметра структуры.

Если я все еще туплю - напиши пару примеров в хексе: до значения, занчение, после значения.

Автор: Cockney 17.4.2016, 21:30

Нет, все что нужно расписал. Будем пытаться.

Автор: Cockney 9.5.2016, 14:09

Итак, кто реально юзал плагин? Какие неудобства ?

И есть ли толк от ReadWORD/DWORD , если в случае :

Цитата
00 00 00 FA // При нормальном порядке байт
FA 00 00 00 // При обратном порядке байт.
Т.е. чтобы понять сколько у нас по факту байт используется и вычислить основание, нам просто нужно посчитать количество пустых байт подряд начиная со старшего.
намного легче получить массив байт, а не из целого дворда выбивать каждый байт?

Автор: DarkMaster 9.5.2016, 18:27

Цитата
Итак, кто реально юзал плагин? Какие неудобства ?

Пока не юзал, задачи у плагина все-таки несколько специфичные. Несколько раз меня очень сильно припирало из-за отсутствия данного функционала в пилоте, но сейчас случай не представился. Из использования на каждый день - это хранение бмп внутри скрипта. На стороне пилота описывать не стал, т.к. думал ты собрался делать.

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

Легче чем что? Для чего? Непонял...

Автор: Cockney 9.5.2016, 18:47

ReadArrayOfByte практичней, чем ReadDWORD получается (даже не знаю, вопрос это или утверждение). Если по той ситуации судить. Легче получить сразу массив из 4 байт, чем получить дворд, а потом его по байту разбирать и проверять.


----
Не, я с бмп не планировал работать.
-----
А вообще, была идея сделать плагин-контейнер для бмп, только вот не нашел как разумно к пилоту прибить ( в плане использования фаиндов по скрину в памяти плагина).

Автор: DarkMaster 9.5.2016, 18:58

DWORD/WORD вообще не должны возвращать слова. Они должны возвращать готовое число, которое нет необходимости пересобирать. В этом их смысл этих типов данных и этим они отличаются от массива байт.

Цитата
-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старшее слово дворда
[1 2] - младшее слово дворда

Одинаковое описание для ворда и дворда.

Автор: Cockney 9.5.2016, 19:07

Хотел высказаться, но чет долго это будет. Если короче, то ReadDWORD для чтения адресов, констант, а ReadArrrayOfByte для всего остального, так?

Не одинаковое описание же.

Для ворда :

Старший/младший байт слова

Для дворда :

Старшее/младшее слово дворда

Автор: DarkMaster 9.5.2016, 19:12

Цитата
Если короче, то ReadDWORD для чтения адресов, констант, а ReadArrrayOfByte для всего остального, так?

Так. Ну и dword основной контейнер для хранения числовых переменных, а не только констант и адресов.
Цитата
Не одинаковое описание же.

виноват. Показалось, что слова в слове были.

Автор: Cockney 9.5.2016, 19:21

Воот. А перечитай мой тогдашний вопрос. про вытаскивание истинного значения. Про это я и говорю, что считывание массива байт удобней для дальнейшей проверки, чем считывание дворда и его дальнейшая разборка на байты.

и выходит, что в целом считывание массива куда экономнее.(от ситуации, конечно, зависит,но..),чем дворда.

Автор: DarkMaster 9.5.2016, 19:21

Суть моего прошлого поста была в том, что плагин не должен (д)ворд возвращать, как куски значений. Он должен возвращать сразу готовое число.

Автор: Cockney 9.5.2016, 19:24

Помоему,он его и возвращает,а куски как бонус. Либо не дописал в описании, либо и правда только кусками.

Автор: FREEON 15.7.2017, 10:12

Наверное каждый(или почти каждый) задавался вопросом, как создать один exe-шник с функциями которые можно подрубить или выключить во время нужного выполняемого нам действия. Вот и у меня сейчас он стоит. Вроде бы среду для создания бота нашел, отлично для этого дела подойдет Visual Studio(видео уроков хватает). Привязать можно, кнопочки и пр. фишки создать можно. Но встает вопрос...Где можно нарыть библиотеки, что бы наша прога понимала команды и функциии с пилота? А то писать заново как-то сложно ну и пока что не совсем понятно как. Если у кого-то есть файл с библиотекой то выложите пожалуйста?! sad.gif

Автор: Cockney 15.7.2017, 16:03

Цитата
Вроде бы среду для создания бота нашел, отлично для этого дела подойдет Visual Studio


Такс. Хорошо. Но, боюсь, для освоения этого чудовища нужны хотя-бы базовое понимание происходящего в этой среде. Ну, а судя по вопросу
Цитата
Где можно нарыть библиотеки, что бы наша прога понимала команды и функциии с пилота?
такого не имеется.

Цитата
Где можно нарыть библиотеки, что бы наша прога понимала команды и функциии с пилота?


Нигде, никак и никогда. Такие библиотеки(полнофункциональные) не распространяются в принципе. Нет, если конечно, заплатить, то м.б.

Цитата
А то писать заново как-то сложно ну и пока что не совсем понятно как


Забыть. Просто забыть про идею что-либо писать самому с такими познаниями в данной сфере. Забив в гугл : "компиляция бота" можно выйти на пару интересных решений, которые все умеют и с кнопочками, рюшечками и золотыми бусами. Но они платные. От пары евро (200р) в месяц до бесконечности. Я бы лучше заплатил и не мучился.

Автор: FREEON 15.7.2017, 19:40

Цитата(Cockney @ 15.7.2017, 16:03) *

Такс. Хорошо. Но, боюсь, для освоения этого чудовища нужны хотя-бы базовое понимание происходящего в этой среде. Ну, а судя по вопросу такого не имеется.
Нигде, никак и никогда. Такие библиотеки(полнофункциональные) не распространяются в принципе. Нет, если конечно, заплатить, то м.б.
Забыть. Просто забыть про идею что-либо писать самому с такими познаниями в данной сфере. Забив в гугл : "компиляция бота" можно выйти на пару интересных решений, которые все умеют и с кнопочками, рюшечками и золотыми бусами. Но они платные. От пары евро (200р) в месяц до бесконечности. Я бы лучше заплатил и не мучился.

Дай денег.
Ну Рим тоже не сразу строился. Ну научиться никогда не поздно и навыки никогда не бывают лишними. Ну в принципе такого ответа и ожидал...Благодарю что хоть направление для поиска указал будем искать и бусинками обвешивать.

Автор: Cockney 15.7.2017, 21:12

Я в шоке с наглости. Дайте библиотеку, программу, да чтоб само все работало без меня, да чтоб легко все было. А как же труд разработчика библиотеки,программы ? Такие вещи СТОЯТ своих денег, и они ОПРАВДЫВАЮТ себя, если продаются, конечно. Ну, ты конечно же, лучше знаешь цену чужому труду. Вот как напишешь что-то стоящее, тогда сам и оценишь свою поделку(и конечно же, она будет стоить денег, это же мое !).

Информации в интернете полно : эмуляция клавиш, снять скриншот, клик мышью эмуляция и т.п. запросы в гугл.

И все же, я призываю купить уже готовое. Я не поверю, что 200-300р. неподъемная цена для среднего жителя России. Тем более, что готовые боты можно будет продавать и получать прибыль.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)