memberread.html

来自「perl教程」· HTML 代码 · 共 179 行

HTML
179
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../../displayToc.js"></script>
<script language="JavaScript" src="../../../tocParas.js"></script>
<script language="JavaScript" src="../../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../../scineplex.css">
<title>Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files.</title>
<link rel="stylesheet" href="../../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',3);</script>
<h1><a>Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files.</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#methods">METHODS</a></li>
	<li><a href="#author">AUTHOR</a></li>
	<li><a href="#copyright">COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Archive::Zip::MemberRead - A wrapper that lets you read Zip archive members as if they were files.</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
  <span class="keyword">use</span> <span class="variable">Archive::Zip</span><span class="operator">;</span>
  <span class="keyword">use</span> <span class="variable">Archive::Zip::MemberRead</span><span class="operator">;</span>
  <span class="variable">$zip</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Archive::Zip</span><span class="operator">(</span><span class="string">"file.zip"</span><span class="operator">);</span>
  <span class="variable">$fh</span>  <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Archive::Zip::MemberRead</span><span class="operator">(</span><span class="variable">$zip</span><span class="operator">,</span> <span class="string">"subdir/abc.txt"</span><span class="operator">);</span>
  <span class="keyword">while</span> <span class="operator">(</span><span class="keyword">defined</span><span class="operator">(</span><span class="variable">$line</span> <span class="operator">=</span> <span class="variable">$fh</span><span class="operator">-&gt;</span><span class="variable">getline</span><span class="operator">()))</span>
  <span class="operator">{</span>
      <span class="keyword">print</span> <span class="variable">$fh</span><span class="operator">-&gt;</span><span class="variable">input_line_number</span> <span class="operator">.</span> <span class="string">"#: $line\n"</span><span class="operator">;</span>
  <span class="operator">}</span>
</pre>
<pre>
  <span class="variable">$read</span> <span class="operator">=</span> <span class="variable">$fh</span><span class="operator">-&gt;</span><span class="keyword">read</span><span class="operator">(</span><span class="variable">$buffer</span><span class="operator">,</span> <span class="number">32</span><span class="operator">*</span><span class="number">1024</span><span class="operator">);</span>
  <span class="keyword">print</span> <span class="string">"Read $read bytes as :$buffer:\n"</span><span class="operator">;</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>The Archive::Zip::MemberRead module lets you read Zip archive member data
just like you read data from files.</p>
<p>
</p>
<hr />
<h1><a name="methods">METHODS</a></h1>
<dl>
<dt><strong><a name="item_readfilehandle">Archive::Zip::Member::readFileHandle()</a></strong>

<dd>
<p>You can get a <code>Archive::Zip::MemberRead</code> from an archive member by
calling <a href="#item_readfilehandle"><code>readFileHandle()</code></a>:</p>
</dd>
<dd>
<pre>
  <span class="keyword">my</span> <span class="variable">$member</span> <span class="operator">=</span> <span class="variable">$zip</span><span class="operator">-&gt;</span><span class="variable">memberNamed</span><span class="operator">(</span><span class="string">'abc/def.c'</span><span class="operator">);</span>
  <span class="keyword">my</span> <span class="variable">$fh</span> <span class="operator">=</span> <span class="variable">$member</span><span class="operator">-&gt;</span><span class="variable">readFileHandle</span><span class="operator">();</span>
  <span class="keyword">while</span> <span class="operator">(</span><span class="keyword">defined</span><span class="operator">(</span><span class="variable">$line</span> <span class="operator">=</span> <span class="variable">$fh</span><span class="operator">-&gt;</span><span class="variable">getline</span><span class="operator">()))</span>
  <span class="operator">{</span>
          <span class="comment"># ...</span>
  <span class="operator">}</span>
  <span class="variable">$fh</span><span class="operator">-&gt;</span><span class="keyword">close</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_new">Archive::Zip::MemberRead-&gt;new($zip, $fileName)</a></strong>

<dt><strong>Archive::Zip::MemberRead-&gt;new($zip, $member)</strong>

<dt><strong>Archive::Zip::MemberRead-&gt;<code>new($member)</code></strong>

<dd>
<p>Construct a new Archive::Zip::MemberRead on the specified member.</p>
</dd>
<dd>
<pre>
  my $fh = Archive::Zip::MemberRead-&gt;new($zip, 'fred.c')</pre>
</dd>
</li>
<dt><strong><a name="item_rewind"><code>rewind()</code></a></strong>

<dd>
<p>Rewinds an <code>Archive::Zip::MemberRead</code> so that you can read from it again
starting at the beginning.</p>
</dd>
</li>
<dt><strong><a name="item_input_line_number"><code>input_line_number()</code></a></strong>

<dd>
<p>Returns the current line number, but only if you're using <a href="#item_getline"><code>getline()</code></a>.
Using <a href="#item_read"><code>read()</code></a> will not update the line number.</p>
</dd>
</li>
<dt><strong><a name="item_close"><code>close()</code></a></strong>

<dd>
<p>Closes the given file handle.</p>
</dd>
</li>
<dt><strong><a name="item_buffer_size">buffer_size([ $size ])</a></strong>

<dd>
<p>Gets or sets the buffer size used for reads.
Default is the chunk size used by Archive::Zip.</p>
</dd>
</li>
<dt><strong><a name="item_getline"><code>getline()</code></a></strong>

<dd>
<p>Returns the next line from the currently open member.
Makes sense only for text files.
A read error is considered fatal enough to die.
Returns undef on eof. All subsequent calls would return undef,
unless a <a href="#item_rewind"><code>rewind()</code></a> is called.
Note: The line returned has the newline removed.</p>
</dd>
</li>
<dt><strong><a name="item_read">read($buffer, $num_bytes_to_read)</a></strong>

<dd>
<p>Simulates a normal <a href="#item_read"><code>read()</code></a> system call.
Returns the no. of bytes read. <a href="../../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> on error, 0 on eof, <em>e.g.</em>:</p>
</dd>
<dd>
<pre>
  <span class="variable">$fh</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Archive::Zip::MemberRead</span><span class="operator">(</span><span class="variable">$zip</span><span class="operator">,</span> <span class="string">"sreeji/secrets.bin"</span><span class="operator">);</span>
  <span class="keyword">while</span> <span class="operator">(</span><span class="number">1</span><span class="operator">)</span>
  <span class="operator">{</span>
    <span class="variable">$read</span> <span class="operator">=</span> <span class="variable">$fh</span><span class="operator">-&gt;</span><span class="keyword">read</span><span class="operator">(</span><span class="variable">$buffer</span><span class="operator">,</span> <span class="number">1024</span><span class="operator">);</span>
    <span class="keyword">die</span> <span class="string">"FATAL ERROR reading my secrets !\n"</span> <span class="keyword">if</span> <span class="operator">(!</span><span class="keyword">defined</span><span class="operator">(</span><span class="variable">$read</span><span class="operator">));</span>
    <span class="keyword">last</span> <span class="keyword">if</span> <span class="operator">(!</span><span class="variable">$read</span><span class="operator">);</span>
    <span class="comment"># Do processing.</span>
    <span class="operator">....</span>
   <span class="operator">}</span>
</pre>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Sreeji K. Das, &lt;<a href="mailto:sreeji_k@yahoo.com">sreeji_k@yahoo.com</a>&gt;
See <a href="../../../lib/Archive/Zip.html">the Archive::Zip manpage</a> by Ned Konz without which this module does not make
any sense!</p>
<p>Minor mods by Ned Konz.</p>
<p>
</p>
<hr />
<h1><a name="copyright">COPYRIGHT</a></h1>
<p>Copyright (c) 2002 Sreeji K. Das. All rights reserved.  This program is free
software; you can redistribute it and/or modify it under the same terms
as Perl itself.</p>

</body>

</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?