Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2014, 23:43   #21
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Serge_Bliznykov, Вот нашел один из примеров работы с rar.exe

Цитата:
//pack
rar.exe -m5 -hpQZIPacker -r -y a "c:\archive.zip" "c:\new skin\"

//unpack
rar.exe -hpQZIPacker -y x "c:\archive.zip" "c:\12314114\"

//unpack 1 file
rar.exe -hpQZIPacker -y e "c:\archive.zip" "new skin\zmClose.bmp" "c:\nEW\"

//add comment
rar.exe -hpQZIPacker -z"cabrun.pas" c "c:\archive.zip"

//save comment
rar.exe -hpQZIPacker cw "c:\archive.zip" "c:\1.txt"
ZuBy вне форума Ответить с цитированием
Старый 30.01.2014, 23:44   #22
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
раз уж тут речь зашла про кодировки, то у меня следующий вопрос. Есть некая программа, создающая файл методами
Поместить в начало файла информацию о кодировке или, как вариант, в Total Commander по F3 есть возможности переключения кодировки при просмотре
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.01.2014, 23:46   #23
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Читать понятно как. Я спрашиваю как записать в UTF-8. То есть чтоб мне потом не приходилось открывать файл блокнотом, дальше сохранить как, и менять кодировку на UTF-8
doktor255 вне форума Ответить с цитированием
Старый 30.01.2014, 23:46   #24
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Моя. Как указать при записи кодировку?
Код:
function StrAnsiToUtf(aStr: String): String;
var
  Encoding, aEncoding: TEncoding;
  Buffer: TBytes;
begin
  Encoding := TEncoding.UTF8;
  aEncoding := TEncoding.Default;
  Buffer := Encoding.GetBytes(aStr);
  TEncoding.Convert(aEncoding, Encoding, Buffer);
  Result := aEncoding.GetString(Buffer);
end;
Каждую строку перед записью в файл, прогнать через StrAnsiToUtf
ZuBy вне форума Ответить с цитированием
Старый 30.01.2014, 23:51   #25
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Всё бы хорошо, но у меня не строки, а массивы байтов.
doktor255 вне форума Ответить с цитированием
Старый 31.01.2014, 00:11   #26
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

StringOf в строку
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.01.2014, 00:20   #27
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Не мой случай.
Код:
[dcc32 Error] Unit1.pas(62): E2010 Incompatible types: 'System.TArray<System.Byte>' and 'array[0..2] of Byte'
doktor255 вне форума Ответить с цитированием
Старый 31.01.2014, 01:21   #28
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

В общем решил я эту головоломку так:

1) Обозначил параметр -u
и завел переменную
Код:
UnicodeSupport := false;
2) Если он определяется в параметрах запуска, то переменная
Код:
UnicodeSupport := true;
3) Добавление файлов в список соответсвенно выглядит так
Код:
  FilesList.Add(StrEncode(ParamStr(i), UnicodeSupport));
Код:
function StrEncode(aStr: string; Reverse: boolean): string;
var
  Encoding, aEncoding: TEncoding;
  Buffer: TBytes;
begin
  aEncoding := TEncoding.Default;
  Encoding := TEncoding.GetEncoding(1251);
  if Reverse then
    Encoding := TEncoding.GetEncoding(866);
  Buffer := Encoding.GetBytes(aStr);
  TEncoding.Convert(aEncoding, Encoding, Buffer);
  Result := aEncoding.GetString(Buffer);
end;
Все отлично работает, по крайней мере на Win7
ZuBy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
консольная программа closeAll Помощь студентам 2 24.05.2013 19:37
Консольная программа/C++ ПроГрамм Помощь студентам 3 07.11.2012 10:51
Проверить висит ли консольная программа.. Человек_Борща Общие вопросы Delphi 2 25.12.2010 13:24
Консольная программа под Linux amdbodia Общие вопросы C/C++ 8 14.06.2009 20:23
Консольная программа на Си: ввод, вывод, сортировка, сохранение в текстовый файл. zerg Помощь студентам 8 16.11.2007 12:57