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

Вниз

TZipFile   Найти похожие ветки 

 
novichek   (2012-04-22 00:02) [0]

делаю так:

function UnZipFile(sourceFile, destPath: String): Boolean;
var
 ZipFile: TZipFile;
begin
  ZipFile := TZipFile.Create;
  try
    if ZipFile.IsValid(sourceFile) then begin
       ZipFile.ExtractZipFile(sourceFile, destPath);
       ZipFile.Close;
       result:= true;
    end;
  finally
    ZipFile.Free;
  end;
end;

при распаковке файлов, имена которых в кириллице, получаю иероглифы.. или неверно заголовок zip файла читает или ещё что никак не пойму...


 
Cobalt ©   (2012-04-22 00:35) [1]

Вариант 1) получи последнюю версию компонента.
Вариант 2) оттрассируй по исходникам и найди где некорректно преобразуется имя файла.

Ну и, наконец, какая версия компонента и какая версия Дельфи? Ты ж не оплатил работу телепаторов.


 
novichek   (2012-04-22 00:38) [2]

пробую на DelphiXE2
подскажие как можно внести изменения в system.zip.pas что бы компилятор их подхватил?
а то dcu сразу подключает..
не могу вообще понять, в lib\win32\debug удаляю этот dcu - один фиг компилит без моего изменного pas. где туплю?


 
novichek   (2012-04-22 00:39) [3]

да, это встроенный компонент в delphiXE2


 
novichek   (2012-04-22 00:41) [4]

хочу поковырять тут:

procedure TZipFile.ReadCentralHeader;
...

   if LHeader.FileNameLength > 0 then
   begin
     SetLength(LHeader.FileName, LHeader.FileNameLength);
     if (LHeader.Flag and (1 SHL 11)) <> 0 then
       SetCodepage(LHeader.FileName, 65001, False)
     else
//        SetCodepage(LHeader.FileName, 437, False);  >> было это
       SetCodepage(LHeader.FileName, 866, False);
     VerifyRead(FStream, LHeader.FileName[1], LHeader.FileNameLength);
   end;


 
Ega23 ©   (2012-04-22 00:48) [5]


> function UnZipFile(sourceFile, destPath: String): Boolean;


function UnZipFile(sourceFile, destPath: AnsiString): Boolean;
?


 
novichek   (2012-04-22 00:49) [6]

о, переименовал system.zip.pas, подключил модуль к проекту, изменил на SetCodepage(LHeader.FileName, 866, False); и всё заработало..
странно что не сделали поддержку кодовой страницы..


 
novichek   (2012-04-22 00:49) [7]

Ega23 ©, да тут не в имени архива проблема а проблема то что внутри..


 
Германн ©   (2012-04-22 01:47) [8]


> Ega23 ©, да тут не в имени архива проблема а проблема то
> что внутри

Эт точно. Проблема в мозгах. :)


 
Плохиш ©   (2012-04-23 11:02) [9]

Мне описание у разработчика понравилось
http://docwiki.embarcadero.com/VCL/XE2/en/System.Zip.TZipFile



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

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

Наверх




Память: 0.48 MB
Время: 0.05 c
15-1338455782
Варрра
2012-05-31 13:16
2013.03.22
Что означает ваш ник?


15-1352320203
Юрий
2012-11-08 00:30
2013.03.22
С днем рождения ! 8 ноября 2012 четверг


15-1341814491
Очень Злой
2012-07-09 10:14
2013.03.22
Не могу скачать флешплейер


2-1338127419
Глеб
2012-05-27 18:03
2013.03.22
Перенос данных из дельфи в хмл


15-1344717005
Юрий
2012-08-12 00:30
2013.03.22
С днем рождения ! 12 августа 2012 воскресенье