Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

У меня чета никак не получается пробовал чего знал по архивам   Найти похожие ветки 

 
Xman   (2002-10-22 11:38) [0]

У меня чета никак не получается пробовал чего знал по архивам. Еще вчера задал вопрос но не получил стоишего ответа.
Мне нужно получит список файлов находяшегося в архиве, а архив в arj сделан. в командной строке это так делается arj l имя файла >имя файла куда нужно написат информацию например arj l doc.arj >temp.txt в сомандной строке это выполняется но в Делфи никак ни хочет, выдает ошибку Found 1 error(s) немогу сам решит эту задачу. Может поможети Мастера!
А код в делфи такой
WinExec("arj l rustam.arj >temp.txt",SW_SHOW);
или
CreateProcess(pchar("c:\Util\arj.exe"),pchar(arj l rustam.arj >temp.txt),nil,nil,false,0,nil,nil,si,pi);
Я жду помощиииииииииииииии.


 
MegaBass ©   (2002-10-22 11:52) [1]

Я думаю что переадресация не работает и потому надо запускать под >=W2000 CMD.EXE с параметрами "arj l rustam.arj >temp.txt" для ентого подойдет ShellExecute


 
turusov ©   (2002-10-22 12:08) [2]

Используй указывая полные пути и соблюдай (не пропускай) " и проделы)
ShellExecute(handle, Nil, PChar( "c:\drive\arj.exe"), pchar( "l c:\drive\rustam.arj > c:\drive\temp.txt"), Nil, SW_SHOWNORMAL);


 
turusov ©   (2002-10-22 12:10) [3]

У меня D5 и W2000


 
Xman   (2002-10-22 12:56) [4]

ShellExecute(handle, Nil, PChar("c:\drive\arj.exe"), pchar("l c:\drive\rustam.arj > c:\drive\temp.txt"), Nil, SW_SHOWNORMAL);

Пробовал он вернул ошибку
Processing archive: c:\drive\rustam.arj
archive created: 2002-10-22 12:08:22, modified: 2002-10-22 12:08:34
0 file(s)
Found 1 error(s)

У меня это в 98 должен работать!
К сожелению не получается....
Еще есть подсказки


 
Xman   (2002-10-22 13:53) [5]

Жду ответов с нетерпением


 
Андрей Прокофьев ©   (2002-10-22 14:17) [6]

Попробуйте так:
У меня сработало
ShellExecute(handle, Nil, PChar("C:\COMMAND.COM"),
pchar("/C c:\tools\arj.exe l c:\tools\xxx.arj > c:\tools\temp.txt"), Nil, SW_SHOWNORMAL);


 
Smithson ©   (2002-10-22 14:54) [7]

можно без /C


 
Андрей Прокофьев ©   (2002-10-22 14:57) [8]


> Smithson © (22.10.02 14:54)
> можно без /C

Попробуйте :))


 
Xman   (2002-10-22 15:00) [9]

Обясни как это работает я не понял чото открывается две окошки ДОС в одном работает и пишет в файл а втором собшает ошибку. Я много экспериментировал эту ошибку выдаёт кагда пишеш команду "l" с ">имя файла" то есть куда будет писат содиржимое архива мне без этой части команда l не нужен. Спосиба за ответь!
А ты не знаеш как проше работать с содиржимом архива как его записат в файл?


 
Андрей Прокофьев ©   (2002-10-22 15:07) [10]

Черт с ними, с окошками! Файл-то создается?

У меня все работает, а вот так вообще без окошек

ShellExecute(handle, Nil, PChar("C:\COMMAND.COM"),
pchar("/C c:\tools\arj.exe l c:\tools\xxx.arj > c:\tools\temp.txt"), Nil,
SW_SHOWMINNOACTIVE);

и файл создается.
Какие еще у тебя окошки?



 
Xman   (2002-10-22 15:45) [11]

Все получилась.
А как произволно можно дат имия архив файла и имия текст файла и чтобы они были в других местах?
Напремер у меня приходяший почта все в архивах в виде (имя) (0233fd0.098 , (0245hg0.897 и текст сохранялсабы в c:\arxiv\(0233.txt , c:\arxiv\(0245.txt Я сделал вот так
procedure Tarqatish;
Var F: TSearchRec;
FileHandle,mmm,done: integer;
begin
chdir(form2.edWorkDir.Text);
DateTimeToString(d,"dd-mm-yy",date);
done := FindFirst("*.*",faArchive,F);
while done = 0 do
begin
ShellExecute(Application.Handle, Nil, PChar("C:\COMMAND.COM"),pchar("/C c:\pochtash\arj l "+F.Name+" > "+form2.edWorkDir.Text+"kvit\temp.txt"), Nil, SW_SHOWNORMAL);
.......
чета дал ошибку


 
Smithson ©   (2002-10-22 15:59) [12]

while done = 0 do Это сильно...

А насчет ошибки. Ты команду эту просто в командной строке введи и увидишь, что при перенаправлении вывода путь должне существовать


 
Xman   (2002-10-22 16:28) [13]

В командной строке нармално работает
c:\pochtash\arj.exe l c:\pochta\worktemp\(0452ha0.115 >c:\pochta\worktemp\kvit\temp.txt


 
Андрей Прокофьев ©   (2002-10-22 16:31) [14]

Что за ошибка? (далее непечатно)
Может, слеша нет
begin
ShellExecute(Application.Handle, Nil, PChar("C:\COMMAND.COM"),pchar("/C c:\pochtash\arj l "+F.Name+" > "+form2.edWorkDir.Text+" \kvit\temp.txt"), Nil, SW_SHOWNORMAL);


 
Xman   (2002-10-22 16:49) [15]

Слеш есть


 
Xman   (2002-10-23 08:48) [16]

Может здесь много переменных?


 
Sectey ©   (2002-10-23 09:44) [17]

Дам дельный совет точнее, просто шикарный</И>.
У меня была подобная проблема с Ha. Класный архиватор на очень хитрый. Как говарится все элементарное просто, ну или почти.
Принцип по которому я сейчас работаю со ВСЕМИ подобными архивами, которые под DOS.
1. Создаеш новый процес.
2. В процесе запускаеш через CreateProcess то, что тебе нужно.
ХИТРОСТЬ:
3. В при создании нового процеса (CreateProcess), есть такие переменные ВХОДНОЙ и ВЫХОДНОЙ поток.
4. Ну вот открываешь свой поток (Файл, память ну что взбредет в голову) обозначаешь его выходным, перед запуском интересующей программы.
5. И вперет и с песней. Дальше дело только за анализом выданной информации.
Так можно работать со всеми консольными архиваторами.


 
Севостьянов Игорь ©   (2002-10-23 11:27) [18]

А может лучше воспользоваться компонентами ?
Я вот использую ZipTV - он разные архиваторы читает - в том числе и arj и HA
Очень удобно...
Начал писать DLL для разархивирования архива независимо от формата - этакий MultyUnArchive
Практически готов:
1. Там затык небольшой - ZipTV for D5 платный - выводит об этом иногда сообщение, не более - не ломал пока еще и
2. ZipTV есть полная версия, но он не понимает при разархивировании arj with encrypt
3. ZipTV 5 не совсем корректно работает с многотомными архивами
4. Завершить работу некогда, т.к. была необходимость в этом на предыдущей работе - сейчас пока нет на это времени


 
Севостьянов Игорь ©   (2002-10-23 11:29) [19]

пункт 2. имелось ввиду для Delphi 4


 
Yegor Derevenets   (2002-10-23 17:09) [20]

По хорошему надо брать значение переменной %ComSpec%. Ему говорить "/C Arj <Parameters> > Out_File". Хотя бы потому, что C:\Command.com есть не у всех, да и не всегда есть Command.com (NT - Cmd). Как предлагал Sectey тоже можно, но это сложнее. Если не через Cmd, то ">" и "Out_File" воспринимаются как параметры. У меня тоже когда-то так надо было сделать.


 
Xman   (2002-10-25 13:38) [21]

>>Yegor Derevenets (23.10.02 17:09)
>> По хорошему надо брать значение переменной %ComSpec%. Ему >>говорить "/C Arj <Parameters> > Out_File". Хотя бы потому, что >>C:\Command.com есть не у всех, да и не всегда есть Command.com >>(NT - Cmd). Как предлагал Sectey тоже можно, но это сложнее. >>Если не через Cmd, то ">" и "Out_File" воспринимаются как >>параметры. У меня тоже когда-то так надо было сделать.

И в правду у меня это прога должна была работат и в 98 и в 2000 но 2000 в нем нет C:\Command.com . Как можно это исправит7 я для них прседуру отделно написал. но это увиличивает код. Е если ты столкнулса с этим и работал архивами(Arj параметры+ключи) дай какуюта инфу(FAQ,код, статя) напиши на мыло.



Страницы: 1 вся ветка

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.027 c
4-11571
PaRL
2002-09-21 14:59
2002.11.04
Исходники VCL


3-11041
Sergeyy
2002-10-14 12:10
2002.11.04
Обход связанных 2-х таблиц - с шапкой и детализацией


1-11315
Сатир
2002-10-22 21:05
2002.11.04
IDE Delphi


14-11403
Arbin
2002-10-02 11:00
2002.11.04
Анализ текста - общение с компом


14-11451
sayjay
2002-10-15 21:29
2002.11.04
Хочу сдалать TReplaceDialog много функциональным помогите!!!