• 常用功能函数


    using System;
    using System.Collections.Generic;
    using System.Text;
    
    using System.Runtime.InteropServices; //调用DLL需要引用空间
    using System.Management; //获取计算机硬件信息需要引用的空间,需要添加引用
    using System.Windows.Forms;
    using System.IO;
    //当你引用using Excel = Microsoft.Office.Interop.Excel;时如果出现
    //命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是缺少程序集引用吗?)的错误时,检查你是否添加了
    //Microsoft Office 11.0 Object Library 组件;添加引用-->com-->Microsoft Office 11.0 Object Library,
    //接着再添加Microsoft.Office.Interop.Excel组件;添加引用-->.net-->Microsoft.Office.Interop.Excel,
    using Excel = Microsoft.Office.Interop.Excel;
    using System.Reflection;
    using System.Net;  // 网络 
    using System.Net.Sockets;
    namespace Function
    {
        public class MyClass
        {
            #region 设置日期格式
            [DllImport("kernel32.dll", EntryPoint = "GetSystemDefaultLCID")]
            public static extern int GetSystemDefaultLCID();
            [DllImport("kernel32.dll", EntryPoint = "SetLocaleInfoA")]
            public static extern int SetLocaleInfo(int Locale, int LCType, string lpLCData);
            public const int LOCALE_SLONGDATE = 0x20;
            public const int LOCALE_SSHORTDATE = 0x1F;
            public const int LOCALE_STIME = 0x1003;
            public void SetDateFormat()
            {
                try
                {
                    int x = GetSystemDefaultLCID();
                    SetLocaleInfo(x, LOCALE_STIME, "HH:mm:ss");        //时间格式  
                    SetLocaleInfo(x, LOCALE_SSHORTDATE, "yyyy-MM-dd");   //短日期格式    
                    SetLocaleInfo(x, LOCALE_SLONGDATE, "yyyy-MM-dd");   //长日期格式   
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            #endregion
    
            #region 全角转半角
            public string ToDBC(string inputString)
            {
                char[] CharacterArray = inputString.ToCharArray();
    
                for (int i = 0; i < CharacterArray.Length; i++)
                {
                    if (CharacterArray[i] == 12288)
                    {
                        CharacterArray[i] = (char)32;
    
                        continue;
                    }
                    if (CharacterArray[i] > 65280 && CharacterArray[i] < 65375)
    
                        CharacterArray[i] = (char)(CharacterArray[i] - 65248);
                }
                return new string(CharacterArray);
            }
            #endregion
    
            #region 金额小写转大写
            private static String[] Ls_ShZ ={ "", "", "", "", "", "", "", "", "", "", "" };
            private static String[] Ls_DW_Zh ={ "", "", "", "", "", "", "", "", "亿", "", "", "", "" };
            private static String[] Num_DW ={ "", "", "", "", "", "", "", "", "亿", "", "", "", "" };
            private static String[] Ls_DW_X ={ "", "" };
            /// <summary>
            /// 金额小写转中文大写。
            /// 整数支持到万亿;小数部分支持到分(超过两位将进行Banker舍入法处理)
            /// </summary>
            /// <param name="Num">需要转换的双精度浮点数</param>
            /// <returns>转换后的字符串</returns>
            public String NumGetStr(Double Num)
            {
                Boolean iXSh_bool = false;//是否含有小数,默认没有(0则视为没有)
                Boolean iZhSh_bool = true;//是否含有整数,默认有(0则视为没有)
    
                string NumStr;//整个数字字符串
                string NumStr_Zh;//整数部分
                string NumSr_X = "";//小数部分
                string NumStr_DQ;//当前的数字字符
                string NumStr_R = "";//返回的字符串
                Num = Math.Round(Num, 2);//四舍五入取两位
                //各种非正常情况处理
                if (Num < 0)
                    return "不转换欠条";
                if (Num > 9999999999999.99)
                    return "很难想象谁会有这么多钱!";
                if (Num == 0)
                    return Ls_ShZ[0];
                //判断是否有整数
                if (Num < 1.00)
                    iZhSh_bool = false;
                NumStr = Num.ToString();
                NumStr_Zh = NumStr;//默认只有整数部分
                if (NumStr_Zh.Contains("."))
                {//分开整数与小数处理
                    NumStr_Zh = NumStr.Substring(0, NumStr.IndexOf("."));
                    NumSr_X = NumStr.Substring((NumStr.IndexOf(".") + 1), (NumStr.Length - NumStr.IndexOf(".") - 1));
                    iXSh_bool = true;
                }
                if (NumSr_X == "" || int.Parse(NumSr_X) <= 0)
                {//判断是否含有小数部分
                    iXSh_bool = false;
                }
                if (iZhSh_bool)
                {//整数部分处理
                    // NumStr_Zh = Reversion_Str(NumStr_Zh);//反转字符串
                    for (int a = 0; a < NumStr_Zh.Length; a++)
                    {//整数部分转换
                        NumStr_DQ = NumStr_Zh.Substring(a, 1);
                        if (int.Parse(NumStr_DQ) != 0)
                            NumStr_R = Ls_ShZ[int.Parse(NumStr_DQ)] + Ls_DW_Zh[a] + NumStr_R;
                        else if (a == 0 || a == 4 || a == 8)
                        {
                            if (NumStr_Zh.Length > 8 && a == 4)
                                continue;
                            NumStr_R = Ls_DW_Zh[a] + NumStr_R;
                        }
                        else if (int.Parse(NumStr_Zh.Substring(a - 1, 1)) != 0)
                            NumStr_R = Ls_ShZ[int.Parse(NumStr_DQ)] + NumStr_R;
                    }
                    if (!iXSh_bool)
                        return NumStr_R + "";
                    //NumStr_R += "零";
                }
                for (int b = 0; b < NumSr_X.Length; b++)
                {//小数部分转换
                    NumStr_DQ = NumSr_X.Substring(b, 1);
                    if (int.Parse(NumStr_DQ) != 0)
                        NumStr_R += Ls_ShZ[int.Parse(NumStr_DQ)] + Ls_DW_X[b];
                    else if (b != 1 && iZhSh_bool)
                        NumStr_R += Ls_ShZ[int.Parse(NumStr_DQ)];
                }
                return NumStr_R;
            }
            #endregion
    
            #region 获取计算机硬件信息及系统版本
            private string OSBit()
            {
                try
                {
                    ConnectionOptions oConn = new ConnectionOptions();
    
                    System.Management.ManagementScope managementScope = new System.Management.ManagementScope("\\localhost", oConn);
    
                    System.Management.ObjectQuery objectQuery = new System.Management.ObjectQuery("select AddressWidth from Win32_Processor");
    
                    ManagementObjectSearcher moSearcher = new ManagementObjectSearcher(managementScope, objectQuery);
    
                    ManagementObjectCollection moReturnCollection = null;
    
                    string addressWidth = null;
    
                    moReturnCollection = moSearcher.Get();
    
                    foreach (ManagementObject oReturn in moReturnCollection)
                    {
                        addressWidth = oReturn["AddressWidth"].ToString();
                    }
                    return addressWidth;
                }
                catch
                {
                    return "获取错误";
                }
    
            }
            /// <summary>
            /// 获取计算机硬件信息及系统版本
            /// </summary>
            /// <returns></returns>
            public string GetOsVersion()
            {
                string osBitString = OSBit();
    
                string osVersionString = Environment.OSVersion.ToString();
    
                return string.Format(@"系统:{0},{1} 位。", osVersionString, osBitString);
            }
    
            /// <summary>
            /// 获取获取CPU序列号代码 
            /// </summary>
            /// <returns></returns>
            public string GetCpuID()
            {
                try
                {
                    //获取CPU序列号代码 
                    string cpuInfo = "";//cpu序列号 
    
                    ManagementClass mc = new ManagementClass("Win32_Processor");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                    }
                    moc = null;
                    mc = null;
                    return "cpu序列号:" + cpuInfo;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary>
            /// 获取网卡硬件地址
            /// </summary>
            /// <returns></returns>
            public string GetMacAddress()
            {
                try
                {
                    //获取网卡硬件地址 
                    string mac = "";
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        if ((bool)mo["IPEnabled"] == true)
                        {
                            mac = mo["MacAddress"].ToString();
                            break;
                        }
                    }
                    moc = null;
                    mc = null;
                    return "网卡MAC地址:" + mac;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary>
            /// /获取IP地址 
            /// </summary>
            /// <returns></returns>
            public string GetIPAddress()
            {
                try
                {
                    //获取IP地址 
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        if ((bool)mo["IPEnabled"] == true)
                        {
                            //st=mo["IpAddress"].ToString(); 
                            System.Array ar;
                            ar = (System.Array)(mo.Properties["IpAddress"].Value);
                            st = ar.GetValue(0).ToString();
                            break;
                        }
                    }
                    moc = null;
                    mc = null;
                    return "IP地址:" + st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary>
            /// 获取硬盘ID 
            /// </summary>
            /// <returns></returns>
            public string GetDiskID()
            {
                try
                {
                    //获取硬盘ID 
                    String HDid = "";
                    ManagementClass mc = new ManagementClass("Win32_DiskDrive");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        HDid = (string)mo.Properties["Model"].Value;
                    }
                    moc = null;
                    mc = null;
                    return "硬盘序列号:" + HDid;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary> 
            /// 操作系统的登录用户名 
            /// </summary> 
            /// <returns></returns> 
            public string GetUserName()
            {
                try
                {
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        st = mo["UserName"].ToString();
                    }
                    moc = null;
                    mc = null;
                    return "系统登录用户名:" + st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary> 
            /// PC类型 
            /// </summary> 
            /// <returns></returns> 
            public string GetSystemType()
            {
                try
                {
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        st = mo["SystemType"].ToString();
                    }
                    moc = null;
                    mc = null;
                    return "电脑类型:" + st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary> 
            /// 物理内存 
            /// </summary> 
            /// <returns></returns> 
            public string GetTotalPhysicalMemory()
            {
                try
                {
                    string st = "";
                    ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        st = mo["TotalPhysicalMemory"].ToString();
                    }
                    moc = null;
                    mc = null;
                    return "物理内存:" + st;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            /// <summary> 
            ///  获取计算机名称
            /// </summary> 
            /// <returns></returns> 
            public string GetComputerName()
            {
                try
                {
                    return "计算机名:" + System.Environment.GetEnvironmentVariable("ComputerName");
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }
            #endregion
    
            #region DataGridView数据显示到Excel
            /// <summary>      
            /// 打开Excel并将DataGridView控件中数据导出到Excel     
            /// </summary>      
            /// <param name="dgv">DataGridView对象 </param>      
            /// <param name="isShowExcle">是否显示Excel界面 </param>      
            /// <remarks>     
            /// add com "Microsoft Excel 11.0 Object Library"     
            /// using Excel=Microsoft.Office.Interop.Excel;     
            /// </remarks>     
            /// <returns> </returns>      
            public bool DataGridviewShowToExcel(DataGridView dgv, bool isShowExcle)
            {
                if (dgv.Rows.Count == 0)
                {
                    MessageBox.Show("没有数据可以导出!");
                    return false;
                }
                try
                {
                    //建立Excel对象 
                    //Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 
                    Excel.Application excel = new Excel.Application();
                    excel.Application.Workbooks.Add(true);
                    excel.Visible = isShowExcle;
                    //生成字段名称      
                    for (int i = 0; i < dgv.ColumnCount; i++)
                    {
                        excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
                    }
                    //填充数据      
                    for (int i = 0; i < dgv.RowCount - 1; i++)
                    {
                        for (int j = 0; j < dgv.ColumnCount; j++)
                        {
                            if (dgv[j, i].ValueType == typeof(string))
                            {
                                excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();
                            }
                            else
                            {
                                excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
                            }
                        }
                    }
                    return true;
                }
                catch (System.Exception ex)
                {
                    DataGridViewToExcel_CSV(dgv);
                    return true;
                }
            }
            #endregion
    
            #region DateGridView导出到csv格式的Excel
            /// <summary>     
            /// 常用方法,列之间加/t,一行一行输出,此文件其实是csv文件,不过默认可以当成Excel打开。     
            /// </summary>     
            /// <remarks>     
            /// using System.IO;     
            /// </remarks>     
            /// <param name="dgv"></param>     
            private void DataGridViewToExcel_CSV(DataGridView dgv)
            {
                SaveFileDialog kk = new SaveFileDialog();
                kk.Title = "保存EXECL文件";
                kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*";
                kk.FilterIndex = 1;
                if (kk.ShowDialog() == DialogResult.OK)
                {
                    string FileName = kk.FileName;
                    if (File.Exists(FileName))
                        File.Delete(FileName);
                    FileStream objFileStream;
                    StreamWriter objStreamWriter;
                    string strLine = "";
                    objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
                    objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);
                    for (int i = 0; i < dgv.Columns.Count; i++)
                    {
                        if (dgv.Columns[i].Visible == true)
                        {
                            strLine = strLine + dgv.Columns[i].HeaderText.ToString() + Convert.ToChar(9);
                        }
                    }
                    objStreamWriter.WriteLine(strLine);
                    strLine = "";
    
                    for (int i = 0; i < dgv.Rows.Count; i++)
                    {
                        if (dgv.Columns[0].Visible == true)
                        {
                            if (dgv.Rows[i].Cells[0].Value == null)
                                strLine = strLine + " " + Convert.ToChar(9);
                            else
                                strLine = strLine + dgv.Rows[i].Cells[0].Value.ToString() + Convert.ToChar(9);
                        }
                        for (int j = 1; j < dgv.Columns.Count; j++)
                        {
                            if (dgv.Columns[j].Visible == true)
                            {
                                if (dgv.Rows[i].Cells[j].Value == null) strLine = strLine + " " + Convert.ToChar(9);
                                else
                                {
                                    string rowstr = "";
                                    rowstr = dgv.Rows[i].Cells[j].Value.ToString();
                                    if (rowstr.IndexOf("
    ") > 0)
                                        rowstr = rowstr.Replace("
    ", " ");
                                    if (rowstr.IndexOf("	") > 0)
                                        rowstr = rowstr.Replace("	", " ");
                                    strLine = strLine + rowstr + Convert.ToChar(9);
                                }
                            }
                        }
                        objStreamWriter.WriteLine(strLine);
                        strLine = "";
                    }
                    objStreamWriter.Close();
                    objFileStream.Close();
                    MessageBox.Show("保存EXCEL成功", "提示");
                }
            }
            #endregion
    
            #region <不使用> DataGridView导出到Excel,有一定的判断性
            /// <summary>   
            /// !不使用!,导出DataGridView中的数据到Excel文件
            /// </summary>   
            /// <remarks>  
            /// add com "Microsoft Excel 11.0 Object Library"  
            /// using Excel=Microsoft.Office.Interop.Excel;  
            /// using System.Reflection;  
            /// </remarks>  
            /// <param name= "dgv"> DataGridView </param>   
            public void DataGridViewToExcel(DataGridView dgv)
            {
    
    
                #region   验证可操作性
    
                //申明保存对话框   
                SaveFileDialog dlg = new SaveFileDialog();
                //默然文件后缀   
                dlg.DefaultExt = "xls ";
                //文件后缀列表   
                dlg.Filter = "EXCEL文件(*.XLS)|*.xls ";
                //默然路径是系统当前路径   
                dlg.InitialDirectory = Directory.GetCurrentDirectory();
                //打开保存对话框   
                if (dlg.ShowDialog() == DialogResult.Cancel) return;
                //返回文件路径   
                string fileNameString = dlg.FileName;
                //验证strFileName是否为空或值无效   
                if (fileNameString.Trim() == " ")
                { return; }
                //定义表格内数据的行数和列数   
                int rowscount = dgv.Rows.Count;
                int colscount = dgv.Columns.Count;
                //行数必须大于0   
                if (rowscount <= 0)
                {
                    MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
    
                //列数必须大于0   
                if (colscount <= 0)
                {
                    MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
    
                //行数不可以大于65536   
                if (rowscount > 65536)
                {
                    MessageBox.Show("数据记录数太多(最多不能超过65536条),不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
    
                //列数不可以大于255   
                if (colscount > 255)
                {
                    MessageBox.Show("数据记录行数太多,不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
    
                //验证以fileNameString命名的文件是否存在,如果存在删除它   
                FileInfo file = new FileInfo(fileNameString);
                if (file.Exists)
                {
                    try
                    {
                        file.Delete();
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show(error.Message, "删除失败 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
                #endregion
                Excel.Application objExcel = null;
                Excel.Workbook objWorkbook = null;
                Excel.Worksheet objsheet = null;
                try
                {
                    //申明对象   
                    objExcel = new Microsoft.Office.Interop.Excel.Application();
                    objWorkbook = objExcel.Workbooks.Add(Missing.Value);
                    objsheet = (Excel.Worksheet)objWorkbook.ActiveSheet;
                    //设置EXCEL不可见   
                    objExcel.Visible = false;
    
                    //向Excel中写入表格的表头   
                    int displayColumnsCount = 1;
                    for (int i = 0; i <= dgv.ColumnCount - 1; i++)
                    {
                        if (dgv.Columns[i].Visible == true)
                        {
                            objExcel.Cells[1, displayColumnsCount] = dgv.Columns[i].HeaderText.Trim();
                            displayColumnsCount++;
                        }
                    }
                    //设置进度条   
                    //tempProgressBar.Refresh();   
                    //tempProgressBar.Visible   =   true;   
                    //tempProgressBar.Minimum=1;   
                    //tempProgressBar.Maximum=dgv.RowCount;   
                    //tempProgressBar.Step=1;   
                    //向Excel中逐行逐列写入表格中的数据   
                    for (int row = 0; row <= dgv.RowCount - 1; row++)
                    {
                        //tempProgressBar.PerformStep();   
    
                        displayColumnsCount = 1;
                        for (int col = 0; col < colscount; col++)
                        {
                            if (dgv.Columns[col].Visible == true)
                            {
                                try
                                {
                                    objExcel.Cells[row + 2, displayColumnsCount] = dgv.Rows[row].Cells[col].Value.ToString().Trim();
                                    displayColumnsCount++;
                                }
                                catch (Exception)
                                {
    
                                }
    
                            }
                        }
                    }
                    //隐藏进度条   
                    //tempProgressBar.Visible   =   false;   
                    //保存文件   
                    objWorkbook.SaveAs(fileNameString, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Excel.XlSaveAsAccessMode.xlShared, Missing.Value, Missing.Value, Missing.Value,
                            Missing.Value, Missing.Value);
                }
                catch (Exception error)
                {
                    //DataGridViewToExcel_CSV(dgv);
                    MessageBox.Show(error.Message, "警告 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                finally
                {
                    //关闭Excel应用   
                    if (objWorkbook != null) objWorkbook.Close(Missing.Value, Missing.Value, Missing.Value);
                    if (objExcel.Workbooks != null) objExcel.Workbooks.Close();
                    if (objExcel != null) objExcel.Quit();
    
                    objsheet = null;
                    objWorkbook = null;
                    objExcel = null;
                }
                MessageBox.Show(fileNameString + "/n/n导出完毕! ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            #endregion
    
            #region ini文件读写
            /// <summary>
            /// ini文件读写
            /// </summary>
            /// <param name="lpAppName"></param>
            /// <param name="lpKeyName"></param>
            /// <param name="lpDefault"></param>
            /// <param name="lpReturnedString"></param>
            /// <param name="nSize"></param>
            /// <param name="lpFileName"></param>
            /// <returns></returns>
            [DllImport("kernel32.dll")]
            private static extern uint GetPrivateProfileString
            (
                string lpAppName,
                string lpKeyName,
                string lpDefault,
                StringBuilder lpReturnedString,
                int nSize,
                string lpFileName
            );
            [DllImport("kernel32.dll")]
            private static extern uint WritePrivateProfileString(
                string lpappName,
                string lpKeyName,
                string lpstring,
                string lpFileName
            );
            public string ReadINI(string a1, string a2)           //读取配置文件
            {
                StringBuilder buff = new StringBuilder(256);
                GetPrivateProfileString(a1, a2, "", buff, 256, System.Windows.Forms.Application.StartupPath + "\Config.dll");
                return buff.ToString().Trim();
            }
            public string WriteINI(string w1, string w2, string w3)                 //写入配置文件
            {
                long success = WritePrivateProfileString(w1, w2, w3, System.Windows.Forms.Application.StartupPath + "\Config.dll");
                return success.ToString();
            }
            #endregion

           #region 字符串截取
             /// <summary>
            /// str为要进行截取的字符串,start是第一个关键字(字符串),last是第二个关键字(字符串),n截取字符串方式  
             /// </summary>
            /// <param name="str">tr为要进行截取的字符串</param>
            /// <param name="start">start是第一个关键字(字符串)</param>
            /// <param name="last">last是第二个关键字(字符串)</param>
            /// <param name="n">n截取字符串方式  </param>
            /// <returns>string</returns>
            public string GetContent(string str, string start, string last, int n)
            {
                if (str.ToLower().IndexOf(start.ToLower()) >= 0)
                {
                    if (str.ToLower().IndexOf(last.ToLower()) > 0)
                    {
                        switch (n)
                        {
                            //左右都截取(都取前面)(包含关键字)       
                            case 1: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower()));
                                str = str.Substring(0, str.ToLower().IndexOf(last.ToLower()) + last.Length); break;
                            //左右都截取(都取前面)(去除关键字)                    
                            case 2: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length);
                                str = str.Substring(0, str.ToLower().IndexOf(last.ToLower())); break;
                            //左右都截取(都取后面)(包含关键字)                    
                            case 3: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()), str.Length - str.ToLower().LastIndexOf(start.ToLower()));
                                str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower()) + last.Length); break;
                            //左右都截取(都取后面)(去除关键字)                    
                            case 4: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().LastIndexOf(start.ToLower()) - start.Length);
                                str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower())); break;
                            //左右都截取(一前一后)(包含关键字)                      
                            case 5: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower()));
                                str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower()) + last.Length); break;
                            //左右都截取(一前一后)(去除关键字)                      
                            case 6: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length);
                                str = str.Substring(0, str.ToLower().LastIndexOf(last.ToLower())); break;
                            default: str = "Error str"; break;
                        }
                    }
                    else
                    {
                        switch (n)
                        {
                            //只往左截取(取前面的)(包含关键字)           
                            case 7: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower()) + start.Length); break;
                            //只往左截取(取前面的)(去除关键字)                    
                            case 8: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower())); break;
                            //只往左截取(取后面的)(包含关键字)                   
                            case 9: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower()) + start.Length); break;
                            //只往左截取(取后面的)(去除关键字)                  
                            case 10: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower())); break;
                            //只往右截取(取前面的)(包含关键字)                    
                            case 11: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); break;
                            //只往右截取(取前面的)(去除关键字)                  
                            case 12: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); break;
                            //只往右截取(取后面的)(包含关键字)                    
                            case 13: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()), str.Length - str.ToLower().LastIndexOf(start.ToLower())); break;
                            //只往右截取(取后面的)(去除关键字)                     
                            case 14: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().LastIndexOf(start.ToLower()) - start.Length); break;
                            default: str = "Error str"; break;
                        }
                    }
                }
                else
                {
                    str = "Error str";
                }
                return str;
            }
            #endregion
    
            #region SQL 端口状态检测
            /// <summary>
            /// SQL 端口状态监测
            /// </summary>
            /// <param name="ip">IP</param>
            /// <param name="port">端口号</param>
            /// <returns>boolean</returns>
            public Boolean PortState(string ip, string port)
            {
                if (ToDBC(ip) == ".")
                {
                    ip = "127.0.0.1";
                }
                Boolean state;
                bool tcpListen = false;
                bool udpListen = false;//设定端口状态标识位 
                System.Net.IPAddress myIpAddress = null; //字符串转换为IP地址
                System.Net.IPEndPoint myIpEndPoint = null;
                try
                {
                    myIpAddress = IPAddress.Parse(ToDBC(ip));
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return false;
                }
    
                try
                {
                    myIpEndPoint = new IPEndPoint(myIpAddress, int.Parse(port));
                    System.Net.Sockets.TcpClient tcpClient = new TcpClient();
                    tcpClient.Connect(myIpEndPoint);
                    //对远程计算机的指定端口提出TCP连接请求
                    //tcpListen = tcpClient.Connected.Equals(true);
                    tcpListen = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return false;
                }
                try
                {
                    System.Net.Sockets.UdpClient udpClient = new UdpClient();
                    udpClient.Connect(myIpEndPoint);
                    //对远程计算机的指定端口提出UDP连接请求
                    udpListen = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return false;
                }
                if (tcpListen == true && udpListen == true)
                {
                    state = true;
                }
                else
                {
                    state = false;
                }
                return state;
            }
            #endregion
        }
    }

    百度到的,自己整理了一下!

  • 相关阅读:
    HDU 5791 Two(训练题002 F)
    HDU 5783 Divide the Sequence (训练题002 B)
    关于01背包和完全背包二重循环的顺序(前人之技,后人惊叹)
    关于01背包求第k优解
    最长上升子序列(logN算法)
    ACM课程总结
    Problem F
    关于狄克斯特拉算法(dijkstra)总结
    Problem I
    OBJ文件格式分析工具: objdump, nm,ar
  • 原文地址:https://www.cnblogs.com/xiyueD/p/3727744.html
Copyright © 2020-2023  润新知