using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace BaseFunction
{
/// <summary>
/// 常用函数。
/// 作者:苏飞
/// 时间:20090322
/// </summary>
public sealed class Functions
{
static Int32 index;
#region 前面补零
/// <summary>
/// 不住位数的数字,前面补零
/// </summary>
/// <param name="value">要补足的数字</param>
/// <param name="size">不齐的位数</param>
/// <returns></returns>
public static string Zerofill(string value, int size)
{
string tmp = "";
for (int i = 0; i < size - value.Length; i++)
{
tmp += "0";
}
return tmp + value;
}
#endregion
#region 过滤掉 html代码
/// <summary>
/// 过滤html标签
/// </summary>
/// <param name="strHtml">html的内容</param>
/// <returns></returns>
public static string StripHTML(string strHtml)
{
string[] aryReg ={
@"<script[^>]*?>.*?</script>",
@"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>",
@"([\r\n])[\s]+",
@"&(quot|#34);",
@"&(amp|#38);",
@"&(lt|#60);",
@"&(gt|#62);", 
@"&(nbsp|#160);", 
@"&(iexcl|#161);",
@"&(cent|#162);",
@"&(pound|#163);",
@"&(copy|#169);",
@"(\d+);",
@"-->",
@"<!--.*\n"
};
string[] aryRep = {
"",
"",
"",
"\"",
"&",
"<",
">",
" ",
"\xa1",//chr(161),
"\xa2",//chr(162),
"\xa3",//chr(163),
"\xa9",//chr(169),
"",
"\r\n",
""
};
string newReg = aryReg[0];
string strOutput = strHtml;
for (int i = 0; i < aryReg.Length; i++)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(aryReg[i], System.Text.RegularExpressions.RegexOptions.IgnoreCase);
strOutput = regex.Replace(strOutput, aryRep[i]);
}
//strOutput.Replace("<", "");
//strOutput.Replace(">", "");
strOutput = strOutput.Replace("\r\n", "");
return strOutput;
}
#endregion
#region 全角半角转换
/// <summary>
/// 转全角的函数(SBC case)
/// </summary>
/// <param name="input">任意字符串</param>
/// <returns>全角字符串</returns>
///<remarks>
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</remarks>
public static string ToSBC(string input)
{
//半角转全角:
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 32)
{
c[i] = (char)12288;
continue;
}
if (c[i] < 127)
c[i] = (char)(c[i] + 65248);
}
return new string(c);
}
/// <summary> 转半角的函数(DBC case) </summary>
/// <param name="input">任意字符串</param>
/// <returns>半角字符串</returns>
///<remarks>
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</remarks>
public static string ToDBC(string input)
{
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 12288)
{
c[i] = (char)32;
continue;
}
if (c[i] > 65280 && c[i] < 65375)
c[i] = (char)(c[i] - 65248);
}
return new string(c);
}
#endregion
#region 传入URL返回网页的html代码
/// <summary>
/// 传入URL返回网页的html代码
/// </summary>
/// <param name="Url">URL</param>
/// <returns></returns>
public static string GetUrltoHtml(string Url)
{
try
{
System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
// Get the response instance.
System.Net.WebResponse wResp = wReq.GetResponse();
// Read an HTTP-specific property
//if (wResp.GetType() ==HttpWebResponse)
//{
//DateTime updated  =((System.Net.HttpWebResponse)wResp).LastModified;
//}
// Get the response stream.
System.IO.Stream respStream = wResp.GetResponseStream();
// Dim reader As StreamReader = New StreamReader(respStream)
System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
return reader.ReadToEnd();
}
catch (System.Exception ex)
{
//errorMsg = ex.Message;
}
return "";
}
#endregion
#region MD5加密字符串。截取字符串
/// <summary>
/// 传入明文,返回用MD%加密后的字符串
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <returns>用MD5加密后的字符串</returns>
public static string ToMD5(string str)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "md5");
}
/// <summary>
/// 截取字符串。
/// </summary>
/// <param name="str">要接取得字符串</param>
/// <param name="number">保留的字节数。按半角计算</param>
/// <returns>指定长度的字符串</returns>
public static string StringCal(string str, int number)
{
Byte[] tempStr = System.Text.Encoding.Default.GetBytes(str);
if (tempStr.Length > number)
{
return System.Text.Encoding.Default.GetString(tempStr, 0, number - 2) + "..";
}
else
return str;
}
#endregion
#region 删除文件
/// <summary>
/// 删除文件
/// </summary>
/// <param name="FilePath">文件的物理地址</param>
/// <returns></returns>
public static bool DeleteFile(string FilePath)
{
try
{
System.IO.File.Delete(FilePath);
return true;
}
catch
{
//errorMsg = "删除不成功!";
return false;
}
}
#endregion
#region 验证——数字部分
/// <summary>
/// 判断是否是实数,是返回true 否返回false。可以传入null。
/// </summary>
/// <param name="strVal">要验证的字符串</param>
/// <returns></returns>
public static bool IsNumeric(string strVal)
{
//System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex("-?([0]|([1-9]+\\d{0,}?))(.[\\d]+)?$");  
//return reg1.IsMatch(strVal);  
//string tmp="";
//判断是否为null 和空字符串
if (strVal == null || strVal.Length == 0)
return false;
//判断是否只有.、-、 -.
if (strVal == "." || strVal == "-" || strVal == "-.")
return false;
//记录是否有多个小数点
bool isPoint = false;            //是否有小数点
//去掉第一个负号,中间是不可以有负号的
strVal = strVal.TrimStart('-');
foreach (char c in strVal)
{
if (c == '.')
if (isPoint)
return false;
else
isPoint = true;
if ((c < '0' || c > '9') && c != '.')
return false;
}
return true;
}
/// <summary>
/// 判断是否为整数。是返回true 否返回false。可以传入null。
/// </summary>
/// <param name="strVal">要判断的字符</param>
/// <returns></returns>
public static bool IsInt(string strVal)
{
if (strVal == null || strVal.Length == 0)
return false;
//判断是否只有.、-、 -.
if (strVal == "." || strVal == "-" || strVal == "-.")
return false;
//去掉第一个负号,中间是不可以有负号的
if (strVal.Substring(0, 1) == "-")
strVal = strVal.Remove(0, 1);
foreach (char c in strVal)
{
if (c < '0' || c > '9')
return false;
}
return true;
}
/// <summary>
/// 判断是否为ID串。是返回true 否返回false。可以传入null。
/// </summary>
/// <example >
/// ,1,2,3,4,5,6,7,
/// </example>
/// <param name="strVal">要判断的字符串</param>
/// <returns></returns>
public static bool IsIDString(string strVal)
{
bool flag = false;
if (strVal == null)
return false;
if (strVal == "")
return true;
//判断是否只有 ,
if (strVal == ",")
return false;
//判断第一位是否是,号
if (strVal.Substring(0, 1) == ",")
return false;
//判断最后一位是否是,号
if (strVal.Substring(strVal.Length - 1, 1) == ",")
return false;
foreach (char c in strVal)
{
if (c == ',')
if (flag) return false; else flag = true;
else if ((c >= '0' && c <= '9'))
flag = false;
else
return false;
}
return true;
}
/// <summary>
/// 转换为整数。不是整数的话,返回“-1”
/// </summary>
/// <param name="str">要转换的字符</param>
/// <returns></returns>
public static int StringToInt(string str)
{
//判断是否是数字,是数字返回数字,不是数字返回-1
if (IsInt(str))
return Int32.Parse(str);
else
return -1;
}
/// <summary>
/// 转换为实数。不是实数的话,返回“-1”
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static float StrTofloat(string str)
{
//判断是否是数字,是数字返回数字,不是数字返回-1
if (IsNumeric(str))
return float.Parse(str);
else
return -1;
}
/// <summary>
/// 验证是否是GUID
/// 6454bc76-5f98-de11-aa4c-00219bf56456
/// </summary>
/// <returns></returns>
public static bool IsGUID(string strVal)
{
if (strVal == null)
return false;
if (strVal == "")
return false;
strVal = strVal.TrimStart('{');
strVal = strVal.TrimEnd('}');
//长度必须是36位
if (strVal.Length != 36)
return false;
foreach (char c in strVal)
{
if (c == '-')
continue;
else if (c >= 'a' && c <= 'f')
continue;
else if (c >= 'A' && c <= 'F')
continue;
else if ((c >= '0' && c <= '9'))
continue;
else
return false;
}
return true;
}
#endregion
#region 验证——处理字符串部分
/// <summary>
/// 去掉两边的空格,把“'”替换为“'”SBC
/// </summary>
/// <param name="str">要处理的字符串</param>
/// <returns></returns>
public static string StringReplaceToSBC(string str)
{
//过滤不安全的字符
string tstr;
tstr = str.Trim();
return tstr.Replace("'", "'");
}
/// <summary>
/// 去掉两边的空格,把“'”替换为“''”DBC
/// </summary>
/// <param name="str">要验证的字符串</param>
/// <returns></returns>
public static string StringReplaceToDBC(string str)
{
//过滤不安全的字符
string tstr;
tstr = str.Trim();
return tstr.Replace("'", "''");
}
/// <summary>
/// 去掉两边的空格,把“'”替换为“”
/// </summary>
/// <param name="str">要验证的字符串</param>
/// <returns></returns>
public static string StringReplaceToEmpty(string str)
{
//过滤不安全的字符
string tstr;
tstr = str.Trim();
return tstr.Replace("'", "");
}
#endregion
#region 验证——时间部分
/// <summary>
/// 转换时间。不正确的话,返回当前时间
/// </summary>
/// <param name="isdt">要转换的字符串</param>
/// <returns></returns>
public static DateTime StringToDateTime(string isdt)
{
//判断时间是否正确
DateTime mydt;
try
{
mydt = Convert.ToDateTime(isdt);
}
catch
{
//时间格式不正确
return mydt = DateTime.Now;
}
return mydt;
}
/// <summary>
/// 判断是否是正确的时间格式。正确返回“true”,不正确返回提示信息。
/// 
/// </summary>
/// <param name="isdt">要判断的字符串</param>
/// <returns></returns>
public static bool IsDateTime(string isdt)
{
//判断时间是否正确
DateTime mydt;
try
{
mydt = Convert.ToDateTime(isdt);
return true;
}
catch
{
//时间格式不正确
//errorMsg = "您填的时间格式不正确,请按照2004-1-1的形式填写。";
return false;
}
}
#endregion
#region 生成查询条件
/// <summary>
/// 组成查询字符串
/// </summary>
/// <param name="columnName">字段名</param>
/// <param name="keyword">查询条件</param>
/// <param name="hasContent">是否已经有查询条件了,true:加and;false:不加and</param>
/// <param name="colType">1:数字;2:字符串,精确查询;3:字符串,模糊查询,包括时间查询</param>
/// <returns></returns>
public static string GetSearchString(string columnName, string keyword, ref bool hasContent, int colType)
{
if (keyword == "" || keyword == "0")
{
return "";
}
else
{
System.Text.StringBuilder tmp = new System.Text.StringBuilder();
switch (colType)
{
case 1:
//数字
tmp.Append(columnName);
tmp.Append(" = ");
tmp.Append(keyword);
break;
case 2:
//字符串,精确查询
tmp.Append(columnName);
tmp.Append(" = '");
tmp.Append(keyword);
tmp.Append("' ");
break;
case 3:
//字符串,模糊查询,包括时间查询
tmp.Append(columnName);
tmp.Append(" like '% ");
tmp.Append(keyword);
tmp.Append("%' ");
break;
}
if (hasContent)
tmp.Insert(0, " and ");
hasContent = true;
return tmp.ToString();
}
}
#endregion
#region ========解密========
/// <summary>
/// 解密
/// </summary>
/// <param name="Text"></param>
/// <returns></returns>
public static string Decrypt(string Text)
{
return Decrypt(Text, "litianping");
}
/// <summary> 
/// 解密数据 
/// </summary> 
/// <param name="Text"></param> 
/// <param name="sKey"></param> 
/// <returns></returns> 
public static string Decrypt(string Text, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
int len;
len = Text.Length / 2;
byte[] inputByteArray = new byte[len];
int x, i;
for (x = 0; x < len; x++)
{
i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Encoding.Default.GetString(ms.ToArray());
}
#endregion
}
#region 加密、解密字符串
/// <summary>
/// 加密字符串。可以解密
/// </summary>
public class Encryptor
{
#region 加密,固定密钥
/// <summary>
/// 加密
/// </summary>
/// <param name="sourceData">原文</param>
/// <returns></returns>
public static string Encrypt(string sourceData)
{
//set key and initialization vector values
//Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
//Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
Byte[] key = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
try
{
//convert data to byte array
Byte[] sourceDataBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(sourceData);
//get target memory stream
MemoryStream tempStream = new MemoryStream();
//get encryptor and encryption stream
DESCryptoServiceProvider encryptor = new DESCryptoServiceProvider();
CryptoStream encryptionStream = new CryptoStream(tempStream, encryptor.CreateEncryptor(key, iv), CryptoStreamMode.Write);
//encrypt data
encryptionStream.Write(sourceDataBytes, 0, sourceDataBytes.Length);
encryptionStream.FlushFinalBlock();
//put data into byte array
Byte[] encryptedDataBytes = tempStream.GetBuffer();
//convert encrypted data into string
return System.Convert.ToBase64String(encryptedDataBytes, 0, (int)tempStream.Length);
}
catch (Exception ex)
{
throw (ex);
}
}
#endregion
#region 加密,可以设置密钥
/// <summary>
/// 可以设置密钥的加密方式
/// </summary>
/// <param name="sourceData">原文</param>
/// <param name="key">密钥,8位数字,字符串方式</param>
/// <returns></returns>
public static string Encrypt(string sourceData, string key)
{
//set key and initialization vector values
//Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
//Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
#region 检查密钥是否符合规定
if (key.Length > 8)
{
key = key.Substring(0, 8);
}
#endregion
char[] tmp = key.ToCharArray();
Byte[] keys = new byte[8];
//Byte[] keys = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
//设置密钥
for (int i = 0; i < 8; i++)
{
if (tmp.Length > i)
{
keys[i] = (byte)tmp[i];
}
else
{
keys[i] = (byte)i;
}
}
try
{
//convert data to byte array
Byte[] sourceDataBytes = System.Text.ASCIIEncoding.UTF8.GetBytes(sourceData);
//get target memory stream
MemoryStream tempStream = new MemoryStream();
//get encryptor and encryption stream
DESCryptoServiceProvider encryptor = new DESCryptoServiceProvider();
CryptoStream encryptionStream = new CryptoStream(tempStream, encryptor.CreateEncryptor(keys, iv), CryptoStreamMode.Write);
//encrypt data
encryptionStream.Write(sourceDataBytes, 0, sourceDataBytes.Length);
encryptionStream.FlushFinalBlock();
//put data into byte array
Byte[] encryptedDataBytes = tempStream.GetBuffer();
//convert encrypted data into string
return System.Convert.ToBase64String(encryptedDataBytes, 0, (int)tempStream.Length);
}
catch (Exception ex)
{
throw (ex);
}
}
#endregion
#region 解密,固定密钥
/// <summary>
/// 解密
/// </summary>
/// <param name="sourceData">密文</param>
/// <returns></returns>
public static string Decrypt(string sourceData)
{
//set key and initialization vector values
//Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
//Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
Byte[] keys = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
try
{
//convert data to byte array
Byte[] encryptedDataBytes = System.Convert.FromBase64String(sourceData);
//get source memory stream and fill it 
MemoryStream tempStream = new MemoryStream(encryptedDataBytes, 0, encryptedDataBytes.Length);
//get decryptor and decryption stream 
DESCryptoServiceProvider decryptor = new DESCryptoServiceProvider();
CryptoStream decryptionStream = new CryptoStream(tempStream, decryptor.CreateDecryptor(keys, iv), CryptoStreamMode.Read);
//decrypt data 
StreamReader allDataReader = new StreamReader(decryptionStream);
return allDataReader.ReadToEnd();
}
catch (Exception ex)
{
throw (ex);
}
}
#endregion
#region 解密,固定密钥
/// <summary>
/// 解密
/// </summary>
/// <param name="sourceData">密文</param>
/// <param name="key">密钥,8位数字,字符串方式</param>
/// <returns></returns>
public static string Decrypt(string sourceData, string key)
{
//set key and initialization vector values
//Byte[] key = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
//Byte[] iv = new byte[] {0x21, 2, 0x88, 4, 5, 0x56, 7, 0x99};
#region 检查密钥是否符合规定
if (key.Length > 8)
{
key = key.Substring(0, 8);
}
#endregion
char[] tmp = key.ToCharArray();
Byte[] keys = new byte[8];
//Byte[] keys = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
Byte[] iv = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
//设置密钥
for (int i = 0; i < 8; i++)
{
if (tmp.Length > i)
{
keys[i] = (byte)tmp[i];
}
else
{
keys[i] = (byte)i;
}
}
try
{
//convert data to byte array
Byte[] encryptedDataBytes = System.Convert.FromBase64String(sourceData);
//get source memory stream and fill it 
MemoryStream tempStream = new MemoryStream(encryptedDataBytes, 0, encryptedDataBytes.Length);
//get decryptor and decryption stream 
DESCryptoServiceProvider decryptor = new DESCryptoServiceProvider();
CryptoStream decryptionStream = new CryptoStream(tempStream, decryptor.CreateDecryptor(keys, iv), CryptoStreamMode.Read);
//decrypt data 
StreamReader allDataReader = new StreamReader(decryptionStream);
return allDataReader.ReadToEnd();
}
catch (Exception ex)
{
throw (ex);
}
}
#endregion
/// <summary>
/// 对需要加密的字串进行MD5加密(针对密码加密)
/// </summary>
/// <param name="ConvertString">需要加密的字串</param>
/// <returns>加密后的字串</returns>
/// <remarks>
/// Modifier: Xiaoliang Ge
/// Modified Date: 2009-12-26
/// </remarks>
public static string MD5EncryptStr(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)),
4, 8);
return t2;
}
}
#endregion
}

转载于:https://www.cnblogs.com/top5/archive/2010/03/11/1683785.html

最新的Functions 类相关推荐

  1. 飞鸽传书最新源码类都要复杂的多

    实际应用中的飞鸽传书最新源码类都要复杂的多,一旦发生职责扩散而需要修改类时,飞鸽传书 除非这个类本身非常简单,否则还是遵循单一职责原则的好.遵循单一职责原的优点有:可以降低类的复杂度,一个类只负责一项 ...

  2. 【Shopee热销选品】新加坡、马来西亚市场最新时装配饰类目

    时装配饰和男装品类作为Shopee跨境热门大类,不管是男性还是女性消费者都无法拒绝成为一位时尚弄潮儿.那如何在东南亚热门时尚类目中突出重围?快跟随小编步伐,知虾数据带你解读今夏新加坡和马来西亚2大市场 ...

  3. 最新!CCF-A类顶会WWW2020最佳论文出炉!OSU最佳论文

    点击上方"迈微电子研发社",选择"星标★"公众号 重磅干货,第一时间送达 导读 CCF A类会议,国际万维网大会WWW 2020(International W ...

  4. 2011年最新会计科目(贸易类小企业版)

    2011年最新会计科目表 顺序号 编号 会计科目名称 会计科目适用范围 一.资产类 1 1001 库存现金   2 1002 银行存款   12 1122 应收帐款   13 1123 预付帐款   ...

  5. c++输出的值精确到小数点后5位_c/c++linux 2019最新阿里研发类面试题及答案分享...

    问题点总结: 1.1.1 问题:如何实现一个高效的单向链表逆序输出? 1.1.2 题目:已知 sqrt (2)约等于 1.414,要求不用数学库,求 sqrt (2)精确到小数点后 10 位. 1.1 ...

  6. 最新计算机技术a类学校,计算机科技领域的23所院校排名,4所A类院校录取分数线达到A+...

    大学热门学科会随着人才需求程度的变化而变化,从而引起大学专业录取分数线在不同年份出现一定程度的波动.随着电子信息科技行业对计算机人才的需求提升,高校之中的计算机科学与技术一级学科的招生录取分数线普遍处 ...

  7. 最新旧物回收类网站源码V2.4版+Thinkphp内核

    正文: 旧物回收类网站源码系统是一款开源的thinkphp5.0 的 Blog系统,其衍生于优秀的内容管理系统易优cms. 旧物回收类网站源码系统秉承了易优cms的先进设计理念,并且专注于旧物回收. ...

  8. 2019年最新机械工程类专业院校排名及就业方向

    机械工程专业是工科考研中非常热门的专业大类之一,深受理科生的欢迎,涉及设计.材料.机械.物理.化学.数学等领域.机械工程专业同时也是一个实实在在的专业,大到万吨巨轮,小到移动电话,高精到航天飞机,普通 ...

  9. 【菜鸟源码模板】最新素材下载类网站 带会员充值系统 HTML5自适应手机版

    介绍: 一款非常大气的站长素材下载类网站源码,带会员系统,带充值系统. 1.该模板由站长亲自制作,代码干净整洁; 2.效果相当的炫酷,相当简洁大气高端,模板简单,全部已数据调用,只需后台修改栏目名称即 ...

最新文章

  1. usaco ★Subset Sums 集合
  2. 一点想法--- 做一个轻便的程序编辑器
  3. linux bash: sqlplus: command not found 错误处理
  4. 1.26 Java使用自定义包
  5. Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
  6. gentos 执行sh文件_linux定时自动清理日志文件
  7. 苹果春季新品发布会来了:将推iPhone13 Pro系列紫色版
  8. olap 多维分析_如何通过依赖T-SQL从OLAP多维数据集有效地提取数据
  9. string对象的创建、截取和拼接_java基础面试题-String深入理解
  10. VS2017编译Detours1.5
  11. 厦门高考成绩查询2021,2021厦门市地区高考成绩排名查询,厦门市高考各高中成绩喜报榜单...
  12. 电感的作用和工作原理
  13. 电商技术解密之商品详情页
  14. Unity 3D 热更新之基于 Asset Bundle Browser 的 AssetBundle包
  15. android写出资源文件,Android 读取Assets下的资源文件
  16. linux中gnuplot给定文本,Gnuplot (三)输出图片/字体支持、eps/png/pdf/enhanced文本
  17. android stretchpanel控件,TableLayoutPanel 这个控件有没有替代的,而且可以动态Sizable,该如何解决...
  18. 测试工程师如何提升自己
  19. 大华SDK+JAVA+4g网络摄像头进行二次开发
  20. 调用百度aip实现短语音翻译(附代码)

热门文章

  1. oracle 物料属性批次过期,物料批次特性值
  2. python完全支持面向对象编程_Python 面向对象编程概要
  3. 系统学习数字图像处理之图像压缩
  4. C语言:从键盘输入一个正整数,将该数倒序输出。
  5. Linux查看分析任务计划命令,Linux任务计划crontab
  6. spark DataSet与DataFrame的区别
  7. jQuery 停止动画
  8. [IDEA插件] - 一个不错的插件
  9. Focus Stacking
  10. hb:一个简单的 http/web bench 工具