Здравствуйте, гость ( Вход | Регистрация )

3 страниц V < 1 2 3 >  
Ответить в эту темуОткрыть новую тему
> Плагин для работы с файлами
Cockney
сообщение 12.4.2016, 21:23
Сообщение #21


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Да, получается тогда элемент, я путаюсь в понятиях.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 17.4.2016, 9:45
Сообщение #22


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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


Есть элемент размера дворд (сразу скажу, что это часть заголовка бмп, ширина или высота картинки). Считал, получил младший байт с размером(т.к. ширина меньше 255, то он и будет в младшем байте лежать). Но стоит увеличить ширину, к примеру, до 500, и код, обрабатывающий младший байт идет мимо. Нужно работать со старшим словом. Естественно, размер картинки заранее не известен, и код соответственно разный. Есть какие идеи, че можно с этим придумать? И подчеркну, о бмп неизвестно абсолютно ничего.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.4.2016, 11:22
Сообщение #23


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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

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

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 17.4.2016, 12:28
Сообщение #24


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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

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

К примеру :

Ширина бмп : 25

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

Ширина бмп : 400

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

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


Документация тут поможет только для получения смещений полей. Все.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.4.2016, 15:33
Сообщение #25


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата

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

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 17.4.2016, 16:38
Сообщение #26


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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


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

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

Вернее как он расположен мы знаем, но не знаем, байт ли нам нужен или нет.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.4.2016, 17:22
Сообщение #27


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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

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

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

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 17.4.2016, 18:16
Сообщение #28


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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

Смотри :

Код

//делаем дворд
//сначала 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.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.4.2016, 18:37
Сообщение #29


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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

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

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

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

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

Сообщение отредактировал DarkMaster - 17.4.2016, 18:35


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 17.4.2016, 21:30
Сообщение #30


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Нет, все что нужно расписал. Будем пытаться.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.5.2016, 14:09
Сообщение #31


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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

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

Цитата
00 00 00 FA // При нормальном порядке байт
FA 00 00 00 // При обратном порядке байт.
Т.е. чтобы понять сколько у нас по факту байт используется и вычислить основание, нам просто нужно посчитать количество пустых байт подряд начиная со старшего.
намного легче получить массив байт, а не из целого дворда выбивать каждый байт?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.5.2016, 18:27
Сообщение #32


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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

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

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

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.5.2016, 18:47
Сообщение #33


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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


----
Не, я с бмп не планировал работать.
-----
А вообще, была идея сделать плагин-контейнер для бмп, только вот не нашел как разумно к пилоту прибить ( в плане использования фаиндов по скрину в памяти плагина).
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.5.2016, 18:58
Сообщение #34


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



DWORD/WORD вообще не должны возвращать слова. Они должны возвращать готовое число, которое нет необходимости пересобирать. В этом их смысл этих типов данных и этим они отличаются от массива байт.
Цитата
-1 - ошибка чтения или неверный хендл
Массив размером [1 2] в котором содержаться :
[1 1] - старшее слово дворда
[1 2] - младшее слово дворда

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

Сообщение отредактировал DarkMaster - 9.5.2016, 18:58


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.5.2016, 19:07
Сообщение #35


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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

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

Для ворда :

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

Для дворда :

Старшее/младшее слово дворда
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.5.2016, 19:12
Сообщение #36


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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

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

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.5.2016, 19:21
Сообщение #37


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



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

и выходит, что в целом считывание массива куда экономнее.(от ситуации, конечно, зависит,но..),чем дворда.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.5.2016, 19:21
Сообщение #38


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 9.5.2016, 19:24
Сообщение #39


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Помоему,он его и возвращает,а куски как бонус. Либо не дописал в описании, либо и правда только кусками.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 15.7.2017, 10:12
Сообщение #40


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



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

3 страниц V < 1 2 3 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 11:23
Designed by Nickostyle