Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/1: Рейтинг темы: голосов - 1, средняя оценка - 5.00
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1

Работа с zip архивами

29.10.2024, 02:49. Показов 18522. Ответов 282
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Из всего, что попадалось по теме сжатия/распаковки ZIP наиболее интересные были примеры с использованием библиотеки Zlib. Оригинальная zlib использует cdecl экспорт функций, но есть реализация zlibwapi.dll, которую можно использовать в VB. Вот хороший пример использования. Там можно увидеть как сжть/распаковать массив байтов, но вот беда, очень сложно найти пример под VB с более обширным использованием, способной на большее, данной либы, которая не есть простая, там есть функции с использованием множества параметров констант и длинных структур, которые чтобы узнать наверное надо долго копатся в сишных заголочниках. Но HackerVlad в личной беседе говорил, что у него есть исходники с использованием данной библиотеки, поэтому любезно прошу его поделиться данной информацией.

Добавлено через 1 минуту
кстати словосочетание zip-архивами в названии форум блочит почему-то )

Добавлено через 6 минут
На одном форуме есть хороший пример испльзования функций zlib для извлечения/распаковки отдельных файлов, там
Кликните здесь для просмотра всего текста
обсуждался какой-то экзотический ЯП Clarion, но очень наглядно
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
! Источнег: https://forum.clarionlife.net/viewtopic.php?t=2389
! Для добавления в архив PwlZip ваш пароль
ZipHandle = zipOpen(NEW_ZIPPACK, 0)
If EncryptFlag = 1
Res# = zipOpenNewFileInZip3(ZipHandle, PATH_CURZIP, Zinfo, 0, 0, 0, 0, Comment, Z_DEFLATED, CompressionFlag,0,-15,8,0,PwlZip,0)
Else
Res# = zipOpenNewFileInZip(ZipHandle, PATH_CURZIP, Zinfo, 0, 0, 0, 0, Comment, Z_DEFLATED, CompressionFlag)
.
 
!Для чтения из архива
ZipHandle = unzOpen(PATH_INFILE_PACK)
LocRes1=UnzGoToFirstFile(ZipHandle)
If unzGetCurrentFileInfo(ZipHandle,FinFo,PATH_NAMEUPD_TMP,Size(PATH_NAMEUPD_TMP),0,0,Comment,Size(Comment)).
If FinFo.Flag = 3 !признак шифрованного zip по крайней мере так я понял после мыкания с архивами
LocRes2 = unzOpenCurrentFilePassword(ZipHandle,PwlZip)
Else
LocRes2 = UnzOpenCurrentFile(ZipHandle)

Здесь подробное описание функций, структур и констант, однако я не нашел там unzGetCurrentFileInfo и т.п.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.10.2024, 02:49
Ответы с готовыми решениями:

Работа с ZIP-архивами - распаковка файлов
Привет, уважаемый ALL! Подскажите, как можно работать с zip архивами из VBA? Стоит задача: 1) прочитать из архива...

Автоматизировать заполнение "Графика выполненных работ по месяцам"
Используя готовую рабочую книгу Blank1.xls, автоматизировать заполнение "Графика выполненных работ по месяцам". Из диапазона дат в...

Задания из лаб.работ
Надоедаю наверное уже всем...

282
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
08.11.2024, 16:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от testuser2 Посмотреть сообщение
Получается справка msdn врет
MSDN не врёт. Врёт сайт товарища locm там ошиблись немного просто с толкованием.

Добавлено через 2 минуты
locm, вы думаете что я не гуглил? я гуглил, на одних сайтах одно, а на других сайтах другое. Когда гуглишь ещё больше начинаешь запутываться так как все по разному пишут. Противоречий много.

Цитата Сообщение от locm Посмотреть сообщение
ANSI - это однобайтовая (cp1251, win-1251).
Вот это например выдало мне поисковая машина Яндекс по запросу "ANSI многобайтная или однобайтная"

Добавлено через 1 минуту
Я считаю и убеждён что cp1251 это ANSI и это однобайтная. Хотя все сайты могут по разному писать и толковать. В разных источниках по разному.
0
08.11.2024, 16:50

Не по теме:

Цитата Сообщение от testuser2 Посмотреть сообщение
Получается справка msdn врет, обозначая A-версии функций именно как Ansi, которые в свою очередь не плохо работают с кириллицей
Ascii тоже с буквы A начинается. Не думали об этом?

0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
09.11.2024, 01:03
Цитата Сообщение от testuser2 Посмотреть сообщение
C "наскоку" не нашел ни чего про это, можно поподробнее, пожалуста?
https://www.cyberforum.ru/post14406640.html

Цитата Сообщение от testuser2 Посмотреть сообщение
Наверное этот какой-то ограниченный участок и файл туда не залить?
Да вроде бы без ограничений, хотя не проверял.

Цитата Сообщение от testuser2 Посмотреть сообщение
ANSI же вроде однобайтовая, а многобайтовая utf8?
Нет. ANSI - многобайтовая. В ANSI есть понятия кодовой страницы и в каких-нибудь китайских кодовых страницах символ занимает несколько байт. Оттого функция конвертации из ANSI в юникод называется MultiByteToWideChar. К слову UTF16 (которая есть стандарт юникода в винде) тоже может использовать несколько WCHAR для представления одного символа. То подмножество что помещается в 2 байта USC-2 называется. Там 1 символ = 2 байтам.
2
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
09.11.2024, 14:04
 Комментарий модератора 
Заканчиваем оффтоп и ведем обсуждение по теме. Тему вновь открыл.


Если нужно хранить архив в ехе есть еще вариант запихать его в конец ехе. Получится SFX архив. Либо организовать там хранение нескольких архивов через этот класс.
1
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
10.11.2024, 08:44  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Либо организовать там хранение нескольких архивов через этот класс.
Такой вариант весьма поинтересней, но не работает, не сохраняет файл в своей exe-шке
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Main()
    Dim cEmb As New CEmbeddedFiles
    Dim fNum&, flPath$, fLen&, bBuf() As Byte
    
    cEmb.Initialize App.hInstance
    
    If cEmb.FileExists("zlibwapi.zip") = False Then
        flPath = App.Path & "\zlibwapi.zip"
        fNum = FreeFile
        Open flPath For Binary As fNum
        fLen = LOF(fNum)
        ReDim bBuf(fLen - 1)
        Get fNum, , bBuf
        Close fNum
        
        cEmb.Add "zlibwapi.zip", bBuf
        
        MsgBox "Файл добавлен! " & vbCr & cEmb.FilesCount
    End If
End Sub
Добавлено через 8 минут
Ах, туплю, там же есть готовый пример - Maker, там действительно, жмешь Save EOF Data, и файл подрастает в размере - класс! )

Добавлено через 3 часа 33 минуты
Фактически данный код наверное можно использовать вместо редактора ресурсов. Но я не знаю, конечно есть ли какие-то недостатки у стандартного редактора ресурсов (я им просто не пользовался). Но в данном случае можно просто любой файл либо в исходном виде, либо как-то сжать/зашифровать и т.д. и дописать в тело исполняемого файла (если так можно выразиться). А если портировать данный код в Twin Basic, то там к работе с этими файлами добавятся дополнительные возможности вроде загрузки/выгрузки Изображения из байтовго массива и т.д..
1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
10.11.2024, 16:36
testuser2, позже отвечу.
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
10.11.2024, 19:33  [ТС]
Цитата Сообщение от testuser2 Посмотреть сообщение
А если портировать данный код в Twin Basic
Попытался сегодня это сделать, для интереса, потратил пол-дня, но не получилось дойти даже до запуска формы на x64, на x32 тоже не все гладко, одна ко ж, узнал кое-что, о чем завтра стоит написать )
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
11.11.2024, 00:04
Цитата Сообщение от testuser2 Посмотреть сообщение
Но я не знаю, конечно есть ли какие-то недостатки у стандартного редактора ресурсов (я им просто не пользовался).
Секция ресурсов всегда отображается в память и всегда занимает виртуальную память, поэтому почти никогда не делают инсталляторы с данными в ресурсах. Представь 300МБ инсталлятор который при запуске "отжирает" 300 метров, на деле только ехе файл занимает память, а данные в хвосте игнорируются.
2
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
11.11.2024, 14:10  [ТС]
Не лишним, думаю, будет отметить в данном треде, также этот замечательный код HackerVlad-а для работы с cab-архивами, модуль получения информации о cab я немножко доработал под x64/Wide..
Кликните здесь для просмотра всего текста
Visual Basic
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Option Explicit
'////////////////////////////////////////////
'// Модуль для чтения CAB-архивов          //
'// Copyright (c) 11.11.2024 by HackerVlad //
'// e-mail: vladislavpeshkov@yandex.ru     //
'// Testuser2 добавил поддержку x64        //
'// Версия 1.1                             //
'////////////////////////////////////////////
Private Declare PtrSafe Function SetupIterateCabinet Lib "setupapi" Alias "SetupIterateCabinetW" ( _
                      ByVal CabinetFile As LongPtr, _
                      ByVal Reserved As Long, _
                      ByVal MsgHandler As LongPtr, _
                      ByVal Context As LongPtr) As Long
'WINSETUPAPI BOOL SetupIterateCabinetW(
'  [in] PCWSTR              CabinetFile,
'  [in] DWORD               Reserved,
'  [in] PSP_FILE_CALLBACK_W MsgHandler,
'  [in] PVOID               Context
');
Private Declare PtrSafe Function lstrlenW Lib "kernel32" (ByVal lpString As LongPtr) As Long
Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As LongPtr)
 
Private Const MAXPATH = 260
Private Const NO_ERROR = 0
'
' Notification messages, handled in the callback
' procedure. This class doesn't handle them all.
'
Private Const SPFILENOTIFY_FILEINCABINET = &H11
Private Const SPFILENOTIFY_NEEDNEWCABINET = &H12
Private Const SPFILENOTIFY_FILEEXTRACTED = &H13
 
Private Const sicList = 568
Private Const sicCount = 569
Private Type CabInfo
    cabFileName As String
    cabFileSize As Long
End Type
Private Type FileInCabinetInfo          '_FILE_IN_CABINET_INFO_W
    NameInCabinet As LongPtr                  '  PCWSTR
    FileSize      As Long                     '  DWORD
    Win32Error    As Long                     '  DWORD
    DosDate       As Integer                  '  WORD
    DosTime       As Integer                  '  WORD
    DosAttribs    As Integer                  '  WORD
    FullTargetName(MAXPATH - 1) As Byte       '  WCHAR
End Type
Private Enum FILEOP
    FILEOP_ABORT = 0
    FILEOP_DOIT = 1
    FILEOP_SKIP = 2
End Enum
Private mstrFileToExtract As String
Private mstrOutputPath As String
Private mstrOutputFile As String
Private mlngCount As Long
Private arrListFilesCab() As CabInfo
'UINT PspFileCallbackW(PVOID Context, UINT Notification, UINT_PTR Param1, UINT_PTR Param2)
Private Function CabinetCallback(ByVal Context As LongPtr, ByVal Notification As Long, ByRef Param1 As FileInCabinetInfo, ByVal Param2 As LongPtr) As Long
    Select Case Notification
    Case SPFILENOTIFY_NEEDNEWCABINET
        CabinetCallback = NO_ERROR
        
    Case SPFILENOTIFY_FILEINCABINET
        Select Case Context
        Case sicCount
            mlngCount = mlngCount + 1
            CabinetCallback = FILEOP_SKIP
                
        Case sicList
            ' Добавить позицию в массив UDT
            ReDim Preserve arrListFilesCab(mlngCount)
            arrListFilesCab(mlngCount).cabFileName = fStringFromPointer(Param1.NameInCabinet)
            arrListFilesCab(mlngCount).cabFileSize = Param1.FileSize
            mlngCount = mlngCount + 1
            
            CabinetCallback = FILEOP_SKIP ' Перебирать список файлов дальше
        End Select
    End Select
End Function
 
Private Function fStringFromPointer(ByVal ptr As LongPtr) As String
    Dim lngLen As Long
    
    ' Given a string pointer, copy the value of the string into a new, safe location.
    lngLen = lstrlenW(ptr)
    fStringFromPointer = Space$(lngLen)
    
    CopyMemory ByVal StrPtr(fStringFromPointer), ByVal ptr, lngLen * 2
End Function
 
' Получить список файлов внутри архива CAB
Public Function GetFilesListInCab(ByRef FileName As String, arrCabInfo() As CabInfo) As Long
    mlngCount = 0
    
    If SetupIterateCabinet(StrPtr(FileName), 0, AddressOf CabinetCallback, sicList) Then
        arrCabInfo = arrListFilesCab
        GetFilesListInCab = mlngCount
        
        Erase arrListFilesCab
    End If
End Function
 
' Узнать количество файлов внутри архива CAB
Public Function GetFilesCountInCab(ByRef FileName As String) As Long
    mlngCount = 0
    
    If SetupIterateCabinet(StrPtr(FileName), 0&, AddressOf CabinetCallback, sicCount) Then
        GetFilesCountInCab = mlngCount
    End If
End Function
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
11.11.2024, 14:45
Цитата Сообщение от testuser2 Посмотреть сообщение
SetupIterateCabinetW
W-функции тут бесполезны если честно, CAB сам по себе не поддерживает юникод (Cabinet.dll точно). Поэтому я и оставил у себя в модуле все функции А.

Добавлено через 7 минут
Хотя может и стоило мне всё-таки W-функции написать, вдруг CAB-архив запихнут в какую-нибудь китайскую папку, хотябы чтобы путь считывало... Но внутри CAB точно никакой китайщины просто быть не может.
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
11.11.2024, 15:04  [ТС]
W-функции удобней использовать в Twin Basic, там с DeclareWide можно передавать строки напрямую в функции.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
11.11.2024, 15:06
testuser2, да ты молодец что сделал, а твоя версия модуля будет работать в vb6?
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
11.11.2024, 15:16  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
а твоя версия модуля будет работать в vb6?
В VB6 как всегда надо автозаменой удалить все PtrSafe (не знаю для чего MS придумали добавлять это дурацкое слово, оно ломает прямую своместимость кодов) и добавить в верху всех деклараций
Visual Basic
1
2
3
Enum LongPtr
   [_]
End Enum
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
11.11.2024, 15:18
testuser2, да ты молодец что сделал, а твоя версия модуля будет работать в vb6?
Цитата Сообщение от testuser2 Посмотреть сообщение
PtrSafe
а PtrSafe поддерживается в Твине? там удалять это дурацкое слово не надо?
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
11.11.2024, 15:32  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
PtrSafe поддерживается в Твине?
Да, при чем, там также в обязаловку, по моему на x64, как на VBA. Они стараются делать полностью совместимый синтаксис с vba/vb6, хотя новые фичи, такие, как DeclareWide уже не будут совместимы c vb6/vba
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
11.11.2024, 18:40
testuser2, кстати не знаешь почему майкрософтовские cab-архивы называются MSZIP? Ну и путаница из-за этого сразу можно подумать что это ZIP а не CAB ума не приложу почему они так назвали метод сжатия алгоритм MSZIP если это CAB а не ZIP
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.11.2024, 05:45
Ну пришло время мне извиниться и объясниться. Я хочу объяснить, почему я думал неправильно насчёт ANSI. Всё очень просто я ввожу поисковой запрос в Яндекс и мне Яндекс сразу на первой строчке выдаёт ответ. И я слепо доверял этому быстрому ответу. Я просто не знал что Яндекс может врать оказывается.

Например я ввожу в поиск ANSI это однобайтная или многобайтная кодировка мне выдаёт сразу на первой позиции в Яндексе что это однобайтная. Поэтому я слепо верил в это...

Только сегодня я понял окончательно, что Яндекс врёт в быстрых ответах, сегодня я переписывал коды с языка C++ и мне нужно было срочно узнать сколько байтов занимает ULONG. Опять как обычно я ввожу в Яндекс поисковой запрос ULONG в языке C++ это сколько байтов и что вы думаете мне отвечает Яша? Нагло врёт что 8 байтов. Я слепо поверил этому ответу и начал писать в своих кодах As Currency вместо As Long из-за чего конечно мои коды не работали... Только потом мне fafalone объяснил что ULONG это 4 байта, а не 8 как я думал. Во всём виноват Яша получается.

Откуда Яндекс берёт эти быстрые ответы? Даже не знаю наверное берёт с первого попавшегося сайта, где может быть написана неправда. Например такая неправда о 8 байтах берётся даже с этого Киберформа, что меня удивило вот здесь: https://www.cyberforum.ru/blog... g7429.html написано что ulong это 8 байтов якобы, хотя если потом прокрутить страницу и прочитать комментарии снизу там написано что ulong это 4 байта, и даётся опровержение как бы. Понимаете почему и происходит такая путаница. Потому что кто-то публикует неверные ответы и выдаёт их за чистую монету как бы.
Миниатюры
Работа с zip архивами   Работа с zip архивами  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
12.11.2024, 05:57
В общем я пожаловался в Яндекс на этот неправильный быстрый ответ.

Добавлено через 1 минуту
The trick, как пожаловаться на этот пост? https://www.cyberforum.ru/blog... g7429.html

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

Добавлено через 4 минуты
Однако ULONG в VisualBasic .Net всё таки может быть и 8 байтов откуда всё таки наверное путаница и пошла...
0
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
12.11.2024, 07:37  [ТС]
Цитата Сообщение от HackerVlad Посмотреть сообщение
Однако ULONG в VisualBasic .Net всё таки может быть и 8 байтов
Я смотрю всегда здесь https://learn.microsoft.com/ru... data-types
Без знака LONG. Диапазон составляет от 0 до 4294967295 десятичной запятой.

Этот тип объявляется в WinDef.h следующим образом:

typedef unsigned long ULONG;
Хотя в Линуксе могут некоторые типы данных отличаться. Может быть Net ориентируется на Linux?

Добавлено через 8 минут
Но в типах Winows тоже есть непонятки. Тип Long четко обозначен как 32 битный. Но есть еще тип LongLong. Что значит Double?
C++ (Qt)
1
2
3
4
5
#if !defined(_M_IX86)
 typedef __int64 LONGLONG; 
#else
 typedef double LONGLONG;
#endif
Добавлено через 7 минут
Цитата Сообщение от HackerVlad Посмотреть сообщение
почему они так назвали метод сжатия алгоритм MSZIP
По инфо из Вики, они используют алгоритм Deflate, но в Cab используют и другие алгоритмы, quantum есть какой-то. Ты же кидал здесь Cab-класс, там можно MSZIP и LZMS использовать, я сравнивал, LZMS получше жмет..

Добавлено через 7 минут
Большинство типов C++ это фактически алиасы. В Твин-Бейсике тоже обещают поддержку алиасов в будущем. Во Фри Бейсике они есть, но там вообще, сам язык как алиас C++

Добавлено через 4 минуты
Здесь с++ long на рисунке 4 байта, а в таблице - 8 байт

Добавлено через 2 минуты
Хотя нет, там в таблице long long
1
1386 / 842 / 91
Регистрация: 08.02.2017
Сообщений: 3,588
Записей в блоге: 1
12.11.2024, 07:44  [ТС]
Хорошая табличка. Фактически основные типы int, long и ptr(указатель) остальные уже от них "пляшут"
Миниатюры
Работа с zip архивами  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2024, 07:44
Помогаю со студенческими работами здесь

access и zip архив
Привет всем! Подскажите... если есть возможность сохранение файла в zip архив Dim FileHeder As String Dim filePath As String ...

Как распаковать ZIP-файл в 7z?
'При помощи VBA WinRAR распаковывает архив в папку … q = Адрес_сохранения_файла 'путь к каталогу, то есть к папке, в конце пути для...

ребята!завтра надо сдать работу,а без этих работ никак((
алгоритмы линейной структуры 1) СОСТАВИТЬ ПРОГРАММУ ВЫЧИСЛЕНИЯ СРЕДНЕГО ЗНАЧЕНИЯ ТРЕХ ВЕЛИЧИН 2) ПОДСЧИТАТЬ И ВЫВЕСТИ НА ЭКРАН СУММУ И...

Замена файла в zip архиве при совпадении имени
Есть несколько excel файлов. например, 1.xls, 2.xls, 3.xls Есть куча zip архивов. например, A (1.xls), B (1.xls,5.doc,3.doc), C (3.xls),...

Как сделать архив zip?
Как сделать архив zip? Какие нужны библиотеки и где их взять? заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
220
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru