purebasic.info

PureBasic forum
Текущее время: Вт ноя 13, 2018 8:02 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Пн авг 27, 2018 4:24 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 301
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
Фух, наконец добрался до компа.
Вижу тема совсем вышла из под контроля.
Попридержите лошадей, я необещал никаких шифровок и секретов против хакеров и взломов, а если и гдето чегото так написано и понятно както иначе, то уточняю.
То чего я буду делать по твоей прозьбе мало чем отличается од твоей, впрочем незнаю зачем тебе именно мой вариант.

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

Суть того что хочет изначально была такая:
розгрузить екзешник от большого количества файликов, тем самым уменьшив размер его при загрузке в память.
Остальное это почелания newJS-шифрования и прочее(я необещал).

Многие начнут говорить и даже говорят зачем, да и встречал если инклуд менее 2 Гиг то зачем все это, отвечу, невсе геймеры и неувсех много капусты(денег) чтобы прикупить хороший ПК и много ОЗУ, у меня только 1 Гиг.
Второе, далеко некаждая прога переваливает в екзешнике за 1-5 метров, обычно антивирусник или какйто видеоплеер или видеоредактор, а у newJS уже нехилое начало.

Последнее, правильно кажется newJS писал, что если у тебя много прог запущено то остается немного памяти для работы и все идет в винт, а это тормоз и ожидания часто более полуминуты пока все выгрузит и еще на какието даные потратит время...

_________________
искатель истины


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Пн авг 27, 2018 7:28 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6397
Благодарил (а): 20 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
balex1978 писал(а):
Суть того что хочет изначально была такая:
розгрузить екзешник от большого количества файликов, тем самым уменьшив размер его при загрузке в память.

А что тут изобретать? Упаковка в отдельный файл всех ресурсов это 4 строчки кода + по строчке на каждый файл или +5 строчек на сканирование папки целиком, по желанию.
Распаковка с доступом к каждому файлу в отдельности это ещё 25-30 строк. Всё в рамках готовых функций Пурика, готовый код упаковки-распаковки найти 3 минуты.

Путем вставки готовых кусков программа пишется 10 минут, я дольше картинки собирал и "интерфейс".
Вот вам база:


Вложения:
PackFile.zip [528.67 KiB]
Скачиваний: 20

_________________
read-only ¯\_(ツ)_/¯
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Пн авг 27, 2018 9:25 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 230
Благодарил (а): 22 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
balex1978 писал(а):
и много ОЗУ, у меня только 1 Гиг.
Это не практично. В многих вещах есть минимальные и максимальные экономические значения. Например повышают цену на бензин, смотрят общий показатель дохода растёт, ещё повышают, люди начали экономить, общий показатель дохода падает, вот она точка максимальной прибыли, не связанная себестоимостью добычи. Тут также, файрфокс использует память под 800Мб, максимальный объём памяти занимаемый процессом 2 гига, значит при 1Гб это комп-калькулятор, нужно позаботиться минимум 2 гига, оптимально не для игр 4, а с играми минимум 8. У меня на 10ке сейчас 3гиг памяти занято, файрфокс 1300 забрал, с Gimp'ом работает противоречиво, не хватает памяти.
Если речь идёт о подгрузки ресурсов объёмом до 2 гиг, как текстуры в играх, то да, а мелочах можно и файл-базу SQL зашифровать, а потом расшифровать в память или не шифровать, а данные записываемые в базу шифровать.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Пн авг 27, 2018 10:25 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11324
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
AZJIO писал(а):
оптимально не для игр 4
При тесте прог в виртуалках этого мало. Пользоваться можно, но активно используется файл подкачки.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Вт авг 28, 2018 6:23 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6397
Благодарил (а): 20 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
balex1978 писал(а):
если у тебя много прог запущено то остается немного памяти для работы и все идет в винт, а это тормоз и ожидания часто более полуминуты пока все выгрузит и еще на какието даные потратит время...

Вот это тоже интересно :D
Сами себе противоречите. А вот если мало программ запущено, только ваша. А у неё изначально все ресурсы на винте, во внешнем фале. Их надо с винта загрузить, распаковать, расшифровать по версии newJS и уже только потом использовать.
Это ли не тормоза?

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Вт авг 28, 2018 6:35 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 692
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
да с чего вы придумали шифровку от хакеров, это всего лишь не дать напрямую оптом забрать, а поштучно пусть берут
такое впечатление что никто ни разу не видел в прогах странные файлы чем то похожие на картинки, звук, видели?, так вот это тоже самое, не дать напрямую забрать ресурсы
и отцепитесь вы от base64, это использовалось чтобы сделать текстовый вариант

kvitaliy писал(а):
А что тут изобретать?

так для того чтобы не дать легко забрать эти самые ресурсы, надо что то изобретать
kvitaliy писал(а):
base64 абсолютно бесполезна для целей шифрования и вредна для упаковки.

услышали что base64 даёт на 30% больше вес, а дальше думать не хотите
пакуется как минимум один к одному, а если подумать, то можно и меньший вес получить, есть идея, но щас не до этого
упаковку и маскировку/шифровку буду делать когда до этого дойдёт

Пётр писал(а):
Если нужно поместить в датасекцию много файлов, то лучше их объединить в один и упаковать его для уменьшения размера. Но я бы не стал использовать base64.

kvitaliy писал(а):
Я бы поступил аналогично, но применив дифференцированный подход.

это пока вам не захочется так просто ресурсы отдавать
Пётр, Виталя, а мы с balex1978 что делаем? какой велосипед?
да тоже самое, только я ещё предложил маскировать/шифровать на этапе генерации файла, ну и у меня текстовый вариант
kvitaliy писал(а):
Это ли не тормоза?

так вопрос не о скорости, вопрос об удалении из экзешника ресурсов и выносе их во внешний файл, со всеми вытекающими
а ты чё не спишь, время пол седьмого :D


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Вт авг 28, 2018 7:47 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6397
Благодарил (а): 20 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
newJS писал(а):
так вопрос не о скорости, вопрос об удалении из экзешника ресурсов и выносе их во внешний файл, со всеми вытекающими
а ты чё не спишь, время пол седьмого :D

Кроме того, что из этого вытекают тормоза + лишний файл, я не вижу пользы.
Упакованные+шифрованные файлы можно прямо в data секцию класть.
А у тебя какие преимущества видятся? Почему ты решил, что из exeшника их вытащить проще, чем из отдельного файла?
У меня не московское время.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Вт авг 28, 2018 12:40 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11324
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
newJS писал(а):
я ещё предложил маскировать/шифровать на этапе генерации файла
Для этого есть AES. Он шифрует в отличие от base64 и не увеличивает размер данных.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 6:13 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 692
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
А у тебя какие преимущества видятся?

То что вы с Петром предлагаете, это всё стандартные и хорошо известные методы, против ни кому не известного формата файла, этого мало?
kvitaliy писал(а):
Почему ты решил, что из exeшника их вытащить проще, чем из отдельного файла?

имеется ввиду что они открытые и их видят все проги для грабежа ресурсов, есть такие которые все ресурсы по одному клику в папку сливают
kvitaliy писал(а):
Кроме того, что из этого вытекают тормоза + лишний файл, я не вижу пользы.
Упакованные+шифрованные файлы можно прямо в data секцию класть.

Изначальная задача была убрать ресурсы из экзешника, и наверно я бы тоже сделал как то стандартно, но Балекс идеально вовремя выдал хорошую не стандартную идею. Ресурсы в несколько раз весят больше экзешника, как то неправильно это.
И ещё один фокус.
дата секция в любом случае займёт память, а этот метод, в некоторых случаях, позволяет удалить из памяти эти ресурсы, картинки только на морде останутся, или удалить часть ресурсов, зависит от того как картинки используются в программе, и чем это не преимущество?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 12:15 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11324
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
newJS писал(а):
это всё стандартные и хорошо известные методы
base64 это никому неизвестный метод?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 12:48 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 301
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
newJS я свою прогу отложил на неизвестное время,
но переделал твою прогу на нетекстовые проги и теперь по барабану чего туда грузить будеш,, архив
Вложение:
database_txt(newJS+balex1978).rar [5.03 KiB]
Скачиваний: 11
, главное не сотнями мегабайт :) , указываеш папку и ну дальше и так сам знаеш, ведь она по управлению мало чем отличается од твоей изначальной. Я только закоментировал выбор папки, смениш имя и расширение файла базы при создании и открытии, еще примениш свой метод шифровки и дешифровки (в указаном в коментариях месте в обоих прогах, там кстати один байт изменяю на инверсный мож закоментировать и посмотреть как всего один байтик себя ведет-результат неотображается ниодна картинка из тех которые ты выложил, ну ты можеш свой метод шифровки вкинуть(например перетасовать в хаотичнооооом :shock: порядке байты известном только тебе, а потом перетасовать обратно :lol: )) и обрезки расширения файлов.
файла три:
create_base_base64_V3.pb - создает базу
read_base_base64_V3.pb- розбирает и отображает по твоим мотивам используя NewMap(нестал трогать, правда пришлось поломать голову(неимел раньше с этим дело) как это все работаеть и хоть какуюто инфу получить).
read_base_base64_V3-m.pb- это более понятная любому и без заморочек.

ЗЫ попробовал удалить картинки то иконки сразу неотразились :) , можно конечно если нужна картинка неудалять :lol: , но если очень хочется то отразить кудато и скопировав создать с нее CatchImage, может вариант пройдет :) .

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

Пётр
Цитата:
base64 это никому неизвестный метод?"
, он это для примера использовал чтобы непариться с шифровщиками и неломать мозги никому, он придумает всой метод шифрования и никому непокажет только файлик, а хакеры пускай ломают что и как и чем, а главное зачем. Самый лучший файл это нарандомидзить и пускай розкодируют :lol:

kvitaliy огромное спасибо за простенький пакер, может гдето пригодится :) .

Цитата:
А что тут изобретать?
, кому как програминг дается, тебе легко, а комуто нет.
Иногда приходят легкие варианты, а иногда в трех соснах, вот меня достала одна команда вроде все в пределах нормы а неработает и все, понятное дело гдето под носом неувидел ошибку, но тут все везде проверено и все в норме и работает по дтдельности, а в куче нехочет хоть убей, начал поиски до милиметра,неа, поиск ограничений функций, ага а потом оказалось отять неа. Короче споткнулся на ромном месте, теперь в моей справке еще инфы прибавилось.
вот пример:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
;нечитает файлик 1.bmp совсем, а размерчик всегото 1,22 КБ (1 254 байт) 
LN=100000:Dim A.B(LN)
If ReadFile(0, "C:\_TEST\1.bmp")
        length = Lof(0)                            ; получаем длину открытого файла
        ;bytes = ReadData(0, @A.B(0), LN)  ; считаем все данные в блок памяти
        bytes = ReadData(0, @A.B(LN)-5000, LN-2000); заметь и это вписывается в лимит, а результат ноль
            Debug "Количество прочитанных байт: " + Str(bytes)
        CloseFile(0)
    EndIf
   
    ;результат проги
;    Количество прочитанных байт: 0



я понимаю что ты точно заеш почему при "нормальных" параметрах нечитает.

AZJIO писал(а):
Это не практично.
...Тут также, файрфокс использует память под 800Мб, максимальный объём памяти занимаемый процессом 2 гига, значит при 1Гб это комп-калькулятор, нужно позаботиться минимум 2 гига,
...Если речь идёт о подгрузки ресурсов объёмом до 2 гиг, как текстуры в играх, то да, а мелочах можно и файл-базу SQL зашифровать, а потом расшифровать в память или не шифровать
Прикинь у меня комп на работе и там в основном раюотаю и пишу проги и у него оперативки всего 256Мб :shock: , ты говориш добавить, а за чей счет, вот я и прикупил за свои 1 гиг, плату для сата и винт и еще отремонтировал мышу и клаву, нежирновато будет как ты думаеш. Ну повторюсь да не все в Москве живут и зарплаты не бизнес плана, есть люди у которых вообще нет ПК, только мобила, да и негооонюсь я за количеством.
Однажды мой брат играл на какойто 3де игре и на нашем слабеньком вся графики и довольно качественная просто летала, я больше невстречал таких игрушек, все тормоза ФПС 3 и неболее и то при заниженых настройках, так что если недумать об экономии ресурсов то получим везде как с водой, а она хоть важна но везде грязная. Помню знаменитую прогу Марс которая показываля полет над горами в 3Д и это на 486 проце.

О базе SQL, её ещё нужно поставить, а большенству пользователей она зачем, а как результат твоя прога на помоку :? , хоть и самая суперовая. Мне пришлось так выбросить много прог которые интересны но требуют установки нетолько нет фреймворка но и еще чегото и отправляют на такие сайты и с таким списком выбора как для того SQLчто провозившись час с установкой и недобившись результата я это всегда отправляю в помойку 8) .

kvitaliy писал(а):
Сами себе противоречите
возможно :lol: , а может я по жизни такой :wink: :P 8) :lol: :!: :?: :mrgreen: , уже это обсуждалось, не меня конечно, а тему, ресурсы в инклуде сами по себе идут в ОЗУ с екзешником, потом еще и добавляются когда эти ресурсы использует прога, в итоге двойное использование памяти, а с иннклуде ты куда их освободиш, может фокус покажеш как, думаю а вдруг получится.

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

ЗЫ, если когото зацепил и за очепятки ПРОШУ БОЛЬШОЕ ПРОЩЕНИЕ. :oops: :roll:

_________________
искатель истины


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 2:09 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6397
Благодарил (а): 20 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
@balex1978
Вот что означает эта строка в коде?
@A.B(LN)-5000
Т.е ты берёшь указатель на массив и вычитаешь из него 5000.
Другими словами, из адреса в памяти вычитается число 5000, получается какой то непонятный новый адрес, ни как не связанный с зарезервированным массивом, куда ты пытаешься записать свои данные.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 4:40 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11324
Благодарил (а): 4 раз.
Поблагодарили: 440 раз.
kvitaliy писал(а):
Вот что означает эта строка в коде?
@A.B(LN)-5000
По моему все и так понятно. Получение указателя на элемент массива равный "размер массива" - 5000.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 4:42 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вт апр 14, 2009 7:22 pm
Сообщений: 359
Благодарил (а): 1 раз.
Поблагодарили: 13 раз.
Пункты репутации: 0
К сожалению PB в плане работы с указателями, адресами и пр. не C
Иногда всё очень странно выглядит, но приспособиться можно.
LN=100000
Dim A.B(LN)
Debug @A(0)
Debug @A(100000)
Debug @A(LN)
*P = @A(0)
Debug *P
*P + LN
Debug *P

33673408
33773408
33773408
33673408
33773408


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 7:06 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 301
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
kvitaliy писал(а):
Вот что означает эта строка в коде?
@A.B(LN)-5000

правильный ответ:
Пётр писал(а):
По моему все и так понятно. Получение указателя на элемент массива равный "размер массива" - 5000

Если непонятно то это выглядит так @A.B(0) это начало масива точный аналог когда просиш выделить память мемориалок. @A.B(LN) уже выдает адрес последней ячейки ну или так @A.B(0)+LN, полностъю выглядит так @A.B(0)+LN-5000. Да я отхожу от конца 5000 байт и туда пишу файл который меньше 5000, но у пурика или винды свои взгляды на это, вроде если записать 1200 байт то до конца масива недостигнеш, а писать нехочет :?
Причем разброс ограничения непонятно од чего зависит, в одном случае недает 1,5 кило писать, а в другом случае 2 кило(файликом в 5 кило) поверху кудато запхал и ничего, незнаю чего там покоцал у моей проги, ну там и коцать нечего, она просто быстро завершилась :lol: Debug, CloseFile, EndIf и фсе, зе енд. А то еще и пурифиер прийдется заводить....ну это я так рилическое или лирическое одступление.

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

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

Спасибо jobless

_________________
искатель истины


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB