purebasic.info

PureBasic forum
Текущее время: Ср сен 26, 2018 2:19 am

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




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Самодельная база данных
СообщениеДобавлено: Ср авг 29, 2018 7:31 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
@balex1978
Ну да, я был невнимателен! Конечно же, при определённом LN это @A.B(LN) указатель на последний элемент массива. Почему то мне привиделся первый элемент :D
Дико извиняюсь!

_________________
read-only


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

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 166
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
kvitaliy писал(а):
Ну да, я был невнимателен!... Дико извиняюсь!
Извинения приняты и сохранены в коробочке :wink:

А что у вас с этим примерчиком, точнее как ведет эта bytes = ReadData(0, @A.B(LN)-5000, LN-2000) команда, а то я так и непонял, может это только у меня так читает(точнее совсем нечитает) коряво, никто никак неотзывается.Читает или выдает ноль?

Если интересно то работает когда параметр прочитаных байт вписывается в диапазон памяти или масива и од размера файла независит, кажется, типа так ReadData(0, @A.B(LN)-5000, 2000) прочитает тот фалик размером около 1250 байт.

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

Код:
1
2
3
4
5
6
7
8
9
;нечитает файлик 1.bmp совсем, а размерчик всегото 1,12 КБ (1 150 байт)
LN=100000:Dim A.B(LN)
If ReadFile(0, "C:\TEST\copy_all.ico")
        length = Lof(0)                            ; получаем длину открытого файла
 
        bytes = ReadData(0, @A.B(LN)-100, 7000);
            Debug "Количество прочитанных байт: " + Str(bytes)
        CloseFile(0)
    EndIf


выдал ошибку на строку где нет ошибки, но тут возможно через то что покоцаные даные после масива, менял на другие числа все нормально.
[ОШИБКА] Строка: 8
[ОШИБКА] Невозможен доступ к памяти. (ошибка чтения по адресу 65535)

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


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

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

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

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

Эта база не предназначена для хранения гос секретов. :D

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

да, иконки дурацкий формат, я так понял, иконки это неупакованный bmp 24 бита + прозрачность, в итоге они весят больше чем bmp
и почему их нельзя ресайзить? не, можно конечно, но не напрямую, надо извращаться :D
чтобы иконки не исчезали можно попробовать(не пробовал) их ложить на канвас
повторюсь, возможное удаление картинок из памяти зависит от программы, где как

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

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


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

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
balex1978 писал(а):
А что у вас с этим примерчиком, точнее как ведет эта bytes = ReadData(0, @A.B(LN)-5000, LN-2000) команда, а то я так и непонял, может это только у меня так читает(точнее совсем нечитает) коряво, никто никак неотзывается.Читает или выдает ноль?

В неизменном виде 0. Наверно связано со слишком большим значением LengthToRead, которое многократно превышает требуемое кол-во.
Если уменьшить хотя бы до такого
bytes = ReadData(0, @A.B(LN)-5000, LN-90000)
То нормально читает.
А к чему эти эксперименты? Тем более, что размер LengthToRead заранее точно вычисляется Lof()

_________________
read-only


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

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11260
Благодарил (а): 4 раз.
Поблагодарили: 431 раз.
balex1978 писал(а):
Если интересно то работает когда параметр прочитаных байт вписывается в диапазон памяти или масива и од размера файла независит, кажется, типа так ReadData(0, @A.B(LN)-5000, 2000) прочитает тот фалик размером около 1250 байт.
Размер файла случайно не 1250 байт?

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


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

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 166
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Пётр там первый вариант проги
1,22 КБ (1 254 байт) с именем 1.bmp с параметрами (0, @A.B(LN)-5000, LN-2000),
второй(последний)=
1,12 КБ (1 150 байт) с именем - copy_all.ico и параметрами (0, @A.B(LN)-100, 7000).

newJS ты проверял, что там с переделкой проги, как она себя ведет, все ли работает, или гдето проблемки, я конечно всего неучитывал, типа битая база, можно в начале индификатор базы из 2-4 букв, а в конец файла добавить ЦРЦ код или MD5,SHA1 и читабельность файла у каждом случае непроверял, ну это на ваше усмотрение.
Там например есть ограничение на размер вкидаемого файлика в 10 000 000 байт(возможно со звуками или чемно увесистым прийдется работать), но его можно и увеличить, это не размер базы, можно и 100 штук по 10Мб и база получчится в гиг размером.

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


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

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

С другой стороны както нелогично удалять картинку которая гаджетом используется, но если она после освобождения.
А после экспериментов совсем непонял как это они отражаются в базе на кнопках, ведь сама картинка удалена. Конечно с памяти она может быть нестерлась в отличии от иконок, надобно както в ОЗУ заглянуть где они там седят и прочитать даные мож и действительно иконки стираются, но я никогда с прямым доступом неработал.

прога ниже подтверждает, что картинка удалена, екзешник просто слетает если розкоментировать FreeImage, потому каким чудом кнопки отражают бмпехи незнаю(короче скажи спасибо что отражают :lol: )
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
OpenWindow(1, 110, 210, 400, 550, "Графика", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget) 
LoadImage(5,"C:\_TEST\1.bmp")
CreateImage(7, 70, 70 );эту так и создаем, но рзамеры должны быть как в первой для иконки узнавать так кажется ImageWidth(#Image), ImageWidth
CopyImage(5 , 7)
;n=GrabImage(5 , 7 , 0 , 0 , 70 , 70);далее фокус, отрезаем кусок и пихаем в новую картинку, ниже ее отображаем
;GrabImage(#Image1 , #Image2 , x , y , Width , Height)
 
StartDrawing(ImageOutput(7))
*MemoryBuffer=DrawingBuffer()
; For i=0 To 500 Step 4:
;             PokeL(*MemoryBuffer+i , $ff123456+Random(1000000) ):
;         Next
StopDrawing()
 
ButtonImageGadget(0, 0, 0, 200, 200, ImageID(5));
ButtonImageGadget(1, 0, 200, 200, 200, ImageID(7))
 
; FreeImage(5)
; FreeImage(7)
OpenConsole("")
Print(Hex(PeekL(*MemoryBuffer+$Cd) ))
Input()
;+$Cd-это смещение потому что у меня картинка состоит из двух цветов, вот и сместил где есть граница чтобы смотреть в дубугере
;Debug Hex(PeekL(*MemoryBuffer+$Cd) );[ОШИБКА] Невозможен доступ к памяти. (ошибка чтения по адресу 34013389)
;ShowMemoryViewer(*MemoryBuffer, 1000):;Указанный диапазон памяти не пригоден для чтения
 
Repeat : W=WaitWindowEvent():
nGadget=EventGadget();ВЫДАЕТ НОМЕР УСТРОЙСТВА
If W=#PB_Event_CloseWindow :Q=1:EndIf
Until Q=1


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


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

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

да не трогай ты это Г. ну нельзя удалить и чёрт с ней
balex1978 писал(а):
прога ниже подтверждает, что картинка удалена, екзешник просто слетает если розкоментировать FreeImage, потому каким чудом кнопки отражают бмпехи незнаю(короче скажи спасибо что отражают :lol: )

ни когда да не делай, не создавай себе проблем, добавь else если хочешь знать где облом
Цитата:
If IsImage(mf()\img):FreeImage(mf()\img):EndIf

когда картинка легла на гаджет она там и осталась, получилось две картинки, исходник и гаджет, поэтому исходник можно удалить
а что с иконками делается, непонятно
balex1978 писал(а):
newJS ты проверял, что там с переделкой проги, как она себя ведет, все ли работает, или гдето проблемки, я конечно всего неучитывал, типа битая база, можно в начале индификатор базы из 2-4 букв, а в конец файла добавить ЦРЦ код или MD5,SHA1 и читабельность файла у каждом случае непроверял, ну это на ваше усмотрение.

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

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