要处理的文件
读取
static void Main(string[] args)
{
//设置路径
string path = Directory.GetCurrentDirectory() + @"\configuration.ini";
GetData(path);
}
/// <summary>
/// 获取文件中的全部数据
/// </summary>
/// <param name="path">路径</param>
public static void GetData(string path)
{
//获取文件路径
string strFilePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, path);
if (File.Exists(strFilePath))
{
//读取全部数据
string strContent = File.ReadAllText(strFilePath);
//分割 微调 旋转 和密码
string[] str = strContent.Split(';');
foreach (var item in str)
{
//微调速度
if (item.Contains("slight"))
{
string[] values = item.Split(':').Last().Split(',');
permanentSpeedSlight.Run = int.Parse(values[0]);
permanentSpeedSlight.Begin = int.Parse(values[1]);
permanentSpeedSlight.Stop = int.Parse(values[2]);
permanentSpeedSlight.AccTime = int.Parse(values[3]);
permanentSpeedSlight.DecTime = int.Parse(values[4]);
}
else if (item.Contains("rotating"))
{
//旋转速度
string[] values = item.Split(':').Last().Split(',');
permanentSpeedRotating.Run = int.Parse(values[0]);
permanentSpeedRotating.Begin = int.Parse(values[1]);
permanentSpeedRotating.Stop = int.Parse(values[2]);
permanentSpeedRotating.AccTime = int.Parse(values[3]);
permanentSpeedRotating.DecTime = int.Parse(values[4]);
}
}
//输出结果
Console.WriteLine(permanentSpeedSlight.ToString());
Console.WriteLine(permanentSpeedRotating.ToString());
}
}
修改
static void Main(string[] args)
{
//设置路径
string path = Directory.GetCurrentDirectory() + @"\configuration.ini";
UpdateFile(path, "password","PPP");
}
/// <summary>
/// 修改文件中的部分
/// </summary>
/// <param name="path">文件路径</param>
/// <param name="target">要修改的值</param>
/// <param name="results">修改后的值</param>
public static void UpdateFile(string path,string target,string results)
{
//获取文件路径
string strFilePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, path);
//判断是否存在该文件
if (File.Exists(strFilePath))
{
//读取文件的全部数据
string strContent = File.ReadAllText(strFilePath);
//处理要修改的文件
strContent = Regex.Replace(strContent, target, results);
//保存并关闭文件
File.WriteAllText(strFilePath, strContent);
}
}
加密
const string Secret = "SAGA"; //定义密钥
/// <summary> DES 加密字符串
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <returns>加密后的字符串</returns>
public static string Encrypt(string str)
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); //实例化加/解密类对象
byte[] key = Encoding.Unicode.GetBytes(Secret); //定义字节数组,用来存储密钥
byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来存储要加密的字符串
MemoryStream MStream = new MemoryStream(); //实例化内存流对象
//使用内存流实例化加密流对象
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length); //向加密流中写入数据
CStream.FlushFinalBlock(); //释放加密流
return Convert.ToBase64String(MStream.ToArray());//返回加密后的字符串
}
/// <summary>
/// MD5 不可逆加密
/// </summary>
/// <param name="strs"></param>
/// <returns></returns>
public static string ToMD5(string strs)
{
string cl = strs;
string pwd = "";
MD5 md5 = MD5.Create(); //实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
pwd = pwd + s[i].ToString("X");
}
return pwd;
}
版权声明:本文为saga661原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。