UNrar

Работа с файлами и базами данных

Re: UNrar

Postby Sergey Ivanov on 19 Feb 2015, 13:45

dadreamer wrote:
2015-02-19_14-20-53.jpg

И не нужно никаких батников городить.
Поместил UnRAR.exe в папку system32

Зачем вы это делаете? :shok:
На клиентских ПК тоже так собираетесь поступить?


Спасибо, работает !
Нет, я просто разные варианты пробовал )


Vitekkz88 wrote:
Поменяйте путь на Program Files (x86)

Так то я знаю где у меня лежит UnRAR.exe:)

Пробела, вроде, не хватает перед (х86) "Program Files (x86)"
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: UNrar

Postby Super Star on 19 Feb 2015, 13:49

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


не работает
я люблю свою работу.... Я приду сюда в субботу ...
User avatar
Super Star
adviser
adviser
 
Posts: 228
Joined: 07 Feb 2013, 08:37
LabVIEW Version: 2011
Karma: 35

Re: UNrar

Postby Vitekkz88 on 19 Feb 2015, 13:54

Пробела, вроде, не хватает перед (х86) "Program Files (x86)"
\
Ага, поставил пробел.
Консоль выскакивает и скрывается. Но результата нет почему-то...
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1033
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 300
hardware I/O VIP

Re: UNrar

Postby Vitekkz88 on 19 Feb 2015, 14:05

Ну и ладно! Не особо то и хотелось :crazy: Главное - автору помогло)
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1033
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 300
hardware I/O VIP

Re: UNrar

Postby dadreamer on 19 Feb 2015, 15:06

Vitekkz88 wrote:Ага, поставил пробел.
Консоль выскакивает и скрывается. Но результата нет почему-то...

Попробуйте вот в этом только что состряпанном :vi: :
Attachments
UnRAR.vi
LV2011
(49.05 KiB) Downloaded 102 times
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: UNrar

Postby Vitekkz88 on 19 Feb 2015, 15:14

Попробуйте вот в этом только что состряпанном

: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:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1033
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 300
hardware I/O VIP

Re: UNrar

Postby dadreamer on 19 Feb 2015, 15:15

Vitekkz88 wrote:C:\Users\Lemz-T\Desktop\q\qw.rar is not RAR archive

Старая версия архиватора? Или самого UnRAR'а? А может некорректно поставился?.. Я могу только гадать )
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: UNrar

Postby Vitekkz88 on 19 Feb 2015, 15:19

Старая версия архиватора? Или самого UnRAR'а? А может некорректно поставился?.. Я могу только гадать )Я могу только гадать )

Вот уж извините, доколь проблем не знали)
Думаю архиватор по-свежее всё исправит. Может еще кто проверит?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1033
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 300
hardware I/O VIP

Re: UNrar

Postby dadreamer on 19 Feb 2015, 15:25

У меня сейчас версия 5.21 бета 1. UnRAR в консоли ту же версию выдаёт.
2015-02-19_17-21-34.jpg

Буду дома, там еще проверю, на более старой версии.
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: UNrar

Postby Super Star on 19 Feb 2015, 15:46

5.21 заработало, из-за того что каждый параметр в кавычках передавался
я люблю свою работу.... Я приду сюда в субботу ...
User avatar
Super Star
adviser
adviser
 
Posts: 228
Joined: 07 Feb 2013, 08:37
LabVIEW Version: 2011
Karma: 35

Re: UNrar

Postby dadreamer on 19 Feb 2015, 18:01

 
Attachments
2015-02-19_19-57-25.jpg
2015-02-19_19-57-25.jpg (117.54 KiB) Viewed 8152 times
2015-02-19_19-59-38.jpg
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: UNrar

Postby Sergey Ivanov on 20 Feb 2015, 22:03

dadreamer wrote:А вообще по хорошему путь к WinRAR'у нужно получать через реестр (HKLM\Software\WinRAR\exe64)


Сделал получение пути через реестр, но он отличается от указанного вами. Почему ?
Снимок.JPG


unrar.vi
(20.75 KiB) Downloaded 110 times
Добро пожаловать на http://rk-stud.ru/
User avatar
Sergey Ivanov
expert
expert
 
Posts: 1193
Joined: 01 Mar 2009, 20:54
Location: Санкт-Петербург, Кронштадт
Medals: 5
Activity (1) Professionalism (1) Gold (2) Автор (1)
LabVIEW Version: 2013
Karma: 117
hardware VIP

Re: UNrar

Postby dadreamer on 20 Feb 2015, 22:22

Sergey Ivanov wrote:Почему ?

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

Так-то, конечно, можно было бы взять unrar.dll и распаковать что угодно, распространяя её вместе с вашей программой. Тем более что либа свободная, да ещё с нормальной документацией и кучей примеров. Но право что-то так возиться лень, извините. :crazy: Может, как-нибудь позже посмотрю.
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: UNrar

Postby dadreamer on 21 Feb 2015, 21:40

На основе примеров из 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 KiB) Downloaded 119 times

Исходник Callback (D7):
Code: Select all
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.
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Previous

Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 2 guests

cron