Files
Web_HotelServices_Prod/SERVER/ConvertFile.cs
2025-11-26 11:18:26 +08:00

116 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SERVER
{
/// <summary>
/// 文件帮助类
/// </summary>
public static class ConvertFile
{
/// <summary>
/// 转换二进制(Bin文件)
/// </summary>
/// <param name="Path"></param>
/// <returns></returns>
public static string ReadDat(Stream Path)
{
try
{
//FileStream myStream = new FileStream(Path, FileMode.Open, FileAccess.Read);
//使用FileStream对象实例化BinaryReader二进制写入流对象
BinaryReader myReader = new BinaryReader(Path);
if (myReader.PeekChar() != -1)
{
//以二进制方式读取文件中的内容
return Convert.ToString(myReader.ReadString());
}
//关闭当前二进制读取流
myReader.Close();
//关闭当前文件流
Path.Close();
return null;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 读取文件
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public static string StreamToString(Stream stream)
{
stream.Position = 0;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
/// <summary>
/// 将字符串转成二进制
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string bianma(string s)
{
byte[] data = Encoding.Unicode.GetBytes(s);
StringBuilder result = new StringBuilder(data.Length * 8);
foreach (byte b in data)
{
result.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
}
return result.ToString();
}
/// <summary>
/// 对hex文件处理
/// </summary>
/// <param name="RE"></param>
public static string hexData(string RE)
{
//存储总数据
string data = "";
//获取每行
var setd = RE.Split(":");
for (int i = 0; i < setd.Length; i++)
{
if (setd[i] != "")
{
if (setd[i].Substring(6, 2) == "00")
{
int hand = int.Parse(setd[i].Substring(0, 2)) * 2;
if(int.Parse(setd[i].Substring(0, 2)) == 10)
{
hand = 32;
}
data += setd[i].Substring(8, hand);
}
//for (int j = 0; j < int.Parse(setd[i].Substring(0,1)); j++)
//{
// setd[i].Substring(2 * j + 9, 2);
//}
}
}
return data;
}
}
}