我常用的有下面这些SHA\SHA256\SHA512\MD5加密
DES加解密
money<->string 转换
改造过的datagrid
改造过的richtextbox
dataset->excel

解决方案 »

  1.   

    现在想不起来了。等用到时就想起来了。
    不过大多数时间是查MSDN了。
    你有吗?
    可以共享吗?
    等待中……
      

  2.   

    ASP中的有!但是.Net中的,少哦!
      

  3.   

    1.要计算一个 整型/长整形/浮点数/金额 类型数组中
       所有元素的合计或最大值或最小值
    ----------------------------------------------
    合计或最大值或最小值,一个函数返回可以返回3个值,这样做不合适,应该写成一个继承System.Collections.ArrayList的类比较好。2.要把一个数组/集合/或任意对象保存到文件中
       以后需要时再从文件中读取出来
    ----------------------------------------------
    没有必要写这么一个函数,而且这个函数缺少灵活,比如将一个字符串数组可以直接保存在一个文本文件中,但一个对象就需要序列化了,如果写也应该是一个类。
      

  4.   

    3.要把一个字符串居中,并且左边分别填充 '='符号
       如果字符串中带有中文呢
    --------------------------------------------
    对于不提供对齐的控件功能的控件有用,可以先判断字符串的字节长度然后通过字符串实例的PadLeft和PadRight,我没写过,因为.net里的控件一般都提供对齐。4.给你一个以 市尺/市寸 为单位的长度值
       转换成相应的 英寸或者 光年
    -----------------------------------------
    没写过,但这种东西也应该是个类。
      

  5.   

    to CMIC
    1.要计算一个 整型/长整形/浮点数/金额 类型数组中
       所有元素的合计或最大值或最小值是指写几个函数来完成这些功能,不是说一个函数,比方Sum(),Max(),Min()下面的交换也是一样的
      

  6.   

    同意``有几个函数作用不是很大诶常用的函数包里应该还要有封装好的数据库访问类吧~~
    以及经过自己包装的控件~~
    比如支持复杂分页功能的DataGrid,在客户端运行的日历控件(这种网上好象都找的到),
    实现身份验证的一组登录用文本框
      

  7.   

    using System;
    using System.Security.Cryptography;
    using System.Text;namespace Test.CommonPrj
    {
    public class cls_RasEncrypt
    {
    public static readonly System.Version myVersion = new System.Version(1,0); static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding) {
    try {    
    RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
    RSA.ImportParameters(RSAKeyInfo);
    return RSA.Encrypt(DataToEncrypt, DoOAEPPadding);
    }
    catch {
    return null;
    }
    } static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding) {
    try {
    RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
    RSA.ImportParameters(RSAKeyInfo);
    return RSA.Decrypt(DataToDecrypt, DoOAEPPadding);
    }
    catch {
    return null;
    }
    } /// <summary>
    /// RSA.Encrypt
    /// </summary>
    /// <param name="DataToEncrypt"></param>
    /// <param name="publicKey">try 128bit bytes</param>
    /// <param name="exponent">any bytes</param>
    /// <param name="DoOAEPPadding"></param>
    /// <returns></returns>
    static public byte[] RSAEncrypt(byte[] DataToEncrypt, byte[] publicKey, byte[] exponent, bool DoOAEPPadding) {
    RSAParameters RSAKeyInfo = new RSAParameters();
    RSAKeyInfo.Modulus = publicKey;
    RSAKeyInfo.Exponent = exponent; return RSAEncrypt(DataToEncrypt, RSAKeyInfo, DoOAEPPadding);
    } static public byte[] RSADecrypt(byte[] DataToDecrypt, byte[] publicKey, byte[] exponent, bool DoOAEPPadding) {
    RSAParameters RSAKeyInfo = new RSAParameters();
    RSAKeyInfo.Modulus = publicKey;
    RSAKeyInfo.Exponent = exponent; return RSADecrypt(DataToDecrypt, RSAKeyInfo, DoOAEPPadding);
    } static public byte[] RSAEncrypt(byte[] DataToEncrypt, bool DoOAEPPadding) {
    RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); return RSAEncrypt(DataToEncrypt,RSA.ExportParameters(true),DoOAEPPadding);

    } static public byte[] RSADecrypt(byte[] DataToDecrypt, bool DoOAEPPadding) {
    RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); return RSADecrypt(DataToDecrypt,RSA.ExportParameters(true),DoOAEPPadding);
    }
    }
    }
      

  8.   

    把一个金额或数字转换中文大写或英文大写:
    -------------------------------------------------------------
    public class ConvCapit
    {
    public ConvCapit()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
     
    private static readonly string   cnNumber      = "零壹贰叁肆伍陆柒捌玖";
    private static readonly string   cnUnit        = "分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟";
    private static readonly string[] enSmallNumber = {"","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","TEN",  "ELEVEN","TWELVE","THIRTEEN","FOURTEEN","FIFTEEN","SIXTEEN","SEVENTEEN","EIGHTEEN","NINETEEN"};
    private static readonly string[] enLargeNumber = {"TWENTY","THIRTY","FORTY","FIFTY","SIXTY","SEVENTY","EIGHTY","NINETY"};
    private static readonly string[] enUnit        = {"","THOUSAND","MILLION","BILLION","TRILLION"}; // 最大转化金额         9999999999999999.99  (16位整数位,2位小数位)
    // 方法返回值           转换成功则返回非零长字串,否则返回零长字串 // 静态英文转换方法     string GetEnString(string MoneyString)
    // 最大转化金额         999999999999999.99   (15位整数位,2位小数位)
    // 方法返回值           转换成功则返回非零长字串,否则返回零长字串
    // 以下是货币金额中文大写转换方法
    public static string ConvertNumberToChineseMoneyString(string MoneyString)
    {
    string [] tmpString  = MoneyString.Split('.');
    string    intString  = MoneyString;   // 默认为整数
    string    decString  = "";            // 保存小数部分字串
    string    rmbCapital = "";            // 保存中文大写字串
    int       k;
    int       j;
    int       n; if (tmpString.Length>1)
    {
    intString = tmpString[0];             // 取整数部分
    decString = tmpString[1];             // 取小数部分
    }
    decString += "00";
    decString  = decString.Substring (0,2);   // 保留两位小数位
    intString += decString; try
    {
    k = intString.Length -1;
    if (k>0 && k<18)
    {
    for (int i=0;i<=k;i++)
    {
    j=(int)intString[i]-48;
    // rmbCapital = rmbCapital + cnNumber[j] + cnUnit[k-i];     // 供调试用的直接转换
    n = i+1 >= k ? (int)intString[k]-48:(int)intString[i+1]-48; // 等效于 if( ){ }else{ }
    if (j==0)
    {
    if(k-i==2 || k-i==6 || k-i==10 || k-i==14)
    {
    rmbCapital += cnUnit[k-i];
    }
    else
    {
    if (n != 0)
    {
    rmbCapital  += cnNumber[j];
    }
    }
    }
    else
    {
    rmbCapital = rmbCapital + cnNumber[j] + cnUnit[k-i];
    }
    } rmbCapital = rmbCapital.Replace ("兆亿万","兆");
    rmbCapital = rmbCapital.Replace ("兆亿","兆");
    rmbCapital = rmbCapital.Replace ("亿万","亿");
    rmbCapital = rmbCapital.TrimStart('元');
    rmbCapital = rmbCapital.TrimStart('零'); return rmbCapital; 
    }
    else
    {
    return "";   // 超出转换范围时,返回零长字串
    }
    }
    catch
    {
    return "";   // 含有非数值字符时,返回零长字串
    }
    }
    // 以下是货币金额英文大写转换方法
    public static string ConvertNumberToEnglishMoneyString(string MoneyString)
    {
    string [] tmpString  = MoneyString.Split('.');
    string    intString  = MoneyString;   // 默认为整数
    string    decString  = "";            // 保存小数部分字串
    string    engCapital = "";            // 保存英文大写字串
    string    strBuff1;
    string    strBuff2;
    string    strBuff3;
    int       curPoint;
    int       i1;
    int       i2;
    int       i3;
    int       k;
    int       n;
       
    if (tmpString.Length >1)
    {
    intString = tmpString[0];             // 取整数部分
    decString = tmpString[1];             // 取小数部分
    }
    decString += "00";
    decString  = decString.Substring (0,2);   // 保留两位小数位
       
    try
    {
    // 以下处理整数部分
    curPoint = intString.Length-1;
    if (curPoint>-1 && curPoint<15)
    {
    k = 0;
    while(curPoint>=0)
    {
    strBuff1 = "";
    strBuff2 = "";
    strBuff3 = "";
    if (curPoint>=2)
    {
    n=int.Parse(intString.Substring(curPoint-2,3));
    if (n !=0)
    {
    i1 = n/100;            // 取佰位数值
    i2 = (n-i1*100)/10;    // 取拾位数值
    i3 = n-i1*100-i2*10;   // 取个位数值
    if (i1 !=0)
    {
    strBuff1 = enSmallNumber[i1] + " HUNDRED ";
    }
    if (i2!=0)
    {
    if (i2==1)
    {
    strBuff2 = enSmallNumber[i2*10+i3] + " ";
    }
    else 
    {
    strBuff2 = enLargeNumber[i2-2] + " ";
    if (i3 !=0)
    {
    strBuff3 = enSmallNumber[i3] + " ";
    }
    }
    }
    else
    {
    if (i3 !=0)
    {
    strBuff3 = enSmallNumber[i3] + " ";
    }
    }
    engCapital = strBuff1 + strBuff2 + strBuff3 + enUnit[k] + " " + engCapital;   
    }
    }
    else
    {
    n = int.Parse(intString.Substring(0,curPoint+1));
    if (n !=0)
    {
    i2 = n/10;      // 取拾位数值
    i3 = n-i2*10;   // 取个位数值
    if (i2!=0)
    {
    if (i2==1)
    {
    strBuff2 = enSmallNumber[i2*10+i3] + " ";
    }
    else 
    {
    strBuff2 = enLargeNumber[i2-2] + " ";
    if (i3 !=0)
    {
    strBuff3 = enSmallNumber[i3] + " ";
    }
    }
    }
    else
    {
    if (i3 !=0)
    {
    strBuff3 = enSmallNumber[i3] + " ";
    }
    }
    engCapital = strBuff2 + strBuff3 + enUnit[k] + " " + engCapital;
    }
    }
             
    ++k;
    curPoint -= 3;
    }
    engCapital = engCapital.TrimEnd();
    }   
    // 以下处理小数部分
    strBuff2 = "";
    strBuff3 = "";
    n = int.Parse(decString);
    if (n !=0)
    {
    i2 = n/10;      // 取拾位数值
    i3 = n-i2*10;   // 取个位数值
    if (i2!=0)
    {
    if (i2==1)
    {
    strBuff2 = enSmallNumber[i2*10+i3] + " ";
    }
    else 
    {
    strBuff2 = enLargeNumber[i2-2] + " ";
    if (i3 !=0)
    {
    strBuff3 = enSmallNumber[i3] + " ";
    }
    }
    }
    else
    {
    if (i3 !=0)
    {
    strBuff3 = enSmallNumber[i3] + " ";
    }
    } // 将小数字串追加到整数字串后
    if (engCapital.Length>0)
    {
    engCapital = engCapital + " AND CENTS " + strBuff2+strBuff3;   // 有整数部分时
    }
    else
    {
    engCapital = "CENTS " + strBuff2 + strBuff3;   // 只有小数部分时
    }
    }    engCapital = engCapital.TrimEnd();
    return engCapital;
    }
    catch
    {
    return "";   // 含非数字字符时,返回零长字串
    }
    } }
      

  9.   

    我写windows程序,一般会有一个Util类,里面一般都有自己封装的MessageBox类,就是不同类型的MessageBox(Info,Warning,Error,Conform...e.t.c)。另外ShowHelp也一般放在这里,在其他程序中只调用这个类的一个方法,然后传入Help的Key,在Util的这个ShowHelp方法中才真正调用.net的显示help方法。
    所有的资源也都放在这个类里,比如ResourceManager类。
    还会有一些自己的Exception,这个会单独建立一个文件,Exception的Handler也会单独建立一个文件。
    楼主说的那些方法,如果用到的话,会在Util类中实现的。但一般我用不到。
      

  10.   

    这么多人?那就再看下面几个函数,你是否有呢?1.测试一个值或对象在数组中是否存在2.拷贝一个/一批文件,或者把一个文件分割成几个文件,或者把文件压缩3.搜索一个目录下文件的内容,找到存在某个字符串的那些文件4.计算一个字符串表示的表达式,比方 (12 + 5 * 3) / 65.把字符串中的Tab转换成空格或反过来(要保持Tab位置)6.把一个数字表示成 24 进制数或者2进制数7.计算一个矩阵的逆阵或者计算它的特征根再提7个 :)
      

  11.   

    呵呵,我专门做一个cpp文件,包含一些常用的自定义函数!#include "stdafx.h"
    class function
    {
    public:
    CString static GetText(HWND hwnd,int nid)
    { LPTSTR str=new char [32];
    GetDlgItemText(hwnd,nid,str,32);
    return str;
    }
    int static bitset(int num,int bit){int bit_value[]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648};return num|bit_value[bit-1];}
    int static bittest(int num,int bit) {

    if(num>>(bit-1)&0x1==1)return 1;elsereturn 0;}void static fileopen(CSortListCtrl *plistbox)
    {
    CStdioFile file1;
    CString str;
    CFileDialog dlg(true,NULL,NULL,NULL,"*.arictext|*.arictext|All files|*.*||",NULL);
    if(dlg.DoModal()==IDOK)
    {
    str=dlg.GetPathName();
    if(str.Find(".arictext")==-1)
    str=str+".arictext";

    if(!file1.Open(str,CFile::modeRead))
    {
    MessageBox(NULL,"文件打开出错,请确保路径正确,并且有足够权限!","注意",0);}
    CString strr;BOOL noend=file1.ReadString(strr);
    plistbox->DeleteAllItems();
    while(noend)
    {
    char fenlichar[8][32];for(int i=0;i<7;i++)
    {
    int j;
    j=strr.Find(" ");
    memset(fenlichar[i],0,32);
    strcpy(fenlichar[i],(strr.Left(j)).GetBuffer(32));strr=strr.Mid(j+1);
    }
    strcpy(fenlichar[7],strr.GetBuffer(0));
    plistbox->AddItem(fenlichar[0],fenlichar[1],fenlichar[2],fenlichar[3],fenlichar[4],fenlichar[5],fenlichar[6],fenlichar[7]);noend=file1.ReadString(strr);
    }
    }}void static fileopen2(CSortListCtrl *plistbox)
    {
    CStdioFile file1;
    CString str;
    CFileDialog dlg(true,NULL,NULL,NULL,"*.arictext|*.arictext|All files|*.*||",NULL);
    if(dlg.DoModal()==IDOK)
    {
    str=dlg.GetPathName();
    if(str.Find(".arictext")==-1)
    str=str+".arictext";

    if(!file1.Open(str,CFile::modeRead))
    {
    MessageBox(NULL,"文件打开出错,请确保路径正确,并且有足够权限!","注意",0);}
    CString strr;BOOL noend=file1.ReadString(strr);
    plistbox->DeleteAllItems();
    while(noend)
    {
    char fenlichar[11][32];for(int i=0;i<10;i++)
    {
    int j;
    j=strr.Find(" ");
    memset(fenlichar[i],0,32);
    strcpy(fenlichar[i],(strr.Left(j)).GetBuffer(32));strr=strr.Mid(j+1);
    }
    strcpy(fenlichar[10],strr.GetBuffer(0));
    plistbox->AddItem(fenlichar[0],fenlichar[1],fenlichar[2],fenlichar[3],fenlichar[4],fenlichar[5],fenlichar[6],fenlichar[7],fenlichar[8],fenlichar[9],fenlichar[10]);noend=file1.ReadString(strr);
    }
    }}
    CString static fileopen3(CString filename)
    {
    CStdioFile file1;CFileDialog dlg(true,NULL,NULL,NULL,"*.arictext|*.arictext|All files|*.*||",NULL);
    if(!file1.Open(filename,CFile::modeRead))
    {
    MessageBox(NULL,"文件打开出错,请确保路径正确,并且有足够权限!","注意",0);}
    CString strr;if(file1.ReadString(strr))
    return strr;
    else
    return "";}
    void static filesave(CSortListCtrl *plistbox)
    { CStdioFile file1;
    CString str;
    CFileDialog dlg(false,NULL,NULL,NULL,"*.arictext|*.arictext|All files|*.*||",NULL);
    if(dlg.DoModal()==IDOK)
    {
    str=dlg.GetPathName();
    if(str.Find(".arictext")==-1)
    str=str+".arictext";

    if(!file1.Open(str,CFile::modeCreate|CFile::modeWrite))
    {
    MessageBox(NULL,"文件打开出错,请确保路径正确,并且有足够权限!","注意",0);}
    CString strr;
    CString ff;
    for(int j=0;j<plistbox->GetItemCount();j++)
    {
    strr="";for(int i=0;i<11;i++)
    strr=strr+plistbox->GetItemText(j,i)+" ";
    strr+="\n";
    file1.SeekToEnd();
    file1.Write(strr,strr.GetLength());}
    }}
    void static SetDlgItemFloat(HWND parent,int nid,float f)
    {
    CString str;
    str.Format("%f",f);
    SetDlgItemText(parent,nid,str);}float  static GetDlgItemFloat(HWND parent,int nid)
    {char str[32]="";
    GetDlgItemText(parent,nid,str,32);
    if(strcmp(str,"")==0)
    str="0";
    float a;
    sscanf(str.,"%f",&a);
    return a;}void static filesave(char * filename,char *recstr)
    { CStdioFile file1;
    MessageBox(NULL,recstr,"注意",0);if(!file1.Open(filename,CFile::modeNoTruncate|CFile::modeCreate|CFile::modeWrite))
    {
    MessageBox(NULL,"文件打开出错,请确保路径正确,并且有足够权限!","注意",0);}file1.SeekToEnd();
    file1.Write(recstr,strlen(recstr));
    }
    };