<? 
 /* 	
	Создание хэша словаря Мюллера
	Скрипт на PHP4 для http://sk1.sourceforge.net/testing/
	Автор: Андрей Черепанов <sibskull@mail.ru>
	Версия: 1.01 от 02.07.2005г.

	License: GPL v.2
*/

	$dictionary = "Mueller7GPL.koi";
	$hash = "Mueller7GPL.hash";
	$h = fopen($dictionary, "r");
	$w = fopen($hash, "w");

	echo "processing...";

	// Read contents
	$a = array();
	while( !feof($h) ) {
		$pos = ftell($h);
  		$line = fgets($h, 15535);
		$pos2 = ftell($h);
 		if ( preg_match('/^.+  /', $line, $matches) ) {
			$word = $matches[0];
			$crc  = crc32(trim(strtolower($word)));
			//$key = unpack('L', pack( 'L', $crc ));
			if( array_key_exists($crc, $a) ) {
				$a[$crc][1] = $pos2;
			} else {
				$a[$crc] = array( $pos, $pos2 );
			}
		}		
	}

	// Sort by keys
	ksort($a);
 	reset($a);
 
	// Output to index file
	while (list($key, $val) = each($a)) {
		fwrite($w, pack( 'l', $key ));	// CRC32
		fwrite($w, pack( 'L', $val[0] )); // Offset (begin)
		fwrite($w, pack( 'L', $val[1] )); // Offset (end)
	}


	// Close files
 	fclose($w);
 	fclose($h);
	echo " done";
?>