Получить список файлов в zip архиве

VladimirVVP
Дата: 11.10.2019 12:05:56
мне нужно получить список файлов в zip архиве

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
OpenDialog: TOpenDialog;
ArchiveFile: String;
zip:TZipFile;
begin
  zip:=TZipFile.Create;
  OpenDialog := TOpenDialog.Create(Form1);
  if OpenDialog.Execute then
     begin
        Form1.Edit1.Text:=OpenDialog.FileName;
        try
         zip.Open(OpenDialog.FileName,zmRead);
         for ArchiveFile in zip.FileNames do
          Form1.Memo1.Lines.Add(ArchiveFile);
         zip.Close;
         finally
        zip.Free;
       end;
     end;
end;


вот тут у меня не понятки
for ArchiveFile in zip.FileNames do

For in do - вроди как цикл для масива, но на нем я и получаю ошибку..
помогите справиться ..
Зарание спасибо!
wadman
Дата: 11.10.2019 12:25:13
VladimirVVP
но на нем я и получаю ошибку..

Так и пишет: ошибка?
VladimirVVP
Дата: 11.10.2019 12:49:59
wadman,
goldmi45
Дата: 11.10.2019 12:54:45
VladimirVVP
вот тут у меня не понятки
for ArchiveFile in zip.FileNames do


А разве for in есть в delphi?
goldmi45
Дата: 11.10.2019 13:04:41
посмотрел, есть для массивов. Тогда вопрос TArray<string> является массивом?
_Vasilisk_
Дата: 11.10.2019 13:44:24
VladimirVVP,

Какая версия Delphi?

goldmi45
есть для массивов
Он для любого класса существует. Если правильно описать итератор
alekcvp
Дата: 11.10.2019 14:39:01
zip.FileNames -> массив и индексное свойство - это разные вещи.
Если нет итератора для этого свойства, то ничего не получится.
Можно попробовать: for ArchiveFile in zip do ... (я этим классом никогда не пользовался, так что хз что там есть).
white_nigger
Дата: 11.10.2019 15:30:33
goldmi45
А разве for in есть в delphi?
В старых нет, в новых есть...