Dilwyn Jones wrote:

>I'm trying (and failing) to extract a list of files in a zip archive
>to a pipe or file.
>
>This DOES work as long as the output #channel is to a SCR or CON
>channel:
>
> EW UNZIP,#channel;'-l ram1_test_zip'
>
>If #channel is open to a pipe or file, it doesn't work:
>
>OPEN_NEW #3,ram1_extract_dat
>EX UNZIP,#3;'-l ram1_test_zip'
>CLOSE #3
>  
>
EX UNZIP;'-l >ram1_extract_dat ram1_test_zip' does the same - see below.

Also >>ram1_extract_zip will ADD the list to the file. 
(>ram1_extract_zip will overwrite the file with the new data.

>(the length of file ram1_extract_dat is always 0 after this example,
>showing the data went somewhere but not to the channel specified).
>
>This does seem to work, but it is so long-winded there must be a
>better and simpler way:
>
>100 REMark send zip listing output to a 10KB pipe
>110 OPEN #4,pipe_10240
>120 REMark Q_PIPE is a QLiberator command, like CONNECT in Turbo TK
>130 Q_PIPE #4 TO #3 : REMark input from same pipe via #3
>140 EW win1_exec_unzip,ram1_example_zip,#4;'-Z -1 ram1_example_zip'
>150 CLOSE #4 : REMark ensure PIPE gives EOF
>160 REPeat loop
>170   IF EOF(#3) THEN EXIT loop
>180   INPUT #3,t$
>190   PRINT t$
>200 END REPeat loop
>210 CLOSE #3
>
>In line 140, my copy of UNZIP is in WIN1_EXEC_ directory.
>Output of zip file ram1_example_zip is sent to S*BASIC channel #4,
>which is to a 10KB pipe.
>The other end of the pipe is open for input via #3.
>The -Z -1 bit in the quotes is: -z=ZipInfo mode to list information 
>about a zip archive and -1=list filenames only.
>
>Not quite sure why example_zip has to be referred to twice, although
>the first reference is setting up where data is piped from and to by
>unzip. It certainly only seems to work if referred to both in the EW 
>command and the parameter string.
>
>What I'm trying to do is to get a listing of files in a ZIP file
>without having to see UNZIP appear on the screen.
>
>Help!
>
>  
>
I am constantly doing looking at the contents of zipped files. What I do is:

    EX unzip;'-l >ram1_file flp1_zipped.zip'

so that the contents go to "ram1_file" from the (probably) MSDOS floppy 
containing "zipped.zip".

But perhaps you don't want that. The unzipping of contents ends with the 
message:

     "Press a key"

and you may not want that.

George
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to