载入中,请稍候……

公农历转换类[C++]

Admin 于 2008-10-26 17:39:09 发表.NET

被阅740次, 0票农历 发表评论

如何随机生成指定数目的国标汉字

Admin 于 2008-10-20 03:27:23 发表.NET

为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码 是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每 一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的"区位码"。在汉字的 区位码中,高两位为区号,低两位为位号。 在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字。其中16-55区为一级汉字(3755个最常用的汉字,按拼音 字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。

所以,当我们需要n个任意汉字时,我们不必建一个全部汉字表,而是利用区位码实现常用汉字的提取。

下面的代码可以实现任意数目汉字的生成:

  1. /// <summary> 
  2. /// 此函数为生成指定数目的汉字 
  3. /// </summary> 
  4. /// <param name="charLen">汉字数目</param> 
  5. /// <returns>所有汉字</returns> 
  6. public static string[] CreateGBChar(int charLen) 
  7.     int area,code;//汉字由区位和码位组成(都为0-94,其中区位16-55为一级汉字区,56-87为二级汉字区,1-9为特殊字符区) 
  8.     string[] charArrary = new string[charLen]; 
  9.     Random rand = new Random(); 
  10.     for (int i = 0; i < charLen; i++) 
  11.     { 
  12.         area = rand.Next(16, 88); 
  13.         if (area == 55)//第55区只有89个字符 
  14.         { 
  15.             code = rand.Next(1, 90); 
  16.         } 
  17.         else 
  18.         { 
  19.             code = rand.Next(1, 94); 
  20.         } 
  21.         charArrary[i] = Encoding.GetEncoding("GB2312").GetString(new byte[] { Convert.ToByte(area+160), Convert.ToByte(code+160) }); 
  22.     } 
  23.     return charArrary; 

下面代码是解析汉字的区位码:

  1. //// <summary> 
  2. /// 获取汉字的区位码 
  3. /// </summary> 
  4. /// <param name="gbChar">汉字</param> 
  5. /// <returns>汉字的区位码</returns> 
  6. public static string GetAreaCode(char gbChar) 
  7.     byte[] gbBytes = Encoding.GetEncoding("GB2312").GetBytes(new char[] { gbChar });//解析汉字成二进制数组 
  8.     return string.Format("{0}:{1}", gbBytes[0].ToString("X"), gbBytes[1].ToString("X")); 

下面代码是根据区位码获取汉字:

  1. //// <summary> 
  2. /// 将区位码转换成汉字 
  3. /// </summary> 
  4. /// <param name="areaCode">区位码(长度为4)</param> 
  5. /// <returns>汉字</returns> 
  6. public static char GetGBChar(string areaCode) 
  7.     return Convert.ToChar(Encoding.GetEncoding("GB2312").GetString( 
  8.     new byte[] { Convert.ToByte(areaCode.Substring(0, 2), 16),  
  9.             Convert.ToByte(areaCode.Substring(2, 2), 16) })); 

 

被阅554次, 0票汉字 发表评论

IE代理的设置与取消

Admin 于 2008-10-20 03:25:28 发表.NET

要实时更新IE所有实例需调用如下API:

  1. [DllImport("wininet.dll", SetLastError = true)] 
  2. private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); 

然后刷新IE设置:

  1. private static void RefreshIESettings() 
  2.     const int INTERNET_OPTION_REFRESH = 0x000025; 
  3.     const int INTERNET_OPTION_SETTINGS_CHANGED = 0x000027; 
  4.     InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0); 
  5.     InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0); 

最后写IE在注册表中的设置即可:

  1. public static void SetIEProxy(Proxy proxy) 
  2.     string proxyIP = ""
  3.     proxyIP=string.Format("{0}:{1}", proxy.ProxyAddr, proxy.ProxyPort); 
  4.     RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings"true); 
  5.     rk.SetValue("ProxyEnable", 1); 
  6.     rk.SetValue("ProxyServer", proxyIP); 
  7.     rk.Close(); 
  8.     RefreshIESettings(); 
  9.  
  10. public static void CancelIEProxy() 
  11.     RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Internet Settings",true); 
  12.     rk.SetValue("ProxyEnable", 0); 
  13.     rk.Close(); 
  14.     RefreshIESettings(); 
  15.  
  16. public class Proxy 
  17. private string proxyName; 
  18. private string proxyAddr; 
  19. private int port; 
  20.  
  21. public Proxy(string name, string addr, int port) 
  22.     this.proxyName = name; 
  23.     this.proxyAddr = addr; 
  24.     this.port = port; 
  25.  
  26. public string ProxyName { get { return proxyName; } } 
  27. public string ProxyAddr { get { return proxyAddr; } } 
  28. public int ProxyPort { get { return port; } } 
  29.  
  30. public override string ToString() 
  31.     return proxyName; 

 

被阅848次, 0票代理 发表评论

使用代理时服务变量的变化

Admin 于 2008-10-20 03:24:10 发表.NET

一、没有使用代理服务器的情况:

      REMOTE_ADDR = 您的 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

      REMOTE_ADDR = 最后一个代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

      REMOTE_ADDR = 最后一个代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

      REMOTE_ADDR = 代理服务器 IP
      HTTP_VIA = 代理服务器 IP
      HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

      REMOTE_ADDR = 代理服务器 IP
      HTTP_VIA = 没数值或不显示
      HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

   完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

被阅769次, 0票代理 发表评论

公农历转换类(C#)

Admin 于 2008-10-18 22:05:42 发表.NET

被阅810次, 0票 发表评论

批处理延时、整除、循环、脚本目录

Admin 于 2008-10-04 13:28:43 发表.NET

 

 

 1 
 2 批处理的变量延时
 3 
 4 %% rem 不支持变量延迟,!!支持变量延迟
 5 
 6 rem cmd默认不支持变量延迟。
 7 SETLOCAL ENABLEDELAYEDEXPANSION rem启用变量延迟。
 8 
 9 %TheNum% rem 在for循环中不能更新变量,保持运行for语句前的值。
10 !TheNum! rem 能更新变量。
11 
12 获取批处理所在的目录
13 ECHO "%~dp0"
14 
15 
16 整除、循环变量
17 @echo off
18 @setlocal enabledelayedexpansion
19 set/a n = 1
20 for /f "delims=" %%i in ('dir /a-d /b "C:\test\*.*"') do (
21 set/a i+=1
22 set/a nCount=!i!%%3
23 if !nCount! equ 0 set/a n+=1
24 if not exist !n! md !n!
25 copy "%%i" !n!
26 )
27 pause
28 
被阅1150次, 0票批处理 发表评论

在C#里使用属性

Admin 于 2008-09-30 10:07:49 发表.NET

被阅663次, 0票 发表评论

.NET反射、委托技术与设计模式

Admin 于 2008-09-30 10:02:59 发表.NET

被阅558次, 0票设计模式 发表评论
1 / 2 / 16 | « 1 2 » |

Powered by MiniBoke v2.0.0.8 Build 0828

Copyright © 2008 迷你博客. All rights reserved.

粤ICP备07500939号