我没有写过,不过可以给你一个思路。
花无缺的leoboard论坛中有相关的perl代码。
你按照其中的方法,用C#改写。

解决方案 »

  1.   

    http://www.leoboard.com 你去直接问问花无缺吧。
      

  2.   

    可以的!
    但需要知道oicq服务器的DNS设置!我只知道这些,你自己再研究研究吧!!!我遇到了一个问题,不知道你能帮我吗??
    我想在textBox中设置只能输入数字
    我的代码是:
    private viod textBox_keyPress(object sender,system.windows.KeyPressEventArgs e)
    {
    char c=e.Keychar;
    if((char.IsDigit(c)==false)&&(c!='\b')&&(c!='\r'))
    {
    SendKeys.Send("{BS}");
    }
    }
    当输入ctrl+字母键时,就回出错!不知道什么原因!希望你知道!谢谢了!
    我的Email:[email protected]}

      

  3.   

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Text.RegularExpressions;namespace NetFishSoftware.QQUtility
    {
    // 状态枚举
    public enum UserStatus{Online, Offline, NotExist}
    // 用户信息
    public struct UserInfo
    {
    public string Name;
    public string Gender;
    public string Province;
    public string Age;
    public string Address;
    public string Face;
    public string Uin;
    public UserStatus Status;
    }
    /// <summary>
    /// 得到QQ用户的信息
    /// Author:whxbb([email protected])
    /// Data: 2002/04/11
    /// </summary>
    /// <example>
    ///<code>
    /*
      QQInfo info = new QQInfo("6651249");
    try
    {
    UserInfo user = info.User;

    string message = "";
    string status = ""; switch(user.Status)
    {
    case UserStatus.NotExist:
    message = "该号码不存在";
    break;
    case UserStatus.Offline:
    status = "离线";
    goto default;
    break;
    case UserStatus.Online:
    status = "在线";
    goto default;
    break;
    default:
    message = "号码:" + user.Uin  +
    "\n昵称:" + user.Name +
    "\n地区:" + user.Address + 
    "\n地址:" + user.Address +
    "\n性别:" + user.Gender +
    "\n年龄:" + user.Age + 
    "\n头像:" + user.Face +
    "\n状态:" + status;
    break; }
    MessageBox.Show(message);
    }
    catch (Exception ep)
    {
    MessageBox.Show(ep.ToString());

    }
     */
    ///</code>
    /// </example>
    public class QQInfo
    {

    UserStatus status;
    string face;
    string number;
    string html; // 检测使用的url
    const string urlCheck = "http://search.tencent.com/cgi-bin/friend/oicq_find?oicq_no=";

    public UserInfo User; public QQInfo()
    { }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="QQNumber">QQ号码</param>
    public QQInfo(string Num)
    {
    this.number = Num;
    this.Fetch();
    } // 得到QQ用户信息
    public void Fetch()
    {
    User = new UserInfo();

    HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(urlCheck + this.number);
    HttpWebResponse ws = (HttpWebResponse)wr.GetResponse();

    StreamReader sr = new StreamReader(ws.GetResponseStream(), Encoding.Default);
    this.html = sr.ReadToEnd();
    sr.Close(); ws.Close();
    ParseHtml();
    } // 将信息从HTML从语句中提取出来
    protected void ParseHtml()
    {
    int[] matchposition = new int[20];
    String[] results = new String[20];

    string pattern = "ShowResult\\W{1,1}\"(?<color>[^\"]*)\",\"(?<pic>[^\"]*)\",\"(?<uin>[^\"]*)\",\"(?<name>[^\"]*)\",\"(?<province>[^\"]*)\",\"(?<age>[^\"]*)\",\"(?<gender>[^\"]*)\",\"(?<address>[^\"]*)\"\\W{1,1};"; Regex r = new Regex(pattern); 
    Match m = r.Match(this.html);
    if (m.Success)
    {
    while(m.Success)
    {
    User.Uin = m.Result("${uin}");
    User.Face = m.Result("${pic}");
    User.Name = m.Result("${name}");
    User.Gender = m.Result("${gender}");
    User.Age = m.Result("${age}");
    User.Address = m.Result("${address}");
    User.Province = m.Result("${province}");
    m = m.NextMatch();
    // 分析出用户的昵称
    User.Name = new Regex("^(?<name>[\\W|\\w]*)(\\W{1,1}[0-9]+\\W{1,1})$").Match(User.Name).Result("${name}");
    // 分析出用户的在线状态
    string onlineFlag = new Regex("(?<flag>[1-3]{1,1})\\W{1,1}(gif)$").Match(User.Face).Result("${flag}");
    if (onlineFlag == "2")
    User.Status = UserStatus.Online;
    else if (onlineFlag == "3")
    User.Status = UserStatus.Offline;


    }

    else
    {
    User.Status = UserStatus.NotExist;
    }
    } }
    }
      

  4.   

    正则表达式真是强大呀,可惜,MSDN上说的也是含含糊糊的,看不明白。
      

  5.   

    "ShowResult\\W{1,1}\"(?<color>[^\"]*)\",\"(?<pic>[^\"]*)\",\"(?<uin>[^\"]*)\",\"(?<name>[^\"]*)\",\"(?<province>[^\"]*)\",\"(?<age>[^\"]*)\",\"(?<gender>[^\"]*)\",\"(?<address>[^\"]*)\"\\W{1,1};"这就是正则正则表达式