Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.01 c
1-11189
CrowD
2002-10-24 17:34
2002.11.04
Как из процедуры обратится к классу?


1-11226
FireWorks
2002-10-24 15:10
2002.11.04
Rave технология и как с ней работать


7-11498
nick_sniper
2002-08-29 15:11
2002.11.04
Как перезагрузить комп с нужного диска.


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


3-11052
ACR
2002-10-15 02:00
2002.11.04
ACCESS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский