using System;
using System.Collections;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
namespace CommonTool
{
public sealed class Utils
{
public static Image LoadImage(string pcFileName)
{
string text1 = FileFuns.GetFullPathFileName(pcFileName);
try
{
return Image.FromFile(text1);
}
catch (Exception)
{
return null;
}
}
public static void ReverseArray(Array array)
{
int count = array.Length;
for (int i = 0; i < count / 2; i++)
{
var temp = array.GetValue(count - 1 - i);
array.SetValue(array.GetValue(i), count - 1 - i);
array.SetValue(temp, i);
}
}
public static string AreaToSql(string pcStr)
{
pcStr = pcStr.Replace("'", "''");
return pcStr;
}
public static string AreaToSqLcs(string pcStr)
{
pcStr = pcStr.Replace("'", "''");
pcStr = pcStr.Replace("\"", "''''");
return pcStr;
}
public static string CvFieldInSql(string inFieldName, string inField, string outField, string outFieldName)
{
string lcRetVal = "";
Array arr1 = UtilStr.StrToArray(inField);
Array arr2 = UtilStr.StrToArray(outField);
if (outFieldName.Trim().Length == 0)
{
outFieldName = inFieldName;
}
if (arr1.Length == arr2.Length)
{
lcRetVal = " case " + inFieldName;
for (int i = 0; i <= arr1.Length; i++)
{
lcRetVal += " when '" + arr1.GetValue(i) + "' then '" + arr2.GetValue(i) + "' ";
}
lcRetVal += " end as " + outFieldName;
}
if (inFieldName == "" || inField == "" || outField == "")
{
lcRetVal = "";
}
return lcRetVal;
}
public static string Decode(string pcKey)
{
pcKey = pcKey.Replace("*", "%");
pcKey = System.Web.HttpUtility.UrlDecode(pcKey, Encoding.Default);
return pcKey;
}
public static string Encode(string asKey)
{
asKey = System.Web.HttpUtility.UrlEncode(asKey, Encoding.Default);
return asKey?.Replace("%", "*");
}
public static string IsHasSqlEsc(string pcCheckedStr)
{
if (pcCheckedStr.Trim().Length > 0 && pcCheckedStr.IndexOf("'", StringComparison.Ordinal) > 0)
{
return "'";
}
return "N";
}
public static bool ObjToBool(object poObj)
{
if (poObj == null)
return false;
return UtilStr.StrToBool(UtilStr.StrFromObj(poObj));
}
public string SmallDate(ref string pcDateField, string pcShowName)
{
if (pcShowName.Trim().Length == 0)
{
pcShowName = pcDateField;
}
return ("(convert(char(10)," + pcDateField + ",120)) as " + pcShowName);
}
//======================================= New Add=============================
///
///
///
///
///
public static byte[] BytesFromImage(Image poImage)
{
byte[] buffer1 = null;
if (poImage != null)
{
MemoryStream stream1 = new MemoryStream();
poImage.Save(stream1, ImageFormat.Bmp);
buffer1 = new byte[stream1.Length];
stream1.Seek(0, SeekOrigin.Begin);
stream1.Read(buffer1, 0, (int)stream1.Length);
stream1.Close();
}
return buffer1;
}
public static object BytesToImage(object poObject)
{
object obj1 = null;
if ((poObject != null) && !(poObject is DBNull))
{
try
{
byte[] buffer1 = (byte[])poObject;
if (buffer1.Length > 0)
{
MemoryStream stream1 = new MemoryStream(buffer1, true);
stream1.Write(buffer1, 0, buffer1.Length);
obj1 = Image.FromStream(stream1);
stream1.Close();
}
}
catch (Exception exception1)
{
obj1 = exception1.Message;
}
return obj1;
}
return "";
}
///
/// 将string型转换成 Int 型
///
///
///
public static int ValI(string str)
{
return (int)ValD(str);
}
///
/// 将string型转换成 Int64 型
///
///
///
public static Int64 ValI64(string str)
{
return (Int64)ValD(str);
}
///
/// 字符串转换成数值型
///
///
///
public static decimal ValD(string str)
{
string text1 = "";
foreach (char ch1 in str)
{
switch (ch1)
{
case ' ':
case ',':
break;
default:
if ((ch1 >= '0') && (ch1 <= '9'))
{
text1 = text1 + ch1.ToString();
}
else if (((ch1 == '+') || (ch1 == '-')) && (text1 == ""))
{
text1 = text1 + ch1.ToString();
}
else
{
if ((ch1 != '.') || (text1.IndexOf(ch1) >= 0))
{
break;
}
text1 = text1 + ch1.ToString();
}
break;
}
}
if (text1 == "")
{
text1 = "0";
}
else if (text1 == "-")
{
text1 = "-0";
}
return Convert.ToDecimal(text1);
}
public static decimal ValD(object poObj)
{
return ValD(UtilStr.StrFromObj(poObj));
}
public static float ValSingle(object pcStr)
{
float lfRetVal = 0f;
try
{
lfRetVal = Convert.ToSingle(pcStr);
}
catch
{
// ignored
}
return lfRetVal;
}
public static float PixelsToInch(Graphics g, int pixels, bool horizontal)
{
float single1 = horizontal ? g.DpiX : g.DpiY;
return (pixels / single1);
}
public static string FormatCodeToXml(string pcString)
{
return pcString.Replace("<", ";lt;").Replace(">", ";gt;").Replace("&", ";amp;");
}
public static string FormatXmlToCode(string pcString)
{
return pcString.Replace(";amp;", "&").Replace(";lt;", "<").Replace(";gt;", ">");
}
public static ArrayList ArrayToArrayList(Array paArr)
{
ArrayList list1 = new ArrayList();
foreach (object obj1 in paArr)
{
list1.Add(obj1);
}
return list1;
}
public static bool IsNum(string pcStrs)
{
foreach (char pcstr in pcStrs)
{
if (pcstr <= '0' || pcstr >= '9')
return false;
}
return true;
}
public static string ByteToString(byte[] inBytes)
{
string stringOut = "";
foreach (byte inByte in inBytes)
{
stringOut = stringOut + $"{inByte:X2} ";
}
return stringOut;
}
public static string BytesToString(byte[] inBytes, Encoding encoding)
{
return encoding.GetString(inBytes);
}
public static byte[] StringToByte(string inString)
{
var byteStrings = inString.Split(" ".ToCharArray());
var byteOut = new byte[byteStrings.Length - 1];
for (int i = 0; i == byteStrings.Length - 1; i++)
{
byteOut[i] = Convert.ToByte(("0x" + byteStrings[i]));
}
return byteOut;
}
public static byte[] StringToBytes(string text, Encoding encoding)
{
//UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(text);
}
public static string GetQuerySql(string pcFiled, string pcValue)
{
return GetQuerySql(pcFiled, pcValue, false);
}
public static string GetQuerySql(string pcFiled, string pcValue, bool pbAddAnd)
{
string lcRetVal = "";
if (pcFiled.Trim().Length > 0)
{
if (pbAddAnd)
lcRetVal = " and ";
lcRetVal += " " + pcFiled + " = '" + pcValue + "'";
}
return lcRetVal;
}
}
public enum CovType
{
SqlQuary = 0,
JsStr = 1,
HtmlStr = 2,
CtrlText = 3,
UrlMsg = 4
}
}