年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

193 lines
5.4 KiB

using System;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Text;
namespace KGIS.Plugin.LayerProperty.Utils
{
public class ConvertUtil
{
private static UnicodeEncoding ue;
static ConvertUtil()
{
ConvertUtil.ue = new UnicodeEncoding();
}
public static int ChangeToInt(bool blnValue)
{
if (blnValue)
{
return 1;
}
return 0;
}
public static bool ChangeToBool(int pValue)
{
return pValue >= 1;
}
public static string Quote(string str)
{
return "'" + str + "'";
}
public static byte[] ConvertStringToByteArray(string s)
{
return ConvertUtil.ue.GetBytes(s);
}
public static string Encode(string s)
{
byte[] array = ConvertUtil.ConvertStringToByteArray(s);
return Convert.ToBase64String(array, 0, array.Length);
}
public static string Decode(string s)
{
byte[] bytes = Convert.FromBase64String(s);
return ConvertUtil.ue.GetString(bytes);
}
public static void OutputByteArray(ref byte[] b)
{
for (int i = 0; i < b.Length; i++)
{
Console.Write((int)b[i]);
Console.Write(",");
}
}
public static byte[] ReadByteArrayFromFile(string filePath)
{
if (!File.Exists(filePath))
{
return new byte[0];
}
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] result = binaryReader.ReadBytes((int)fileStream.Length);
binaryReader.Close();
fileStream.Close();
return result;
}
public static object ReadObjectFromFile(string filePath)
{
if (!File.Exists(filePath))
{
return new object();
}
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader binaryReader = new BinaryReader(fileStream);
object result = binaryReader.ReadBytes((int)fileStream.Length);
binaryReader.Close();
fileStream.Close();
return result;
}
public static double Squre(double input)
{
return input * input;
}
public static NumberFormatInfo GetNumFormatInfo(int bits)
{
NumberFormatInfo numberFormat = new CultureInfo("en-US", false).NumberFormat;
numberFormat.NumberDecimalDigits = bits;
numberFormat.CurrencyGroupSeparator = "";
numberFormat.NumberGroupSeparator = "";
return numberFormat;
}
public static int GetStringDBLength(string s)
{
if (s == null)
{
return 0;
}
if (s.Length == 0)
{
return 0;
}
byte[] bytes = ConvertUtil.ue.GetBytes(s);
int num = 0;
for (int i = 1; i < bytes.Length; i += 2)
{
if (bytes[i] == 0)
{
num++;
}
else
{
num += 2;
}
}
return num;
}
public static string CutString2DBLength(string s, int len)
{
if (s == null)
{
return null;
}
if (len <= 0)
{
return "";
}
if (s.Length == 0)
{
return "";
}
byte[] bytes = ConvertUtil.ue.GetBytes(s);
int num = 0;
int i;
for (i = 1; i < bytes.Length; i += 2)
{
if (bytes[i] == 0)
{
num++;
}
else
{
num += 2;
}
if (num >= len)
{
break;
}
}
if (num > len)
{
i -= 2;
}
if (i <= 0)
{
return "";
}
if (len >= num)
{
return s;
}
return ConvertUtil.ue.GetString(bytes, 0, i + 1);
}
public static string RemoveStringByMark(string s, string mark)
{
int num = s.LastIndexOf(mark);
if (num < 0)
{
return s;
}
return s.Substring(num + 1);
}
public static string SetDecimalPrecision(string s, int bits)
{
int num = s.IndexOf(".");
if (num < 0)
{
return s;
}
return Math.Round(Convert.ToDouble(s), bits).ToString();
}
public static Image ByteToImage(byte[] blob)
{
if (blob != null)
{
MemoryStream memoryStream = new MemoryStream(blob);
Image result = Image.FromStream(memoryStream, true);
memoryStream.Close();
return result;
}
return null;
}
}
}