回 帖 发 新 帖 刷新版面

主题:[讨论]+30!为什么我从hzk16文件读出来的数据是空白的

我想做个php程序把汉字的字模数据从hzk16文件里读出来,再根据点阵的分布情况来用汉字填充,形成一个超级字符.
可是我做了一个实验的程序却发现读出来的数据是空的;
请看代码:

<?php
$qh=ord(substr("江",0,1))-161;                              //取得汉字区号
$wh=ord(substr("江",1,1))-161;                              //取得汉字位号  
$data_p=$data_p+($qh*94+$wh)*32;                            //取得汉字字模数据位置  
$fp=fopen("hzk16","rb");
if(!$fp)
{
  echo "文件打开失败!";
}
else
{
  fseek($fp,$data_p);                                        //定位文件指针           
  $content=fread($fp,32);                                    //取得字模数据
  for($i=0;$i<=15;$i++)
    {
      $line_data_l=ord(substr($content,2*$i,1));               //获取每一行左边的8个点数据
      for($j=8;$j>=1;$j--)
         {
            $data_hz[$j]=$line_data_l % 2;
            $line_data_l=($line_data_l-$data_hz[$j])/2;          
         }
      for($k=1;$k<=8;$k++)
         {
            if($data_hz[$j]==1)
              {
                 echo "江";
              }
            else
              {
                 echo "__";
              }            
         }   
      
      $line_data_r=ord(substr($content,2*i+1,1));               //获取每一行右边的8个点数据
      for($j=8;$j>0;$j--)
         {
            $data_hz[$j]=$line_data_r % 2;
            $line_data_l=($line_data_r-$data_hz[$j])/2;          
         }
      for($k=1;$k<=8;$k++)
         {
            if($data_hz[j]==1)
              {
                 echo "江";
              }
            else
              {
                 echo "__";
              }            
         } 
      echo "\n";                                             //系统的换行      
    }    
}
?>

回复列表 (共2个回复)

沙发

程序太长了,希望看到你自己的分析
超级字符是什么东西,对不起,偶孤陋寡闻

板凳

phpchina的人说用ord转的数据要转为2进制才可以读
我不是很明白

我来回复

您尚未登录,请登录后再回复。点此登录或注册