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

Вниз

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

Наверх




Память: 0.46 MB
Время: 0.054 c
15-1347654603
Юрий
2012-09-15 00:30
2013.03.22
С днем рождения ! 15 сентября 2012 суббота


15-1329288950
AV
2012-02-15 10:55
2013.03.22
Записать в файл сразу, аналог flush pascal


15-1333448205
Inovet
2012-04-03 14:16
2013.03.22
Бывают ли дефектные пиксели на E-Ink?


2-1335502666
leklerk
2012-04-27 08:57
2013.03.22
Когда нужно использовать CoInitialize?


2-1344332083
ramster
2012-08-07 13:34
2013.03.22
юникод DelphiXE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский