1
0
mirror of https://github.com/php/doc-es.git synced 2026-04-23 23:28:22 +02:00
Files
archived-doc-es/reference/quickhash/quickhashstringinthash/loadfromfile.xml
T
Pedro Antonio Gil Rodríguez 399402ea6d Traducción
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@326627 c90b9560-bf6c-de11-be94-00142212c4b1
2012-07-13 17:31:59 +00:00

195 lines
6.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 60ec2446182c3f45d16a13c0be0b18baf5a13a48 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="quickhashstringinthash.loadfromfile" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>QuickHashStringIntHash::loadFromFile</refname>
<refpurpose>Este método de fabricación crea un hash desde un fichero</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <modifier>static</modifier> <type>QuickHashStringIntHash</type><methodname>QuickHashStringIntHash::loadFromFile</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>size</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>options</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Este método de fabricación crea un nuevo hash desde un fichero de definición del disco. El
formato del fichero consiste en una signatura 'QH\0x12\0', el número de elementos como
un número entero de 32 bits con signo en el Endianness del sistema, un número entero de 32 sin signo
que contiene el número de datos del elemento a seguir en caracteres. Estos datos del
elemento contienen todos los strings. Le sigue otro entero de 32 bits con signo
que contiene el número de listas de recipientes. Después de la cabecera y los strings,
le siguien los elementos. Están ordenados por lista de recipientes, por lo que a las claves no
les tendrá que realizar un hash para poder restablecer el hash. Por cada lista de recipientes, se
almacena la siguiente información (todos como enteros de 32 bits): el índeice de la lista de
recipientes, el número de elementos de dicha lista, y luego, en parejas de dos enteros
de 32 bits sin signo, los elementos, donde el primero es el índice
dentro de la lista de cadenas que contiene las claves, y el segundo el valor. Un
ejemplo podría ser:
</para>
<para>
<example>
<title>Formato de fichero de StringIntHash de QuickHash</title>
<screen><![CDATA[00000000 51 48 21 00 02 00 00 00 09 00 00 00 40 00 00 00 |QH!.........@...|
00000010 4f 4e 45 00 4e 49 4e 45 00 07 00 00 00 01 00 00 |ONE.NINE........|
00000020 00 00 00 00 00 01 00 00 00 2f 00 00 00 01 00 00 |........./......|
00000030 00 04 00 00 00 03 00 00 00 |.........|
00000039]]></screen>
</example>
</para>
<para>
<example>
<title>Formato de fichero de StringIntHash de QuickHash</title>
<screen><![CDATA[signatura de la cabecera ('QH'; tipo de clave: 2; tipo de valor: 1; relleno: \0x00)
00000000 51 48 21 00
número de elementos:
00000004 02 00 00 00
longitud de los valores de string (9 caracteres):
00000008 09 00 00 00
número de listas de recipientes (esto normalmente se configura para los hash como
argumento del constructor, 64 en este caso):
0000000C 40 00 00 00
valores de string:
00000010 4f 4e 45 00 4e 49 4e 45 00
lista de recipientes:
lista de recipientes 1 (con clave 7, y 1 elemento):
cabecera:
07 00 00 00 01 00 00 00
elementos (índice de clave: 0 ('ONE'), valor = 0):
00 00 00 00 01 00 00 00
lista de recipientes 2 (con clave 0x2f, y 1 elemento):
header:
2f 00 00 00 01 00 00 00
elementos (índice de clave: 4 ('NINE'), valor = 0):
04 00 00 00 03 00 00 00
]]></screen>
</example>
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>filename</parameter></term>
<listitem>
<para>
El nombre de fichero del fichero desde donde leer el hash.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>
La cantidad de de listas de recipientes a configurar. El número proporcionado será
automáticamente redondeado hacia arriba a la potencia de dos más cercana. Tambíen será
automáticamente limitado de 4 a 4194304.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
Las mismas opciones que toma el constructor de la clase; excepto que se ignora
la opción 'size'. Ésta se lee desde el formato de fichero (a diferencia de las
clases QuickHashIntHash y QuickHashIntStringHash, donde se
calcula automáticamente desde el número de entradas del hash.)
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un nuevo objeto QuickHashStringIntHash.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>QuickHashStringIntHash::loadFromFile</function></title>
<programlisting role="php">
<![CDATA[
<?php
$fichero = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
$fichero,
QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $clave )
{
$i = 48712 + $clave * 1631;
$k = base_convert( $i, 10, 36 );
echo $k, ' => ', $hash->get( $k ), "\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->