Здравствуйте.
Есть такой скрипт:
Картинки в базе данных в формате PNG. Необходимо отобразить флаг, например, Австрии, в любом месте GUI. Желательно без создания промежуточного файла на диске. Размеры картинок сохранены в базе, колонки flag_height и flag_width
Спасибо
Есть такой скрипт:
Код:
#include <SQLite.au3>
Global $DataBase = @ScriptDir & "\countries.db"
_OpenDataBase($DataBase)
_CreateCountriesTable ()
GUICreate("Test")
; Получить картинку из БД и отобразить
GUISetState()
While GUIGetMsg()<>-3
WEnd
_ExitProg ()
Func _CreateCountriesTable ()
_GetInfoFromDataBase ("BEGIN;")
_GetInfoFromDataBase ("CREATE TABLE IF NOT EXISTS countries (id INTEGER PRIMARY KEY AUTOINCREMENT, rus TEXT NOT NULL, eng TEXT NOT NULL, ISO_4217_id TINYTEXT NOT NULL DEFAULT 0, ISO_3166_1_alpha_2 TINYTEXT NOT NULL DEFAULT '', ISO_3166_1_alpha_3 TINYTEXT NOT NULL DEFAULT '', ISO_3166_1_digital TINYTEXT NOT NULL DEFAULT '', flag_height INTEGER NOT NULL DEFAULT 0, flag_width INTEGER NOT NULL DEFAULT 0, flag BLOB NOT NULL DEFAULT '');")
_GetInfoFromDataBase ("INSERT INTO countries (rus, eng, ISO_4217_id, ISO_3166_1_alpha_2, ISO_3166_1_alpha_3, ISO_3166_1_digital, flag_height, flag_width, flag) VALUES ('Австралия', 'Australia', '036', 'AU', 'AUS', '036', 22, 44, x'FFD8FFE000104A46494600010101006000600000FFE1003A4578696600004D4D002A00000008000351100001000000010100000051110004000000010000000051120004000000010000000000000000FFDB004300100B0C0E0C0A100E0D0E1211101318281A181616183123251D283A333D3C3933383740485C4E404457453738506D51575F626768673E4D71797064785C656763FFDB0043011112121815182F1A1A2F634238426363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363FFC00011080016002C03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F006C682F6DCC5776CD7EB18FBD950C83EAA781FA7AE699F628EE1A6B77B1B97861F28ECDE32A150A8DC7DC1CD73D71AEDE4D6EB6F198EDE15E8902ED1FE7DFBF7A9AEA4D560B0826921682163198E65054FC8A557073DC1CD75BC256BAF7EDA9DB1C5514A5EE6EBCF5D5799A1AE3ECD3A48218C5B44B8CC43665B91D4F5F7E303DAB97EF5A179AC5C5F5A886E6381DC1FF005DB30FFA71F8E33555AE5DED23B62B1EC462C0841B8E7D4FA57761E9CA9C3965DCE3AF38CE578AB0FB848A6B895AC219BC855DD86F999477248ED9AAD53473B431910C9223382B261B0197D2A1ADD1885695E6B97B7BA7C3633B830C3F7401CD1450E29EE066D1DE8A298135DCEB7170D2A431C0AD8F923FBA38A868A285A01FFFD9');")
_GetInfoFromDataBase ("INSERT INTO countries (rus, eng, ISO_4217_id, ISO_3166_1_alpha_2, ISO_3166_1_alpha_3, ISO_3166_1_digital, flag_height, flag_width, flag) VALUES ('Австрия', 'Austria', '978', 'AT', 'AUT', '040', 29, 44, x'FFD8FFE000104A46494600010101006000600000FFE1003A4578696600004D4D002A00000008000351100001000000010100000051110004000000010000000051120004000000010000000000000000FFDB004300100B0C0E0C0A100E0D0E1211101318281A181616183123251D283A333D3C3933383740485C4E404457453738506D51575F626768673E4D71797064785C656763FFDB0043011112121815182F1A1A2F634238426363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363FFC0001108001D002C03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00A34577BFD87A6FFCFA27E67FC68FEC3D37FE7D13F33FE3587B267B9FDA54FB3382A2BBDFEC3D37FE7D13F33FE347F61E9BFF003E89F99FF1A3D930FED2A7D99C1515DEFF0061E9BFF3E89F99FF001A3FB0F4DFF9F44FCCFF008D1EC987F6953ECCC3FF0084B2EBFE7DE1FD68FF0084B2EBFE7DE1FD6B9EA2A79E5DCE8FA9D0FE53A1FF0084B2EBFE7DE1FD68FF0084B2EBFE7DE1FD6B9EA28E79770FA9D0FE53A1FF0084B2EBFE7DE1FD68FF0084B2EBFE7DE1FD6B9EA28E79770FA9D0FE53FFD9');")
_GetInfoFromDataBase ("INSERT INTO countries (rus, eng, ISO_4217_id, ISO_3166_1_alpha_2, ISO_3166_1_alpha_3, ISO_3166_1_digital, flag_height, flag_width, flag) VALUES ('Азербайджан', 'Azerbaijan', '031', 'AZ', 'AZE', '031', 22, 44, x'FFD8FFE000104A46494600010101006000600000FFE1003A4578696600004D4D002A00000008000351100001000000010100000051110004000000010000000051120004000000010000000000000000FFDB004300100B0C0E0C0A100E0D0E1211101318281A181616183123251D283A333D3C3933383740485C4E404457453738506D51575F626768673E4D71797064785C656763FFDB0043011112121815182F1A1A2F634238426363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363FFC00011080016002C03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F0076F5FEF0FCE8DEBFDE1F9D51DADE868DADE86B5FED07D85FD8187FF9FDF97F997F7023391C526F5FEF0FCE93CC0D6302249E598C9F31391B893C1E3AF1C7E1505DB472DC33C1018633D1339C51F5F7D888E4541BB7B5FCBFCCB1BD7FBC3F3A37AFF787E75476B7A1A36B7A1A3FB41F62FF00B030FF00F3FBF2FF00326A28A2BC93CE0A28A2800A28A2803FFFD9');")
_GetInfoFromDataBase ("INSERT INTO countries (rus, eng, ISO_4217_id, ISO_3166_1_alpha_2, ISO_3166_1_alpha_3, ISO_3166_1_digital, flag_height, flag_width, flag) VALUES ('Албания', 'Albania', '008', 'AL', 'ALB', '008', 31, 44, x'FFD8FFE000104A46494600010101006000600000FFE1003A4578696600004D4D002A00000008000351100001000000010100000051110004000000010000000051120004000000010000000000000000FFDB004300100B0C0E0C0A100E0D0E1211101318281A181616183123251D283A333D3C3933383740485C4E404457453738506D51575F626768673E4D71797064785C656763FFDB0043011112121815182F1A1A2F634238426363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363FFC0001108001F002C03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131410613516107227114328191A1082342B1C11552D1F02433627282090A161718191A25262728292A3435363738393A434445464748494A535455565758595A636465666768696A737475767778797A838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1F2F3F4F5F6F7F8F9FAFFC4001F0100030101010101010101010000000000000102030405060708090A0BFFC400B51100020102040403040705040400010277000102031104052131061241510761711322328108144291A1B1C109233352F0156272D10A162434E125F11718191A262728292A35363738393A434445464748494A535455565758595A636465666768696A737475767778797A82838485868788898A92939495969798999AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9FAFFDA000C03010002110311003F00CBA4660A32C40E71CD2D4379FF001EE47B8EF8AE15AB3EB66F962D8E17111775DE3720CB0F414A93C52286470431C0F7AE6DE4917E4248009C7E3FD2AFE9A5DEE37C99DCCDD738FD2B574ACAE79D4B1CE7351B1B145145627A614C953CC8F6E40CFA8CD3E8A04D5D599937F6EC924642AB6E71D4719F402AEC36C63D873D39E473F9D59201EA28AB736D58E78E1E319B905145150749FFD9');")
_GetInfoFromDataBase ("COMMIT;")
EndFunc ; _CreateCountriesTable ()
Func _OpenDataBase($fDataBaseFile)
_SQLite_Startup()
If @error Then
MsgBox(16, "Ошибка SQLite", "SQLite3.dll Не может быть загружен!")
Exit -1
EndIf
Global $hDataBase = _SQLite_Open($fDataBaseFile)
If @error Then
MsgBox(16, "Ошибка SQLite", "Не могу открыть или создать базу данных!")
Exit -1
EndIf
Return
EndFunc ;==>_OpenDataBase
Func _GetInfoFromDataBase($Query, $GetArray = False, $ShowFirstRow = False)
If $GetArray = False Then
Local $hQuery, $aRow, $foo
_SQLite_Query($hDataBase, $Query, $hQuery)
While _SQLite_FetchData($hQuery, $aRow, False, False) = $SQLITE_OK
$foo = $aRow[0]
WEnd
_SQLite_QueryFinalize ($hQuery)
Return $foo
ElseIf $GetArray = True Then
Local $aResult, $iRows, $iColumns, $iRval
$iRval = _SQLite_GetTable2d($hDataBase, $Query, $aResult, $iRows, $iColumns)
If $iRval = $SQLITE_OK Then
If $ShowFirstRow = False Then _ArrayDelete($aResult, 0)
Return $aResult
Else
MsgBox(0 + 16, "Ошибка SQLite: " & $iRval, _SQLite_ErrMsg())
EndIf
EndIf
EndFunc ;==>_GetInfoFromDataBase
Func _ExitProg ()
_SQLite_Close($hDataBase)
_SQLite_Shutdown()
Exit
EndFunc ; _ExitProg
Картинки в базе данных в формате PNG. Необходимо отобразить флаг, например, Австрии, в любом месте GUI. Желательно без создания промежуточного файла на диске. Размеры картинок сохранены в базе, колонки flag_height и flag_width
Спасибо