C# 很久以前几个常用类
阅读原文时间:2023年07月11日阅读:1

Base64加密解密

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 沃狐新浪博客推广系统
{
class Base64
{
///

/// 将字符串使用base64算法加密 ///
/// 编码类型(编码名称) /// * 代码页 名称 /// * 1200 "UTF-16LE"、"utf-16"、"ucs-2"、"unicode"或"ISO-10646-UCS-2" /// * 1201 "UTF-16BE"或"unicodeFFFE" /// * 1252 "windows-1252" /// * 65000 "utf-7"、"csUnicode11UTF7"、"unicode-1-1-utf-7"、"unicode-2-0-utf-7"、"x-unicode-1-1-utf-7"或"x-unicode-2-0-utf-7" /// * 65001 "utf-8"、"unicode-1-1-utf-8"、"unicode-2-0-utf-8"、"x-unicode-1-1-utf-8"或"x-unicode-2-0-utf-8" /// * 20127 "us-ascii"、"us"、"ascii"、"ANSI_X3.4-1968"、"ANSI_X3.4-1986"、"cp367"、"csASCII"、"IBM367"、"iso-ir-6"、"ISO646-US"或"ISO_646.irv:1991" /// * 54936 "GB18030" /// /// 待加密的字符串
/// 加密后的字符串
public string EncodeBase64(string code_type, string code)
{
string encode = "";
byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
//将一组字符编码为一个字节序列.
try
{
encode = Convert.ToBase64String(bytes);
//将8位无符号整数数组的子集转换为其等效的,以64为基的数字编码的字符串形式.
} catch
{
encode = code;
}
return encode;
}
/// /// 将字符串使用base64算法解密 ///
/// 编码类型
/// 已用base64算法加密的字符串
/// 解密后的字符串
public string DecodeBase64(string code_type, string code)
{
string decode = "";
byte[] bytes = Convert.FromBase64String(code); //将2进制编码转换为8位无符号整数数组.
try
{
decode = Encoding.GetEncoding(code_type).GetString(bytes); //将指定字节数组中的一个字节序列解码为一个字符串。
}
catch
{
decode = code;
}
return decode;
}

}  

}

BitmapRegion绘制图形控件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace 沃狐新浪博客推广系统
{
class BitmapRegion
{
public BitmapRegion()
{
}

    /// <summary>  
    /// Create and apply the region on the supplied control  
    /// </summary>  
    /// The Control object to apply the region to//  
    /// The Bitmap object to create the region from  
    public void CreateControlRegion(Control control, Bitmap bitmap)  
    {  
        // Return if control and bitmap are null  
        if (control == null || bitmap == null)  
            return;

        // Set our control's size to be the same as the bitmap  
        control.Width = bitmap.Width;  
        control.Height = bitmap.Height;

        // Check if we are dealing with Form here  
        if (control is System.Windows.Forms.Form)  
        {  
            // Cast to a Form object  
            Form form = (Form)control;

            // Set our form's size to be a little larger that the bitmap just  
            // in case the form's border style is not set to none in the first place  
            form.Width += ;  
            form.Height += ;

            // No border  
            form.FormBorderStyle = FormBorderStyle.None;

            // Set bitmap as the background image  
            form.BackgroundImage = bitmap;

            // Calculate the graphics path based on the bitmap supplied  
            GraphicsPath graphicsPath = CalculateControlGraphicsPath(bitmap);

            // Apply new region  
            form.Region = new Region(graphicsPath);  
        }

       // Check if we are dealing with Button here  
        else if (control is System.Windows.Forms.Button)  
        {  
            // Cast to a button object  
            Button button = (Button)control;

            // Do not show button text  
            button.Text = "";

            // Change cursor to hand when over button  
            button.Cursor = Cursors.Hand;

            // Set background image of button  
            button.BackgroundImage = bitmap;

            // Calculate the graphics path based on the bitmap supplied  
            GraphicsPath graphicsPath = CalculateControlGraphicsPath(bitmap);

            // Apply new region  
            button.Region = new Region(graphicsPath);  
        }  
    }

    /// <summary>  
    /// Calculate the graphics path that representing the figure in the bitmap  
    /// excluding the transparent color which is the top left pixel.  
    /// </summary>  
    /// The Bitmap object to calculate our graphics path from  
    /// <returns>Calculated graphics path</returns>  
    private static GraphicsPath CalculateControlGraphicsPath(Bitmap bitmap)  
    {  
        // Create GraphicsPath for our bitmap calculation  
        GraphicsPath graphicsPath = new GraphicsPath();

        // Use the top left pixel as our transparent color  
        Color colorTransparent = bitmap.GetPixel(, );

        // This is to store the column value where an opaque pixel is first found.  
        // This value will determine where we start scanning for trailing opaque pixels.  
        int colOpaquePixel = ;

        // Go through all rows (Y axis)  
        for (int row = ; row < bitmap.Height; row++)  
        {  
            // Reset value  
            colOpaquePixel = ;

            // Go through all columns (X axis)  
            for (int col = ; col < bitmap.Width; col++)  
            {  
                // If this is an opaque pixel, mark it and search for anymore trailing behind  
                if (bitmap.GetPixel(col, row) != colorTransparent)  
                {  
                    // Opaque pixel found, mark current position  
                    colOpaquePixel = col;

                    // Create another variable to set the current pixel position  
                    int colNext = col;

                    // Starting from current found opaque pixel, search for anymore opaque pixels  
                    // trailing behind, until a transparent pixel is found or minimum width is reached  
                    for (colNext = colOpaquePixel; colNext < bitmap.Width; colNext++)  
                        if (bitmap.GetPixel(colNext, row) == colorTransparent)  
                            break;

                    // Form a rectangle for line of opaque pixels found and add it to our graphics path  
                    graphicsPath.AddRectangle(new Rectangle(colOpaquePixel, row, colNext - colOpaquePixel, ));

                    // No need to scan the line of opaque pixels just found  
                    col = colNext;  
                }  
            }  
        }

        // Return calculated graphics path  
        return graphicsPath;  
    }  
}  

}

CatchUrls抓取网页url

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Net;
using System.IO;
using System.Collections;
using System.Text.RegularExpressions;
namespace 沃狐新浪博客推广系统
{
class CatchUrls
{
string strCode;
ArrayList alLinks;
// 获取指定网页的HTML代码
private string url = "";
public string URL
{
get
{
return url;
}
set
{
url = value;
}
}
public string htmlCode;
public string GetPageSource()
{
Uri uri = new Uri(URL);
// http:// blog.sina.com.cn/lm/oldrank/20120615/all.html
HttpWebRequest hwReq = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse hwRes = (HttpWebResponse)hwReq.GetResponse();
hwReq.Method = "Get";
hwReq.KeepAlive = false;
StreamReader reader = new StreamReader(hwRes.GetResponseStream(), System.Text.Encoding.GetEncoding("GB2312"));
return reader.ReadToEnd();
}
// 提取HTML代码中的网址
public ArrayList GetHyperLinks()
{
ArrayList al = new ArrayList();
string strRegex = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
Regex r = new Regex(strRegex, RegexOptions.IgnoreCase);
MatchCollection m = r.Matches(htmlCode);
//progressBar1.Maximum = m.Count;
for (int i = ; i <= m.Count - ; i++)
{
bool rep = false;
string strNew = m[i].ToString();
// 过滤重复的URL
foreach (string str in al)
{
if (strNew == str)
{
rep = true;
break;
}
}
if (!rep)
{

                if (strNew.IndexOf("blog.sina.com.cn/u") >= )  
                {  
                    strNew = strNew.Replace("http://blog.sina.com.cn/u/", "");  
                    al.Add(strNew.Trim());  
                }  
            }  
        }  
        al.Sort();//重新排序  
        return al;  
    }  
    //  
    static string GetURLContent(string url, string EncodingType)  
    {  
        string PetiResp = "";  
        Stream mystream;  
        System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);  
        req.AllowAutoRedirect = true;  
        System.Net.HttpWebResponse resp = (System.Net.HttpWebResponse)req.GetResponse();  
        if (resp.StatusCode == System.Net.HttpStatusCode.OK)  
        {  
            mystream = resp.GetResponseStream();  
            System.Text.Encoding encode = System.Text.Encoding.GetEncoding(EncodingType);  
            StreamReader readStream = new StreamReader(mystream, encode);  
            char\[\] cCont = new char\[\];  
            int count = readStream.Read(cCont, , );  
            while (count > )  
            {  
                // Dumps the 256 characters on a string and displays the string to the console.  
                String str = new String(cCont, , count);  
                PetiResp += str;  
                count = readStream.Read(cCont, , );  
            }  
            resp.Close();  
            return PetiResp;  
        }  
        resp.Close();  
        return null;  
    }  
    // 获取网址的域名后缀  
    static string GetDomain(string strURL)  
    {  
        string retVal;  
        string strRegex = @"(\\.com/|\\.net/|\\.cn/|\\.org/|\\.gov/|\\.cn/)";  
        Regex r = new Regex(strRegex, RegexOptions.IgnoreCase);  
        Match m = r.Match(strURL);  
        retVal = m.ToString();  
        strRegex = @"\\.|/$";  
        retVal = Regex.Replace(retVal, strRegex, "").ToString();  
        if (retVal == "")  
            retVal = "other";  
        return retVal;  
    }  
    //public string BaseURLs;

}  

}

CookieComputer提取post模拟登陆网站cookie.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Net;
using System.Web;
using System.IO;
using System.Collections;
namespace 沃狐新浪博客推广系统
{
class CookieComputer
{
#region 通过登录获取cookie信息参数
//登录链接
private static string url = "";
///

/// 登录基URL,默认为空 ///
public static string Url
{
get
{
return url;
}
set
{
url = value;
}
}
//用户名

    private static string username = "";  
    /// <summary>  
    /// 登录用户名,默认为空  
    /// </summary>  
    public static string Username  
    {  
        get  
        {  
            return username;  
        }  
        set  
        {  
            username = value;  
        }  
    }  
    //密码  
    private static string password = "";  
    /// <summary>  
    /// 登录密码,默认为空  
    /// </summary>  
    public static string Password  
    {  
        get  
        {  
            return password;  
        }  
        set  
        {  
            password = value;  
        }  
    }

    //表单需要提交的参数,注意改为你已注册的信息。  
     private static string postDate="";  
     /// <summary>  
     /// 表单需要提交的参数,注意改为你已注册的信息。  
     /// </summary>  
     public static string PostDate  
     {  
         get  
         {  
             return postDate;  
         }  
         set  
         {  
             postDate = value;  
         }  
     }

    #endregion

    //写成无参数方便线程调用  
    /// <summary>  
    /// 获取目标网站cookie  
    /// </summary>  
    /// <returns>CookieContainer</returns>  
    public static CookieContainer Get\_SinaLogin()  
    {  
        //新建cookie容器  
        CookieContainer CookiC = new CookieContainer();  
        //处理表单的绝对URL地址  
        string FormURL = Url;  
        //表单需要提交的参数,注意改为你已注册的信息。  
        // "username=" + Username + "&password=" + Password;  
        string FormData = PostDate;  
        //设定编码格式  
        Encoding encoding = Encoding.UTF8;  
        //将编码转换成字节数组  
        byte\[\] data = encoding.GetBytes(FormData);  
        //创建HttpWebRequest请求  
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FormURL);  
        ///<!--设定标头开始-->  
        //数据提交方式  
        request.Method = "POST";  
        //设定请求连接类型  
        request.ContentType = "application/x-www-form-urlencoded";  
        //设定请求内容长度  
        request.ContentLength = data.Length;  
        //声明了浏览器用于 HTTP 请求的用户代理头的值  
        request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";  
        ///<!--设定标头结束-->  
        //返回请求数据流  
        Stream newStream = request.GetRequestStream();  
        //向当前流中写入字节序列  
        newStream.Write(data, , data.Length);  
        //关闭流  
        newStream.Close();  
        //获取或设置与此请求关联的 cookie。  
        request.CookieContainer = CookiC;  
        //返回来自 Internet 资源的响应。  
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
        //将返回的cookie添加进cookie容器  
        CookiC.Add(response.Cookies);  
        //获取流,该流用于读取来自服务器的响应的体。  
        Stream stream = response.GetResponseStream();  
        //将流转换成指定编码格式字符串  
        string WebContent = new StreamReader(stream, System.Text.Encoding.UTF8).ReadToEnd();  
        //返回获取到的cookie  
        return CookiC;  
    }  
    /// <summary>  
    /// 获取目标网站cookie  
    /// </summary>  
    /// <returns>CookieContainer</returns>  
    public static CookieContainer Get\_ssoSinaLogin()  
    {  
        //新建cookie容器  
        CookieContainer CookiC = new CookieContainer();  
        //处理表单的绝对URL地址  
        string FormURL = Url;  
        //表单需要提交的参数,注意改为你已注册的信息。  
        // "entry=blog&reg\_entry=blog&reference=http://blog.sina.com.cn&door=&safe\_login=1&username=" + Username + "&password=" + Password;  
        string FormData = PostDate;  
        //设定编码格式  
        Encoding encoding = Encoding.UTF8;  
        //将编码转换成字节数组  
        byte\[\] data = encoding.GetBytes(FormData);  
        //创建HttpWebRequest请求  
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FormURL);  
        ///<!--设定标头开始-->  
        //数据提交方式  
        request.Method = "POST";  
        //设定请求连接类型  
        request.ContentType = "application/x-www-form-urlencoded";  
        request.Accept = "text/html, application/xhtml+xml, \*/\*";  
        request.KeepAlive = true;  
        //设定请求内容长度  
        request.ContentLength = data.Length;  
        //声明了浏览器用于 HTTP 请求的用户代理头的值  
        request.UserAgent = " Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; 360SE)";  
        ///<!--设定标头结束-->  
        //返回请求数据流  
        Stream newStream = request.GetRequestStream();  
        //向当前流中写入字节序列  
        newStream.Write(data, , data.Length);  
        //关闭流  
        newStream.Close();  
        //获取或设置与此请求关联的 cookie。  
        request.CookieContainer = CookiC;  
        //返回来自 Internet 资源的响应。  
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
        //将返回的cookie添加进cookie容器  
        CookiC.Add(response.Cookies);  
        //获取流,该流用于读取来自服务器的响应的体。  
        Stream stream = response.GetResponseStream();  
        //将流转换成指定编码格式字符串  
        string WebContent = new StreamReader(stream, System.Text.Encoding.UTF8).ReadToEnd();  
        //返回获取到的cookie  
        return CookiC;  
    }

    /// <summary>  
    /// 遍历CookieContainer提取cookie  
    /// </summary>  
    /// <param name="cc">需要遍历的CookieContainer</param>  
    /// <returns>List<Cookie></returns>  
    public static List<Cookie> GetAllCookies(CookieContainer cc)  
    {  
        List<Cookie> lstCookies = new List<Cookie>();  
        Hashtable table = (Hashtable)cc.GetType().InvokeMember("m\_domainTable", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, cc, new object\[\] { });  
        foreach (object pathList in table.Values)  
        {  
            SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m\_list", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, pathList, new object\[\] { });  
            foreach (CookieCollection colCookies in lstCookieCol.Values)  
                foreach (Cookie c in colCookies) lstCookies.Add(c);  
        }  
        return lstCookies;  
    }  
}  

}

INIClass专门ini操作类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;
namespace 沃狐新浪博客推广系统
{
class INIClass
{
public string inipath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
[DllImport("kernel32")]
private static extern long WritePrivateProfileSection(string section, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, Byte[] retVal, int size, string filePath);
///

/// 构造方法 ///
/// 文件路径
public INIClass(string INIPath)
{
inipath = INIPath;
if (inipath == null || inipath.Length < || !ExistINIFile)
{
File.Create(INIPath).Close();
}
}

    /// <summary>  
    /// 写入INI文件  
    /// </summary>  
    /// <param name="Section">项目名称(如 \[TypeName\] )</param>  
    /// <param name="Key">键</param>  
    /// <param name="Value">值</param>  
    public void IniWriteValue(string Section, string Key, object objValue)  
    {  
        if (objValue == null) objValue = "";  
        WritePrivateProfileString(Section, Key, objValue.ToString().Trim(), this.inipath);  
    }  
    /// <summary>  
    /// 写入INI文件,没有健只有值  
    /// </summary>  
    /// <param name="Section">项目名称(如 \[TypeName\] )</param>  
    /// <param name="Value">值</param>  
    public void IniWriteSection(string section, string val)  
    {  
        WritePrivateProfileSection(section, val, this.inipath);  
    }  
    /// <summary>  
    /// 读出INI文件  
    /// </summary>  
    /// <param name="Section">项目名称(如 \[TypeName\] )</param>  
    /// <param name="Key">键</param>  
    public string IniReadValue(string Section, string Key)  
    {  
        StringBuilder temp = new StringBuilder();  
        int i = GetPrivateProfileString(Section, Key, "", temp, , this.inipath);  
        return temp.ToString();  
    }  
    /// <summary>  
    /// 读出INI文件数组  
    /// </summary>  
    /// <param name="Section">项目名称(如 \[TypeName\] )</param>  
    /// <param name="Key">键</param>  
    public byte\[\] IniReadValueNew(string Section, string Key)  
    {  
        byte\[\] temp = new byte\[\];  
        int i = GetPrivateProfileString(Section, Key, "", temp, , this.inipath);  
        return temp;  
    }  
    /// <summary>  
    /// 验证文件是否存在  
    /// </summary>  
    /// <returns>布尔值</returns>  
    public bool ExistINIFile  
    {  
        get {  
            return File.Exists(inipath);  
        }  
    }  
}  

}

Sendwall新浪发送信息类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Net;
using System.Web;
using System.IO;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
namespace 沃狐新浪博客推广系统
{
class Sendwall
{

  private  string tuid="";  
    public string Tuid  
    {  
        get  
        {  
            return tuid;  
        }  
        set  
        {  
            tuid = value;  
        }  
    }  
  private   string fuid="";  
    public string Fuid  
    {  
        get  
        {  
            return fuid;  
        }  
        set  
        {  
            fuid = value;  
        }  
    }  
    private   string content="";  
    public string Content  
    {  
        get  
        {  
            return content;  
        }  
        set  
        {  
            content = value;  
        }  
    }  
    CookieContainer cc = new CookieContainer();  
    public CookieContainer Cc  
    {  
        get  
        {  
            return cc;  
        }  
        set  
        {  
            cc = value;  
        }  
    }  
    private Form1  m\_spiderForm;  
    /// <summary>  
    ///蜘蛛报告其结果的对象。  
    /// </summary>此处最难理解  
    public Form1 ReportTo  
    {  
        get  
        {  
            return m\_spiderForm;  
        }

        set  
        {  
            m\_spiderForm = value;  
        }  
    }  
    //转换成URlEncode  
    public string UrlEncode(string str)  
    {  
        StringBuilder sb = new StringBuilder();  
        byte\[\] byStr = System.Text.Encoding.UTF8.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str)  
        for (int i = ; i < byStr.Length; i++)  
        {  
            sb.Append(@"%" + Convert.ToString(byStr\[i\], ));  
        }

        return (sb.ToString());  
    }  
    //Form1 frm1 = new Form1();  
    //发纸条目前无法判断是否发生成功  
    public void SendwallF()  
    {  
        string FormData = "version=7";  
        FormData += "&varname=addFriendRequest";  
        FormData += "&tuid=" + Tuid;//自己  
        FormData += "&rnd=1342799242793" ;  
        FormData += "&fuid=" + fuid;//对方  
        FormData += "&content=" + UrlEncode(Content);  
        FormData += "&authcode=";  
       //http://control.blog.sina.com.cn/riaapi/profile/messagesend.php?tuid=2823833972&fuid=2774260630&authcode=3281&content=%E4%BD%A0%E5%A5%BD&varname=addFriendRequest&version=7&rnd=1342799242793  
        string FormURL = "http://control.blog.sina.com.cn/riaapi/profile/messagesend.php";  
        //try  
        //{  
            HttpWebRequest Myrequest = (HttpWebRequest)WebRequest.Create(FormURL + FormData);  
            Myrequest.CookieContainer = Cc;  
            Myrequest.Timeout = ;  
            Myrequest.ContentType = "application/x-www-form-urlencoded";  
            Myrequest.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; 360SE)";  
            Myrequest.Accept = "application/javascript, \*/\*;q=0.8";  
            Myrequest.Headers.Add("Accept-Language", "zh-CN");  
            //  
            Myrequest.Headers.Add("Accept-Encoding", "gzip, deflate");  
            //  
            Myrequest.Headers.Add("Cache-Control", "no-cache");

            Myrequest.Referer = "http://blog.sina.com.cn/s/profile\_" + fuid + ".html";  
            HttpWebResponse Myresponse = (HttpWebResponse)Myrequest.GetResponse();  
            cc.Add(Myresponse.Cookies);  
            Stream Mystream = Myresponse.GetResponseStream();  
            string WebContent = new StreamReader(Mystream, Encoding.GetEncoding("utf-8")).ReadToEnd();  
            Myresponse.Close();  
            Mystream.Close();

            ReportTo.SetrichTextWithDelegate(ReportTo.richTextBox1, "发送纸条:" + WebContent + "成功");  
            ReportTo.autoEventStartF.Reset();  
        //}  
        //catch  
        //{  
        //    frm1.SetrichTextWithDelegate(frm1.richTextBox1, "发送纸条失败");  
        //}  
        //string WebContent = new StreamReader(Mystream, Encoding.GetEncoding("utf-8")).ReadToEnd();  
        //Match m = Regex.Match(WebContent, @"{\\""rows\\""(\[^}\]\*)}", RegexOptions.IgnoreCase);  
        //return true;  
    }  
    //发送留言  
    public void SendmsgF()  
    {  
        //try  
        //{  
            //请求参数设定  
            string FormData = "domain=1";  
            //  
            FormData += "&uid=" + Tuid;  
            //  
            FormData += "&msg=" + Content;  
            //  
            string FormURL = "http://control.blog.sina.com.cn/blog\_rebuild/riaapi/profile/note/notewalladd.php";  
            //  
            Encoding encoding = Encoding.UTF8;  
            //  
            byte\[\] data = encoding.GetBytes(FormData);  
            //  
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FormURL);  
            //  
            request.Method = "POST";  
            //数据提交方式  
            request.ContentType = "application/x-www-form-urlencoded";

            //  
            request.KeepAlive = true;  
            //  
            request.AllowWriteStreamBuffering = true;  
            //  
            request.Credentials = System.Net.CredentialCache.DefaultCredentials;  
            //  
            request.MaximumResponseHeadersLength = -;  
            //  
            request.Referer = "http://blog.sina.com.cn/u/" + Tuid;  
            //  
            request.Accept = "text/html, application/xhtml+xml, \*/\*";  
            //  
            request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";  
            //  
            request.Headers.Add("Accept-Language", "zh-CN");  
            //  
            request.Headers.Add("Accept-Encoding", "gzip, deflate");  
            //  
            request.Headers.Add("Cache-Control", "no-cache");  
            //  
            request.CookieContainer = Cc;  
            //  
            request.ContentLength = data.Length;  
            //模拟一个UserAgent  
            Stream newStream = request.GetRequestStream();  
            //  
            newStream.Write(data, , data.Length);  
            //  
            newStream.Close();  
            //  
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
            //  
            request.GetResponse().ResponseUri.ToString();  
            //  
            Stream stream = response.GetResponseStream();  
            //  
            string WebContent = new StreamReader(stream, System.Text.Encoding.UTF8).ReadToEnd();  
            //

            Match m = Regex.Match(WebContent, @"{\\""rows\\""(\[^}\]\*)}", RegexOptions.IgnoreCase);  
            //  
            ReportTo.SetrichTextWithDelegate(ReportTo.richTextBox1, "发送留言成功");  
            ReportTo.autoEventStartF.Reset();  
        //if (m.Success)  
        //{  
        //    string str = m.Value.Replace("rows", "");  
        //    str = str.Replace(":", "");  
        //    //str = str.Replace("{", "");  
        //    //str = str.Replace("}", "");  
        //    if (str.Length > 3)  
        //    {  
        //        return true;  
        //    }  
        //    else  
        //    {  
        //        return false;  
        //    }  
        //}  
        //else  
        //{  
        //    return false;  
        //}  
        //}  
        //catch { return false; }  
    }  
    //加好友  
    public void SendaddFriendF()  
    {  
        string FormData = "version=7";  
        FormData += "&varname=addFriendRequest";  
        FormData += "&tuid=" + Tuid;  
        FormData += "&rnd=";  
        FormData += "&fuid=" + fuid;  
        FormData += "&content=" + UrlEncode(Content);  
        FormData += "&authcode=";  
        //try  
        //{  
        string FormURL = "http://control.blog.sina.com.cn/riaapi/profile/invitesend.php";  
        HttpWebRequest Myrequest = (HttpWebRequest)WebRequest.Create(FormURL + FormData);  
        Myrequest.CookieContainer = Cc;  
        HttpWebResponse Myresponse = (HttpWebResponse)Myrequest.GetResponse();  
        cc.Add(Myresponse.Cookies);  
        Stream Mystream = Myresponse.GetResponseStream();  
        //return true;  
        //}  
        //catch { return false; }  
        ReportTo.autoEventStartF.Reset();  
    }  
    //加关注  
    public void SendattentionF()  
    {  
        Random rd = new Random();  
        string FormData = "varname=requestId\_"+rd.Next().ToString();;  
        FormData += "&uid=" + fuid;  
        FormData += "&aid=" + Tuid;  
        string FormURL = "http://control.blog.sina.com.cn/riaapi/profile/attention\_add.php";  
        //try  
        //{  
        HttpWebRequest Myrequest = (HttpWebRequest)WebRequest.Create(FormURL + FormData);  
        Myrequest.CookieContainer = Cc;  
        HttpWebResponse Myresponse = (HttpWebResponse)Myrequest.GetResponse();  
        cc.Add(Myresponse.Cookies);  
        Stream Mystream = Myresponse.GetResponseStream();  
        //return true;  
        //}  
        //catch { return false; }  
        ReportTo.autoEventStartF.Reset();  
    }  
}  

}

xmlRW专门xml读写类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

using System.Windows.Forms;
namespace 沃狐新浪博客推广系统
{
class xmlRW
{

    public List<xmlUserLogin> Read(string path)  
    {  
        int UserCode = ;  
        string Auser="",UserPwd = "", UserName = "", Remark = "";  
        List<xmlUserLogin> list = new List<xmlUserLogin>();  
        XmlReaderSettings xmlSet = new XmlReaderSettings();  
                using (XmlReader reader = XmlReader.Create(path, xmlSet))  
                {  
                    while (reader.Read())  //使用XmlReader对象单向高效地读取xml文件  
                    {  
                            xmlUserLogin UserLogin = new xmlUserLogin();  
                            if (reader.NodeType == XmlNodeType.Element && "User" == reader.LocalName)  
                            {  
                                Auser =reader.GetAttribute();  
                            }  
                            if (reader.NodeType == XmlNodeType.Element && "UserCode" == reader.LocalName)  
                            {  
                                UserCode = Convert.ToInt16(reader.ReadString());  
                            }  
                            if (reader.NodeType == XmlNodeType.Element && "UserName" == reader.LocalName)  
                            {  
                                UserName= reader.ReadString();  
                            }  
                            if (reader.NodeType == XmlNodeType.Element && "UserPwd" == reader.LocalName)  
                            {  
                                UserPwd = reader.ReadString();

                            }  
                            if (reader.NodeType == XmlNodeType.Element && "Remark" == reader.LocalName)  
                            {

                                UserLogin.auser = Auser;  
                                UserLogin.userCode = UserCode;  
                                UserLogin.userName = UserName;  
                                UserLogin.userPwd = UserPwd;  
                                UserLogin.remark = Remark;  
                                list.Add(UserLogin);  
                            }

                  }  
            }  
        return list;  
    }

    //WriteXml 完成对User的修改密码操作  
    //FileName 当前xml文件的存放位置  
    //UserCode 欲操作用户的编码  
    //UserPassword 欲修改用户的密码  
    public void UpdateNode(string FileName,  string OUserName,string NUserName, string NUserPwd,string Remark)  
    {  
        //初始化XML文档操作类  
        XmlDocument myDoc = new XmlDocument();  
        //加载XML文件  
        myDoc.Load(FileName);  
        //搜索指定的节点  
        System.Xml.XmlNodeList nodes = myDoc.SelectNodes("//User");  
        if (nodes != null)  
        {  
            foreach (System.Xml.XmlNode xn in nodes)  
            {  
                if (xn.SelectSingleNode("UserName").InnerText == OUserName)  
                {  
                    xn.SelectSingleNode("UserName").InnerText = NUserName;  
                    xn.SelectSingleNode("UserPwd").InnerText = NUserPwd;  
                    xn.SelectSingleNode("Remark").InnerText = Remark; 

                }         

            }  
        }  
        myDoc.Save(FileName);  
    }

    //DeleteNode 完成对User的添加操作  
    //FileName 当前xml文件的存放位置  
    //UserCode 欲添加用户的编码  
    public void DeleteNode(string FileName, string UserName)  
    {  
        //初始化XML文档操作类  
        XmlDocument myDoc = new XmlDocument();  
        //加载XML文件  
        myDoc.Load(FileName);  
        //搜索指定某列,一般是主键列  
        XmlNodeList myNode = myDoc.SelectNodes("//UserName");  
        //判断是否有这个节点  
        if (!(myNode == null))  
        {  
            //遍历节点,找到符合条件的元素  
            foreach (XmlNode  xn in myNode)  
            {  
                if (xn.InnerXml == UserName)  
                    //删除元素的父节点  
                    xn.ParentNode.ParentNode.RemoveChild(xn.ParentNode);  
            }  
        }  
    //保存  
    myDoc.Save(FileName);  
    }  
    //WriteXml 完成对User的添加操作  
    //FileName 当前xml文件的存放位置  
    //UserCode 欲添加用户的编码  
    //UserName 欲添加用户的姓名  
    //UserPassword 欲添加用户的密码  
    public void AddNode(string FileName, string UserName, string UserPassword, string Remark)  
    {  
        //初始化XML文档操作类  
        XmlDocument myDoc = new XmlDocument();  
        //加载XML文件  
        myDoc.Load(FileName);  
        //添加元素--UserName  
        XmlElement eleUserName = myDoc.CreateElement("UserName");  
        XmlText textUserName = myDoc.CreateTextNode(UserName);  
        //添加元素--UserPwd  
        XmlElement eleUserPwd = myDoc.CreateElement("UserPwd");  
        XmlText textUserPwd = myDoc.CreateTextNode(UserPassword);  
        //添加元素--Remark  
        XmlElement eleRemark = myDoc.CreateElement("Remark");  
        XmlText textRemark = myDoc.CreateTextNode(Remark);  
        //添加节点 User要对应我们xml文件中的节点名字  
        XmlNode newElem = myDoc.CreateNode(XmlNodeType.Element, "User","");

        XmlAttribute newElemAttrib =null;  
        newElemAttrib = myDoc.CreateAttribute("eb");  
        newElemAttrib.Value = "true";  
        newElem.Attributes.Append(newElemAttrib);  
        //newElem.Attributes  
        //newElem = myDoc.CreateNode(XmlNodeType.Attribute, "eb", "true");  
        //在节点中添加元素  
        newElem.AppendChild(eleUserName);  
        newElem.LastChild.AppendChild(textUserName);

        newElem.AppendChild(eleUserPwd);  
        newElem.LastChild.AppendChild(textUserPwd);

        newElem.AppendChild(eleRemark);  
        newElem.LastChild.AppendChild(textRemark);  
        //将节点添加到文档中  
        XmlElement root = myDoc.DocumentElement;  
    root.AppendChild(newElem);  
    //保存  
        myDoc.Save(FileName);            }  
}  
}

xmlUserLogin参数类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 沃狐新浪博客推广系统
{
class xmlUserLogin
{
private string Auser = "";
private int UserCode = ;
private string UserName = "";
private string UserPwd = "";
private string Remark = "";
public string auser
{
get
{
return Auser;
}
set
{
Auser = value;
}
}
public int userCode
{
get
{
return UserCode;
}
set
{
UserCode = value;
}
}
public string userPwd {
get
{
return UserPwd;
}
set
{
UserPwd = value;
}
}
public string userName
{
get {
return UserName;
}
set
{
UserName = value;
}
}
public string remark {
get
{
return Remark;
}
set
{
Remark = value;
}
}
}
}

c# 读写xml 操作类

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Xml;

namespaceKeyCalc
{
classXmlClass
{
///

/// 配置文件路径 ///
privatestringxmlFilePath;
/// /// 皮肤索引  ///
publicstringskinIndex;
/// /// 皮肤路径 ///
publicstringskinPath;

    publicXmlClass()  
    {  
        //指定XML文件名  
        xmlFilePath ="config.xml";  
        //检测XML配置文件是否存在  
        if(System.IO.File.Exists(xmlFilePath))  
            return;  
        CreateDefaultXml();  
    }

    #region " ReadXML() 读取XML配置文件的参数设置,获取下载的TXT文件路径与上传的数据文件路径"  
    /// <summary>  
    /// 读取XML配置文件的参数设置,获取下载的TXT文件路径与上传的数据文件路径  
    /// </summary>  
    /// <returns></returns>  
    publicboolReadXML()  
    {  
        try  
        {  
            XmlDocument xmlDoc=newXmlDocument();  
            //读取XML配置文件  
            xmlDoc.Load(xmlFilePath);

            //读取XML文件节点  
            XmlNode rootNode = xmlDoc.SelectSingleNode("Skin").SelectSingleNode("ParameterSet");  
            if( rootNode==null)  
                throw(newException("XML配置文件信息异常"));

            //获取XML文件参数设置下的节点值  
            XmlElement downfile = (XmlElement)(rootNode.SelectSingleNode("SkinIndex"));  
            if(downfile ==null)  
                throw(newException("XML配置文件信息异常"));  
            skinIndex = downfile.InnerText;  
            XmlElement uploadfile = (XmlElement)(rootNode.SelectSingleNode("SkinPath"));  
            if(uploadfile ==null)  
                throw(newException("XML配置文件信息异常"));  
            skinPath = uploadfile.InnerText;

            returntrue;  
        }  
        catch(System.Exception e)  
        {  
            throw(e);  
        }  
    }  
    #endregion

    #region " WriteXML() 写XML配置文件的参数设置,保存下载的TXT文件路径与上传的数据文件路径"  
    /// <summary>  
    /// 写XML配置文件的参数设置,保存下载的TXT文件路径与上传的数据文件路径  
    /// </summary>  
    /// <returns></returns>  
    publicboolWriteXML()  
    {  
        try  
        {  
            XmlDocument xmlDoc =newXmlDocument();  
            //读取XML配置文件  
            xmlDoc.Load(xmlFilePath);

            //读取XML文件节点  
            XmlNode rootNode = xmlDoc.SelectSingleNode("Skin").SelectSingleNode("ParameterSet");  
            if(rootNode ==null)  
                throw(newException("XML配置文件信息异常"));

            //设置XML文件节点的值  
            XmlElement skinIndexs = (XmlElement)(rootNode.SelectSingleNode("SkinIndex"));  
            if(skinIndexs ==null)  
                throw(newException("XML配置文件信息异常"));  
            skinIndexs.InnerText = skinIndex;  
            XmlElement skinPaths = (XmlElement)(rootNode.SelectSingleNode("SkinPath"));  
            if(skinPaths ==null)  
                throw(newException("XML配置文件信息异常"));  
            skinPaths.InnerText = skinPath;

            //保存XML文件  
            xmlDoc.Save(xmlFilePath);

            returntrue;  
        }  
        catch(System.Exception ex)  
        {  
            throw(ex);  
        }  
    }  
    #endregion

    #region " CreateDefaultXml() 创建一个默认的XML配置文件"  
    /// <summary>  
    /// 创建一个默认的XML配置文件  
    /// </summary>  
    privatevoidCreateDefaultXml()  
    {  
        try  
        {  
            XmlDocument xmlDoc =newXmlDocument();  
            //创建XML文件描述  
            XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0","GB2312",null);  
            xmlDoc.AppendChild(dec);  
            //创建根元素  
            XmlNode root = xmlDoc.CreateNode(XmlNodeType.Element,"Skin","");  
            xmlDoc.AppendChild(root);

            //添加参数设置节点  
            XmlNode parConfig = xmlDoc.CreateNode(XmlNodeType.Element,"ParameterSet","");  
            root.AppendChild(parConfig);

            //添加下载到PDA的TXT文件路径  
            XmlElement skinIndexs = xmlDoc.CreateElement("SkinIndex");  
            skinIndexs.InnerText ="";  
            parConfig.AppendChild(skinIndexs);  
            //添加PDA数据文件上传到PC端的文件路径  
            XmlElement skinPaths = xmlDoc.CreateElement("SkinPath");  
            skinPaths.InnerText ="";  
            parConfig.AppendChild(skinPaths);

            //保存xml文件  
            xmlDoc.Save(xmlFilePath);  
        }  
        catch(System.Exception ex)  
        {  
            throw(newException("创建默认XML文件失败"+ex.Message));  
        }  
    }  
    #endregion  

}  

}

C#读写XML文件

**************************** phone.xml ****************************

加菲尔德 纽约 // 迈克 纽约 //
*********************************************************************
·使用Document读取及写入XML方法
private void xmlfun()
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("phone.xml"));
XmlElement node = doc.CreateElement("phone");
XmlAttribute atr = doc.CreateAttribute("id");
atr.InnerText = "";
node.Attributes.Append(atr);
XmlNode xnode = (XmlNode)doc.CreateElement("Name");
xnode.InnerText="testName";
node.AppendChild(xnode);
xnode = (XmlNode)doc.CreateElement("Number");
xnode.InnerText="";
node.AppendChild(xnode);
xnode = (XmlNode)doc.CreateElement("City");
xnode.InnerText="cs";
node.AppendChild(xnode);
xnode = (XmlNode)doc.CreateElement("DateOfBirth");
xnode.InnerText="12/02/1978";
node.AppendChild(xnode);
doc.DocumentElement.InsertAfter(node,doc.DocumentElement.LastChild);
doc.Save(Server.MapPath("phone1.xml")); //必须要存为不同的文件
}

·使用XmlTextWriter写入XML方法
private void xmlwriter()
{
XmlTextWriter writer= new XmlTextWriter(Server.MapPath("phone4.xml"),null);
writer.Formatting = Formatting.Indented; //缩进格式
writer.Indentation =;
writer.WriteStartDocument();
writer.WriteStartElement("Person");
writer.WriteStartAttribute("ID",null);
writer.WriteString("");
writer.WriteEndAttribute();
writer.WriteStartElement("Name");
writer.WriteString("testWriterName");
writer.WriteEndElement();
writer.WriteStartElement("Number");
writer.WriteString("");
writer.WriteEndElement();
writer.WriteStartElement("City");
writer.WriteString("testWriterCity");
writer.WriteEndElement();
writer.Flush();
writer.Close();
}

·使用XmlTextReader读取XML方法
private void xmlread()
{
XmlTextReader reader = new XmlTextReader(Server.MapPath("phone.xml"));
while(reader.Read())
{
if(reader.LocalName.Equals("Name") || reader.LocalName.Equals("Number"))
{
this.Label1.Text += reader.ReadString()+"\t";
}

·作用SqlCommand.ExecuteXmlReader()取得XML
SqlConnecting conn = new SqlConnection(CONNSTR);
SqlCommand cmd = new SqlCommand("select fname from employee for xml auto",conn);
conn.open();
XmlReader reader = cmd.ExecuteXmlReader();
……
################ 所取xml数据格式 #################

……

C#读写INI文件

摘自:伊图教程网[www.etoow.com]
http://www.etoow.com/html/2007-08/1187271505-1.html

   虽然微软早已经建议在WINDOWS中用注册表代替INI文件,但是在实际应用中,INI文件仍然有用武之地,尤其现在绿色软件的流行,越来越多的程序将自己的一些配置信息保存到了INI文件中。       INI文件是文本文件,由若干节(section)组成,在每个带括号的标题下面,是若干个关键词(key)及其对应的值(Value)  

  [Section]
  Key=Value

   VC中提供了API函数进行INI文件的读写操作,但是微软推出的C#编程语言中却没有相应的方法,下面是一个C# ini文件读写类,从网上收集的,很全,就是没有对section的改名功能,高手可以增加一个。

using System;

using System.IO;

using System.Runtime.InteropServices;

using System.Text;

using System.Collections;

using System.Collections.Specialized;

namespace wuyisky{

  /**/

  ///

  /// IniFiles的类

  ///

  public class IniFiles

  {

    public string FileName; //INI文件名

    //声明读写INI文件的API函数

    [DllImport("kernel32")]

    private static extern bool WritePrivateProfileString(string section, string key, string val, string filePath);

    [DllImport("kernel32")]

    private static extern int GetPrivateProfileString(string section, string key, string def, byte[] retVal, int size, string filePath);

    //类的构造函数,传递INI文件名

    public IniFiles(string AFileName)

    {

      // 判断文件是否存在

      FileInfo fileInfo = new FileInfo(AFileName);

      //Todo:搞清枚举的用法

      if ((!fileInfo.Exists))

      { //|| (FileAttributes.Directory in fileInfo.Attributes))

        //文件不存在,建立文件

        System.IO.StreamWriter sw = new System.IO.StreamWriter(AFileName, false, System.Text.Encoding.Default);

        try

        {

          sw.Write("#表格配置档案");

          sw.Close();

        }

        catch

        {

          throw (new ApplicationException("Ini文件不存在"));

        }

      }

      //必须是完全路径,不能是相对路径

      FileName = fileInfo.FullName;

    }

    //写INI文件

    public void WriteString(string Section, string Ident, string Value)

    {

      if (!WritePrivateProfileString(Section, Ident, Value, FileName))

      {

        throw (new ApplicationException("写Ini文件出错"));

      }

    }

    //读取INI文件指定

    public string ReadString(string Section, string Ident, string Default)

    {

      Byte[] Buffer = new Byte[];

      int bufLen = GetPrivateProfileString(Section, Ident, Default, Buffer, Buffer.GetUpperBound(), FileName);

      //必须设定0(系统默认的代码页)的编码方式,否则无法支持中文

      string s = Encoding.GetEncoding().GetString(Buffer);

      s = s.Substring(, bufLen);

      return s.Trim();

    }

    //读整数

    public int ReadInteger(string Section, string Ident, int Default)

    {

      string intStr = ReadString(Section, Ident, Convert.ToString(Default));

      try

      {

        return Convert.ToInt32(intStr);

      }

      catch (Exception ex)

      {

        Console.WriteLine(ex.Message);

        return Default;

      }

    }

    //写整数

    public void WriteInteger(string Section, string Ident, int Value)

    {

      WriteString(Section, Ident, Value.ToString());

    }

    //读布尔

    public bool ReadBool(string Section, string Ident, bool Default)

    {

      try

      {

        return Convert.ToBoolean(ReadString(Section, Ident, Convert.ToString(Default)));

      }

      catch (Exception ex)

      {

        Console.WriteLine(ex.Message);

        return Default;

      }

    }

    //写Bool

    public void WriteBool(string Section, string Ident, bool Value)

    {

      WriteString(Section, Ident, Convert.ToString(Value));

    }

    //从Ini文件中,将指定的Section名称中的所有Ident添加到列表中

    public void ReadSection(string Section, StringCollection Idents)

    {

      Byte[] Buffer = new Byte[];

      //Idents.Clear();

      int bufLen = GetPrivateProfileString(Section, null, null, Buffer, Buffer.GetUpperBound(),

       FileName);

      //对Section进行解析

      GetStringsFromBuffer(Buffer, bufLen, Idents);

    }

    private void GetStringsFromBuffer(Byte[] Buffer, int bufLen, StringCollection Strings)

    {

      Strings.Clear();

      if (bufLen != )

      {

        int start = ;

        for (int i = ; i < bufLen; i++)

        {

          if ((Buffer[i] == ) && ((i - start) > ))

          {

            String s = Encoding.GetEncoding().GetString(Buffer, start, i - start);

            Strings.Add(s);

            start = i + ;

          }

        }

      }

    }

    //从Ini文件中,读取所有的Sections的名称

    public void ReadSections(StringCollection SectionList)

    {

      //Note:必须得用Bytes来实现,StringBuilder只能取到第一个Section

      byte[] Buffer = new byte[];

      int bufLen = ;

      bufLen = GetPrivateProfileString(null, null, null, Buffer,

       Buffer.GetUpperBound(), FileName);

      GetStringsFromBuffer(Buffer, bufLen, SectionList);

    }

    //读取指定的Section的所有Value到列表中

    public void ReadSectionValues(string Section, NameValueCollection Values)

    {

      StringCollection KeyList = new StringCollection();

      ReadSection(Section, KeyList);

      Values.Clear();

      foreach (string key in KeyList)

      {

        Values.Add(key, ReadString(Section, key, ""));

      }

    }

    ////读取指定的Section的所有Value到列表中,

    //public void ReadSectionValues(string Section, NameValueCollection Values,char splitString)

    //{  string sectionValue;

    //  string[] sectionValueSplit;

    //  StringCollection KeyList = new StringCollection();

    //  ReadSection(Section, KeyList);

    //  Values.Clear();

    //  foreach (string key in KeyList)

    //  {

    //    sectionValue=ReadString(Section, key, "");

    //    sectionValueSplit=sectionValue.Split(splitString);

    //    Values.Add(key, sectionValueSplit[0].ToString(),sectionValueSplit[1].ToString());

    //  }

    //}

    //清除某个Section

    public void EraseSection(string Section)

    {

      //

      if (!WritePrivateProfileString(Section, null, null, FileName))

      {

        throw (new ApplicationException("无法清除Ini文件中的Section"));

      }

    }

    //删除某个Section下的键

    public void DeleteKey(string Section, string Ident)

    {

      WritePrivateProfileString(Section, Ident, null, FileName);

    }

    //Note:对于Win9X,来说需要实现UpdateFile方法将缓冲中的数据写入文件

    //在Win NT, 2000和XP上,都是直接写文件,没有缓冲,所以,无须实现UpdateFile

    //执行完对Ini文件的修改之后,应该调用本方法更新缓冲区。

    public void UpdateFile()

    {

      WritePrivateProfileString(null, null, null, FileName);

    }

    //检查某个Section下的某个键值是否存在

    public bool ValueExists(string Section, string Ident)

    {

      //

      StringCollection Idents = new StringCollection();

      ReadSection(Section, Idents);

      return Idents.IndexOf(Ident) > -;

    }

    //确保资源的释放

    ~IniFiles()

    {

      UpdateFile();

    }

  }

}

按行读取txt

(函数名凭记忆写的,可能不准确,但差不多)

string = File.ReadAll(filename); 获得整个文本

string[] = File.ReadLines(filename); 获得整个文本,每一行作为一个string,放到数组,应该可以满足你的要求,除非文件特别大。

如果你是因为文件比较大,所以要只读取其中某几行的话,那就只能建立一个file对象,一行行的读,不需要的跳过,直到读到你需要的行,因为“行”这个东西没有办法定位。

如果这个需求量很大,可以考虑自己写一个索引文件,把行号对应的文件偏移量保存起来,下一次就直接seek到对应的位置开始读就可以了。

霸王

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.IO;

namespace ReadLine_Demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void button1\_Click(object sender, EventArgs e)  
    {  
        string\[\] stringlines = File.ReadAllLines("d:\\\\a.txt",Encoding.Default);  
        //foreach (string s in stringlines)  
        //{  
        //    this.richTextBox1.Text = s;  
        //    MessageBox.Show(s);

        //}  
        for (int i = ; i < ; i++)  
        {  
            if (i < stringlines.Length)  
            {  
                this.richTextBox1.Text = stringlines\[i\].ToString();  
                MessageBox.Show(stringlines\[i\].ToString());  
            }  
        }  
    }  
}  

}

用C#读写ini配置文件

INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数.
INI文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的值(VALUE).例如:
[Section1]
KeyWord1 = Value1
KeyWord2 = Value2

[Section2]
KeyWord3 = Value3
KeyWord4 = Value4

C#命名空间中没有直接读写INI的类,当然如果你把INT当成文本文件用System.IO类来读写算我没说.
我现在介绍的是系统处理INI的方法.
虽然C#中没有,但是在"kernel32.dll"这个文件中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString()
C#声明INI文件的写操作函数WritePrivateProfileString():
[DllImport( "kernel32" )]
private static extern long WritePrivateProfileString ( string section ,string key , string val
, string filePath ) ;
参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件中关键字的数值;filePath:INI文件的完整的路径和名称。
C#申明INI文件的读操作函数GetPrivateProfileString():[DllImport("kernel32")]
private static extern int GetPrivateProfileString ( string section ,
string key , string def , StringBuilder retVal ,
int size , string filePath ) ;
参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。

下面是一个读写INI文件的类:
public class INIClass
{
public string inipath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);
///

/// 构造方法 ///
/// 文件路径
public INIClass(string INIPath)
{
inipath = INIPath;
}
/// /// 写入INI文件 ///
/// 项目名称(如 [TypeName] )
///
///
public void IniWriteValue(string Section,string Key,string Value)
{
WritePrivateProfileString(Section,Key,Value,this.inipath);
}
/// /// 读出INI文件 ///
/// 项目名称(如 [TypeName] )
///
public string IniReadValue(string Section,string Key)
{
StringBuilder temp = new StringBuilder();
int i = GetPrivateProfileString(Section,Key,"",temp,,this.inipath);
return temp.ToString();
}
/// /// 验证文件是否存在 ///
/// 布尔值
public bool ExistINIFile()
{
return File.Exists(inipath);
}
}