Главная страница
    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.062 c
15-1349898544
RTF
2012-10-10 23:49
2013.03.22
Протестить флешку


15-1351542602
Юрий
2012-10-30 00:30
2013.03.22
С днем рождения ! 30 октября 2012 вторник


15-1329078602
Юрий
2012-02-13 00:30
2013.03.22
С днем рождения ! 13 февраля 2012 понедельник


15-1329492368
поверфулл
2012-02-17 19:26
2013.03.22
Подскажите путевый учебник по HTML


2-1342770409
Andvitar
2012-07-20 11:46
2013.03.22
Програмное нажатие на Button 1 при изменении буфера обмена





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