Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Архивация arj 
:(
    Опции темы
Aндрей
Дата 13.5.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.2.2009

Репутация: нет
Всего: нет



Помогите пожалуста разобраться с архивированием arj.
Вообщем я создаю bat файл с кодом и запускаю его.
Все вроде работает, единственное, если попытаться сохранить архив на рабочем столе или в моих документах, то выдает ошибку. Можно ли ее исправить?

Код

function StrToOem(const AnsiStr: string): string;
begin
  SetLength(Result, Length(AnsiStr));
  if Length(Result) <>0 then
    CharToOem(PChar(AnsiStr), PChar(Result));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 t:TextFile;
 i:integer;
Begin
  if Edit1.Text='' then
 begin
  ShowMessage(Укажите путь к данным!');
    Abort;
      end
  else
      Begin
  // Открытие текстового файла для записи
    AssignFile(t,'c:\1234.bat');
      ReWrite(t);
            // Записть в файл

      //С этими строчками вроде как работает, но если выбрать что-нибуть на другм диске (не с ), то он добавляет в архив сам arj..
     Writeln(t,extractFileDrive(edit1.Text));
     Writeln(t,'cd '+'"'+StrToOem(Edit1.Text)+'"');
     Writeln(t,StrToOem(ExtractFileDir(Application.exename)+'\arj\arj a -r'+' '+'"'+Edit2.Text)+'"');


   //Можно попробовать вот этой строчкой, но тогда он создает пустые папки, не понимает ключ -r, и почему-то не может найти путь с русским именем (хотя вроде как есть StrToOem)..
   //Writeln(t,StrToOem(ExtractFileDir(Application.exename)+'\arj\arj a '+' '+  '"' + Edit2.Text + '"' +' '+ '"' + Edit1.Text + '"'));


      Writeln(t,'Pause'+' ');
      Writeln(t,'del "c:\1234.bat"'+' ');
    
           // Закрытие файла
       CloseFile(t);
            // Запуск файла
       WinExec('C:\1234.bat', 1);

  end;

  if CheckBox1.Checked=true then
  begin
  ShellExecute(Handle, nil, PAnsiChar(Form2.Edit1.Text), nil, nil, SW_SHOW);
 end;
end;


Вот сама моя программа.
http://www.filehoster.ru/files/cs3293
Ее надо извлечь из архива и скинуть на диск с.
Если кто-нибудь сможет настроить, чтобы нормально работало, пишите, очень нужна ваша помощь.

Это сообщение отредактировал(а) Aндрей - 13.5.2009, 21:35

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  1.JPG 49,11 Kb
PM MAIL   Вверх
Bose
Дата 14.5.2009, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



Цитата(Aндрей @  13.5.2009,  15:14 Найти цитируемый пост)
Все вроде работает, единственное, если попытаться сохранить архив на рабочем столе или в моих документах, то выдает ошибку. Можно ли ее исправить?

просто батник запутить попробуй.
PM MAIL WWW Skype   Вверх
Mechanic
Дата 14.5.2009, 04:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

Репутация: 6
Всего: 7



А та же команда, запущенная просто из строки, без bat файла, работает?

Судя по картинке, сам ARJ32 неверно понимает кодировку переданной строки.
Так видим, что строка на входе ARJ32 отображается корректно, но уже сама программа выдает ее крокозябрами. Причем слова "Создается архив" отображаются корректно, но сам путь - крокозябрами.
Диагноз: ARJ32 не понимает кириллицу. Дело не в программе, но в самом пакере. :-(
Можно поиграть кодировками (например, отправить ему на вход не в 866, но прямо в 1251 cp).  smile 

--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
AntonN
Дата 14.5.2009, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.8.2006

Репутация: 3
Всего: 18



да, я ему тоже самое говорил smile


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0402 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.