UNrar

Работа с файлами и базами данных
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: UNrar

Сообщение Sergey Ivanov »

dadreamer писал(а):
2015-02-19_14-20-53.jpg
И не нужно никаких батников городить.
Поместил UnRAR.exe в папку system32
Зачем вы это делаете? :shok:
На клиентских ПК тоже так собираетесь поступить?
Спасибо, работает !
Нет, я просто разные варианты пробовал )

Vitekkz88 писал(а):
Поменяйте путь на Program Files (x86)
Так то я знаю где у меня лежит UnRAR.exe:)
Пробела, вроде, не хватает перед (х86) "Program Files (x86)"
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: UNrar

Сообщение Super Star »

dadreamer писал(а):Super Star, Vitekkz88, а почему у меня тогда работает на Windows 7 x64? :crazy:
У меня WinRAR 64-разрядный стоит. У вас, видимо, нет.
не работает
я люблю свою работу.... Я приду сюда в субботу ...
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: UNrar

Сообщение Vitekkz88 »

Пробела, вроде, не хватает перед (х86) "Program Files (x86)"
\
Ага, поставил пробел.
Консоль выскакивает и скрывается. Но результата нет почему-то...
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: UNrar

Сообщение Vitekkz88 »

Ну и ладно! Не особо то и хотелось :crazy: Главное - автору помогло)
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: UNrar

Сообщение dadreamer »

Vitekkz88 писал(а):Ага, поставил пробел.
Консоль выскакивает и скрывается. Но результата нет почему-то...
Попробуйте вот в этом только что состряпанном :vi: :
Вложения
UnRAR.vi
LV2011
(49.05 КБ) 216 скачиваний
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: UNrar

Сообщение Vitekkz88 »

Попробуйте вот в этом только что состряпанном
:shok:
UNRAR 3.30 freeware Copyright (c) 1993-2004 Eugene Roshal
C:\Users\Lemz-T\Desktop\q\qw.rar is not RAR archive
No files to extract
:shok:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: UNrar

Сообщение dadreamer »

Vitekkz88 писал(а):C:\Users\Lemz-T\Desktop\q\qw.rar is not RAR archive
Старая версия архиватора? Или самого UnRAR'а? А может некорректно поставился?.. Я могу только гадать )
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: UNrar

Сообщение Vitekkz88 »

Старая версия архиватора? Или самого UnRAR'а? А может некорректно поставился?.. Я могу только гадать )Я могу только гадать )
Вот уж извините, доколь проблем не знали)
Думаю архиватор по-свежее всё исправит. Может еще кто проверит?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: UNrar

Сообщение dadreamer »

У меня сейчас версия 5.21 бета 1. UnRAR в консоли ту же версию выдаёт.
2015-02-19_17-21-34.jpg
Буду дома, там еще проверю, на более старой версии.
Аватара пользователя
Super Star
adviser
adviser
Сообщения: 228
Зарегистрирован: 07 фев 2013, 08:37
Версия LabVIEW: 2011

Re: UNrar

Сообщение Super Star »

5.21 заработало, из-за того что каждый параметр в кавычках передавался
я люблю свою работу.... Я приду сюда в субботу ...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: UNrar

Сообщение dadreamer »

 
Вложения
2015-02-19_19-57-25.jpg
2015-02-19_19-57-25.jpg (117.54 КБ) 13008 просмотров
2015-02-19_19-59-38.jpg
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: UNrar

Сообщение Sergey Ivanov »

dadreamer писал(а):А вообще по хорошему путь к WinRAR'у нужно получать через реестр (HKLM\Software\WinRAR\exe64)
Сделал получение пути через реестр, но он отличается от указанного вами. Почему ?
Снимок.JPG
unrar.vi
(20.75 КБ) 229 скачиваний
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: UNrar

Сообщение dadreamer »

Sergey Ivanov писал(а):Почему ?
Этот путь не берите, это для наличия пункта "WinRAR -> Добавить в архив / Извлечь в ..." в контекстном меню файлов и папок, когда на них жмёшь ПКМ. Используйте тот путь, что я привёл выше. Или просто проверяйте в папках Program Files и Program Files (x86) наличие файла unrar.exe. Правда, этот вариант может не сработать, если юзер поставил WinRAR в какую-то другую папку.

Так-то, конечно, можно было бы взять unrar.dll и распаковать что угодно, распространяя её вместе с вашей программой. Тем более что либа свободная, да ещё с нормальной документацией и кучей примеров. Но право что-то так возиться лень, извините. :crazy: Может, как-нибудь позже посмотрю.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: UNrar

Сообщение dadreamer »

На основе примеров из UnRARDLL.exe сделал несколько :vi: и тестовую программку, выполняющую распаковку архива с помощью unrar.dll. Реализован только самый базовый функционал, тестирование и листинг архива делать не стал. Пример использования инструментов:
Snippet.png
При использовании этих :vi: нужно указать путь к Callback-библиотеке, она лежит рядом с :vi: , при работе в RTE должна находиться в папке data (при желании можно поменять в RAROpenArchiveEx.vi). Если потребуется структура RAROpenArchiveDataEx, её можно вытащить из того же :vi: . Прерывание (останов) распаковки тоже не стал делать, это на будущее, если кому-то понадобится. Это же относится и к прогрессу распаковки.
Для RARProcessFile.vi можно не задавать входы Dest Folder (папка, куда производится распаковка) и Dest FileName (full) (полный путь для извлекаемого файла: если указан, то файл извлекается по этому пути и с этим именем вместо имеющегося). В этом случае архив распаковывается туда же, где он находится. Подробное описание всех функций и структур см. в мануале.

VI:
2011_unrar.rar
(204.52 КБ) 241 скачивание
Исходник Callback (D7):

Код: Выделить всё

library Callback;

uses
  SysUtils, Classes, Windows;

{$R *.res}

function CallbackProc(msg: UINT; UserData, P1, P2: Integer): Integer; stdcall;
var C: PChar;
begin
  Result := 0;
  case msg of
    0: //UCM_CHANGEVOLUME
      if (P2 = 0) then begin //RAR_VOL_ASK
      {
        Write(CR, 'Insert disk with ', PChar(P1), ' and press ''Enter'' or enter ''Q'' to exit ');
        Readln(Ch);
        if (UpCase (Ch) = 'Q') then
          Result := -1;
      }
      Result := -1; //terminate operation
      end;
    2: //UCM_NEEDPASSWORD
      begin
        //Write(CR, 'Please enter the password for this archive: ');
        //Readln(S);
        C := PChar(UserData); //password is placed into UserData
        Move(Pointer(C)^, Pointer(P1)^, StrLen(C) + 1);
          //+1 to copy the zero
      end;
    1: //UCM_PROCESSDATA
      begin
      {
      if (UserData <> 0) and (PINT (UserData)^ = PRINT) then begin
        Flush (Output);
        // Windows.WriteFile fails on big data
        for I := 0 to P2 - 1 do
          Write(PChar(P1 + I)^);
        Flush (Output);
      end;
     }
    end;
  end;
end;

exports
CallbackProc name 'CallbackProc';

begin
end.
Ответить

Вернуться в «Сохранение данных»