На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
Страницы: (7) 1 [2] 3 4 ...  6 7 все  ( Перейти к последнему сообщению )  
> Кому надо DGM ? , за исходники 2-х алгоритмов
    Cм сообщение №11 и качай аттачмент.
      SCINER, держи вот эту бодягу, надеюсь поможет:
      ExpandedWrap disabled
         
           tcompMASK_TYPE =          $000F;  // Mask for compression type
           tcompTYPE_NONE =          $0000;  // No compression
           tcompTYPE_MSZIP =         $0001;  // MSZIP
           tcompTYPE_QUANTUM =       $0002;  // Quantum
           tcompTYPE_LZX =           $0003;  // LZX
           tcompBAD =                $000F;  // Unspecified compression type
         
           tcompMASK_LZX_WINDOW =    $1F00;  // Mask for LZX Compression Memory
           tcompLZX_WINDOW_LO =      $0F00;  // Lowest LZX Memory (15)
           tcompLZX_WINDOW_HI =      $1500;  // Highest LZX Memory (21)
           tcompSHIFT_LZX_WINDOW =       8;  // Amount to shift over to get int
         
           tcompMASK_QUANTUM_LEVEL = $00F0;  // Mask for Quantum Compression Level
           tcompQUANTUM_LEVEL_LO =   $0010;  // Lowest Quantum Level (1)
           tcompQUANTUM_LEVEL_HI =   $0070;  // Highest Quantum Level (7)
           tcompSHIFT_QUANTUM_LEVEL =    4;  // Amount to shift over to get int
         
           tcompMASK_QUANTUM_MEM =   $1F00;  // Mask for Quantum Compression Memory
           tcompQUANTUM_MEM_LO =     $0A00;  // Lowest Quantum Memory (10)
           tcompQUANTUM_MEM_HI =     $1500;  // Highest Quantum Memory (21)
           tcompSHIFT_QUANTUM_MEM =      8;  // Amount to shift over to get int
         
           tcompMASK_RESERVED =      $E000;  // Reserved bits (high 3 bits)
         
           CB_MAX_FILENAME =            256;
           CB_MAX_CABINET_NAME =        256;
           CB_MAX_CAB_PATH =            256;
           CB_MAX_DISK_NAME =           256;
         
         
        Public Type TCCAB
              cb: ULONG;                  // size available for cabinet on this media
              cbFolderThresh: ULONG;      // Thresshold for forcing a new Folder
              cbReserveCFHeader: UINT;    // Space to reserve in CFHEADER
              cbReserveCFFolder: UINT;    // Space to reserve in CFFOLDER
              cbReserveCFData: UINT;      // Space to reserve in CFDATA
              iCab: Integer;              // sequential numbers for cabinets
              iDisk: Integer;             // Disk number
              fFailOnIncompressible: Integer;  // TRUE => Fail if a block is incompressible
              setID: USHORT;               // Cabinet set ID
              szDisk: array[0..CB_MAX_DISK_NAME - 1] of AnsiChar;    // current disk name
              szCab: array[0..CB_MAX_CABINET_NAME - 1] of AnsiChar;  // current cabinet name
              szCabPath: array[0..CB_MAX_CAB_PATH - 1] of AnsiChar;  // path for creating cabinet
        End Type
         
        PCCAB = ^TCCAB; ' Это означает что структуры одинаковы но в VB придется объявить обе
         
        Public Type PFNFCIGETNEXTCABINET
            pccab: PCCAB;
            cbPrevCab: ULONG;
            pv: void FAR;
        End Type    
            
        Public Type TFDICABINETINFO
              cbCabinet: Longint;  // Total length of cabinet file
              cFolders: USHORT;    // Count of folders in cabinet
              cFiles: USHORT;      // Count of files in cabinet
              setID: USHORT;       // Cabinet set ID
              iCabinet: USHORT;    // Cabinet number in set (0 based)
              fReserve: WIN_BOOL;  // TRUE => RESERVE present in cabinet
              hasprev: WIN_BOOL;   // TRUE => Cabinet is chained prev
              hasnext: WIN_BOOL;   // TRUE => Cabinet is chained next
        End Type
         
        PFDICABINETINFO = ^TFDICABINETINFO; 'Тоже что и выше
         
        Public Type TFDINOTIFICATION
              cb: Longint;
              psz1: PAnsiChar;
              psz2: PAnsiChar;
              psz3: PAnsiChar;       // Points to a 256 character buffer
              pv: PVoid;             // Value for client
              hf: Integer;
              date: USHORT;
              time: USHORT;
              attribs: USHORT;
         
              setID: USHORT;         // Cabinet set ID
              iCabinet: USHORT;      // Cabinet number (0-based)
              iFolder: USHORT;       // Folder number (0-based)
         
              fdie: TFDIERROR;
        End Type
         
           PFDINOTIFICATION = ^TFDINOTIFICATION;'Тоже что и выше
        Бодяга-то совершенно практически бесполезна! А вот нужно перевести следующие строчки с делфи:
        ExpandedWrap disabled
          if ((oflag and O_CREAT) <> 0) then
            begin
              if ((oflag and O_EXCL) <> 0) then
                FileCreate := CREATE_NEW
              else if ((oflag and O_TRUNC) <> 0) then
                FileCreate := CREATE_ALWAYS
              else
                FileCreate := OPEN_ALWAYS
            end
            else if ((oflag and O_TRUNC) <> 0) then
              FileCreate := TRUNCATE_EXISTING
            else if ((oflag and O_EXCL) <> 0) then
              FileCreate := OPEN_EXISTING
            else begin
              FileCreate := OPEN_EXISTING;
            end;

        с этими else if совсем запутался. тупейшая кострукция. аналогов в ВБ вроде нету?
          Vasya2000, Да нет, в VB тоже самое только слитно пишется If Then ... Elseif Then ... Else ... End If
          А вот на счет бодяги, тут именно оно. Структуры которые нужно перевести в VB формат данных, тогда можно будет АПИ-шки юзать кабинетные.
            Ага! Ясно, спасибо.
              2Vasya2000: не могу качнуть, я ж не зареген, я уже писал об этом... вкратце, чё там за код? там используется FindFirstChangeNotification и иже с ним? Если да, то это вобщем-то и не мониторинг, т.к. таким образом можно только за одной папкой следить...
                FindFirstChangeNotification - умеет следить за всеми дисками сразу.
                В примере FindFirstChangeNotification неиспользуется.
                Там что-то типа подписки через shell32.dll на уведомлении об активности файловой системы через обработчик оконной процедуры.
                  Хм.. FindFirstChangeNotification принимает как параметр имя папки, поэтому он с ней и работает.. или можно как-то задать, чтоб она глобально отслеживала?
                  Плииз закинь себе этот архивчик с мониторингом на сайт, а то я ж не могу качнуть-то..
                    Переустанови, либо поставь паралельную винду.
                    Зачем себе и людям такие неудобности создавать ;)
                        SCINER, с cаb-ами разобрался? Расскажи как.
                          C cab-ами без пол-литры , да еще и за пару часов - не разберешся. У меня сейчас упорно вылетает на калбэк функции FCIOpen, причем судя по отладочной информации первый раз она срабатывает а во второй раз обрушивается. Очевидно глубоко в коде сидит баг. Или в днк. Я так полагаю, что если больше никто не примет участие в этом деле, то на исходники можно не рассчитывать.
                            мне тоже нужно с Cab'ами работать... А cabinet.dll с виндой поставляется?
                              Цитата miksayer @ 30.11.04, 12:41
                              мне тоже нужно с Cab'ами работать... А cabinet.dll с виндой поставляется?

                              Да! Помоему начиная с 98. А может даже и с 95.
                                2Sciner: ну мне в полнейший лом переставлять... :'( потом как-нить
                                2Vasya2000: пасиб... и отдельно большое спасибо за ссылку на такой замечательный сайт =) не знал о нём..
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (7) 1 [2] 3 4 ...  6 7 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0368 ]   [ 15 queries used ]   [ Generated: 16.06.25, 20:26 GMT ]