ClassNHT.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:5k
源码类别:

搜索引擎

开发平台:

C#

  1. using System;
  2. using System.IO;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Collections;
  6. using System.Net;
  7. using System.Net.Sockets;
  8. using System.Threading;
  9. /*
  10.       '       迅龙中文分类搜索引擎  v0.6
  11.       '
  12.       '        LGPL  许可发行
  13.       '
  14.       '       宁夏大学  张冬 康彩  zd4004@163.com
  15.       ' 
  16.       '        官网 http://blog.163.com/zd4004/
  17.  */
  18. namespace NetHashTableAPI
  19. {
  20.     public  class ClassNHT
  21.     {
  22.          
  23.         /// <summary>
  24.         /// 存储器是否锁定  锁定状态下不能进行写入和读出   需要持续等待
  25.         /// </summary>
  26.         public    bool lockIt = false;
  27.         /// <summary>
  28.         /// 本地模式下设定数据保存的路径 目录
  29.         /// </summary>
  30.         private string DBPATH = "";
  31.         /// <summary>
  32.         /// 直接存储操作类
  33.         /// </summary>
  34.         private ClassFilesDataBase nDBs = new ClassFilesDataBase();
  35.         /// <summary>
  36.         /// 得到一个数据的值
  37.         /// </summary>
  38.         /// <param name="KeyVal"></param>
  39.         /// <returns></returns>
  40.         public string Value(string KeyVal)
  41.         {
  42.             try
  43.             {
  44.                 string a = nDBs.Value(KeyVal);
  45.     
  46.                 return a;
  47.             }
  48.             catch
  49.             {
  50.                 return "";
  51.             }
  52.   
  53.         }
  54.         /// <summary>
  55.         /// 系统设定
  56.         /// </summary>
  57.         public void SetClassNHT(string nPath, int nM, string k_c_path)
  58.         {
  59.             //读取配置
  60.             XunLong.CongifData.Config.InitConfigData(k_c_path);
  61.             DBPATH = nPath;
  62.             //设定存储器
  63.             nDBs.SetClassFilesDataBase(nPath, nM);
  64.         }
  65.         /// <summary>
  66.         /// 压入一个数据的值
  67.         /// </summary>
  68.         /// <param name="KeyVal"></param>
  69.         /// <param name="DataVal"></param>
  70.         /// <param name="bendi">是否是本地模式 本地模式为直接硬盘存取</param>
  71.         /// <returns></returns>
  72.         public bool add(string Key, string Val,bool bendi)
  73.         {
  74.             //加锁
  75.             lockIt  = true ;
  76.             if (bendi == true)
  77.             {
  78.                 //得到名称
  79.                 //string newname = DBPATH + "\" + getMD5name(Key);
  80.                 lockIt = true;
  81.                 //保存数据
  82.                 nDBs.add(Key, Val);
  83.                 
  84.             }
  85.             //解锁
  86.             lockIt = false;
  87.             return true;
  88.         }
  89.         /// <summary>
  90.         /// 判断是否包含特定键
  91.         /// </summary>
  92.         /// <param name="Key"></param>
  93.         /// <returns></returns>
  94.         public bool Contains(string Key)
  95.         {
  96.             return true;
  97.         }
  98.         /// <summary>
  99.         /// 系统内键/值对的数目 
  100.         /// </summary>
  101.         /// <returns></returns>
  102.         public long Count()
  103.         {
  104.             return 0;
  105.         }
  106.         /// <summary>
  107.         /// 移除指定的键
  108.         /// </summary>
  109.         /// <param name="Key"></param>
  110.         /// <returns></returns>
  111.         public bool Remove(string Key)
  112.         {
  113.             return true;
  114.         }
  115.         /// <summary>
  116.         /// 得到特定的键列表
  117.         /// </summary>
  118.         /// <param name="xmlTxt">XML格式 负责在键描述中查找</param>
  119.         /// <returns>键列表</returns>
  120.         public ArrayList SearchOneList(string xmlTxt)
  121.         { 
  122.                    ArrayList n = new ArrayList();
  123.                    n.Clear();       
  124.                  n =   nDBs.SearchOneList(xmlTxt);
  125.                    return n;
  126.         }
  127.         /// <summary>
  128.         /// 得到URL的MD5名
  129.         /// </summary>
  130.         /// <param name="url"></param>
  131.         /// <returns></returns>
  132.         private string getMD5name(string url)
  133.         {
  134.             string strMd5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(url, "md5");
  135.             return strMd5;
  136.         }
  137.         /// <summary>
  138.         /// 写文件
  139.         /// </summary>
  140.         /// <param name="filename"></param>
  141.         /// <param name="data"></param>
  142.         private void putFileData(string filename, string data)
  143.         {
  144.             StreamWriter writer = null;
  145.             try
  146.             {
  147.                 writer = new StreamWriter(filename, false, System.Text.Encoding.GetEncoding("gb2312"));
  148.                 writer.Write(data);
  149.                 writer.Close();
  150.             }
  151.             catch (IOException e)
  152.             {
  153.                 Console.WriteLine(e.Message);
  154.             }
  155.             finally
  156.             {
  157.                 if (writer != null)
  158.                     writer.Close();
  159.             }
  160.         }
  161.     }
  162. }