Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Unzip to Mem using Dynazip ActiveX Control
Message
 
 
À
03/06/2008 15:04:41
Information générale
Forum:
Visual FoxPro
Catégorie:
Contrôles ActiveX en VFP
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows 2000 Server
Divers
Thread ID:
01321133
Message ID:
01321557
Vues:
17
What line do you get error on?
The string size in VFP is limited to 16,777,184 characters. You may try to set buffer size to that or smaller value.
	ThisForm.Ole_unzip.UnZIPStringSize = 16,777,184 
>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 && UNZIP_COUNTNAMEDZIPMEMBERS

zip_cnt = ThisForm.Ole_unzip.ReturnCount
FOR zz=1 TO zip_cnt
	ThisForm.Ole_unzip.actiondz = 4 && UNZIP_GETNEXTNAMEDZIPINFO

	m.zip_file = (ThisForm.Ole_unzip.zi_FileName

	m.zip_list = m.zip_list + m.zip_file + ";"
ENDFOR
&& ===== GET FILE COUNT FROM ZIP ===== &&


&& ===== SEARCH FILES FOR SEARCH CRITERIA ===== &&
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 && UNZIP_FILETOMEM
	_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
&& ===== SEARCH FILES FOR SEARCH CRITERIA ===== &&
>
--sb--
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform