Главная страница
    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.071 c
15-1347556136
Dimka Maslov
2012-09-13 21:08
2013.03.22
Обработка исключений


2-1342464470
vlk32
2012-07-16 22:47
2013.03.22
Проверка корректности ссылки на объект


15-1339690335
alexdn
2012-06-14 20:12
2013.03.22
asp.net


15-1348161804
ClawClaw
2012-09-20 21:23
2013.03.22
Глюк в Сапёре? (Windows 7)


15-1344430720
AV
2012-08-08 16:58
2013.03.22
is not null VS not is null. Мини холи-вар?





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