I'm having trouble unzipping files from a zip file into memory. I first get a count of the available files I wish to extract from the zip then I loop through the number of reports, unzipping them to memory and then checking the content of the file. The first file in the loop works fine but when I attempt to do the same procedure on the next report I get the following error message "OLE exception error: Exception code c00000005. OLE object may be corrupt". I put some sample code below to show you what I'm trying to do. Any help is greatly appreciated.
Sample Code:
m.zip_list = ";"
ThisForm.Ole_unzip.zipfile = bck_path + m.bck_file
ThisForm.Ole_unzip.filespec = file2get
ThisForm.Ole_unzip.noDirectoryItemsFlag = .T.
ThisForm.Ole_unzip.nodirectoryNamesFlag = .T.
ThisForm.Ole_unzip.recurseFlag = .T.
ThisForm.Ole_unzip.actiondz = 3
zip_cnt = ThisForm.Ole_unzip.ReturnCount
FOR zz=1 TO zip_cnt
ThisForm.Ole_unzip.actiondz = 4
m.zip_file = (ThisForm.Ole_unzip.zi_FileName
m.zip_list = m.zip_list + m.zip_file + ";"
ENDFOR
unzip_cnt = OCCURS(";", m.zip_list)-1
FOR zz=1 TO unzip_cnt
m.zip_file = STREXTRACT(m.zip_list, ";", ";", zz)
ThisForm.Ole_unzip.Refresh
ThisForm.Ole_unzip.zipfile = bck_path + m.bck_file
ThisForm.Ole_unzip.filespec = m.zip_file
ThisForm.Ole_unzip.UnZIPString = ""
ThisForm.Ole_unzip.UnZIPStringSize = 100000000
ThisForm.Ole_unzip.UnZIPStringOffset = 0
_VFP.AUTOYIELD = .F.
ThisForm.Ole_unzip.QuietFlag = .T.
ThisForm.Ole_unzip.AllQuiet = .T.
ThisForm.Ole_unzip.OverwriteFlag = .T.
ThisForm.Ole_unzip.noDirectoryItemsFlag = .T.
ThisForm.Ole_unzip.nodirectoryNamesFlag = .T.
ThisForm.Ole_unzip.recurseFlag = .T.
ThisForm.Ole_unzip.actiondz = 9
_VFP.AUTOYIELD = .T.
m.chk_file = ThisForm.Ole_unzip.UnZIPString
IF ATCC(m.srch_item, m.chk_file) > 0
COPY FILE(m.work_dir + m.zip_file) TO ALLTRIM(m.rvw_dir + m.review_name)
INSERT INTO C_RESULTS FROM MEMVAR
ENDIF
ENDFOR