TaiZhouChangChu/Assets/Script/登录/ReadLoginInfo.cs

174 lines
5.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using LitJson;
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.UI;
public class ReadLoginInfo : MonoBehaviour
{
public Text Text_Error;
public Menu menu;
void Start()
{
//Invoke("Load", 1);
LoadInfo();
}
void Load()
{
string tempStr;
int i;
string path = System.Environment.CurrentDirectory + "/User.config";
Debug.Log(path);
//Text_Error.text = path;
if (File.Exists(path))
{
StreamReader file = new StreamReader(path, Encoding.UTF8);
tempStr = file.ReadLine().Trim();
while (tempStr != null)
{
if (tempStr.Contains(":"))
{
i = tempStr.IndexOf(":");
if (i < tempStr.Length - 1)
{
PlayerPrefs.SetString(tempStr.Substring(0, i), tempStr.Substring(i + 1));
//Debug.Log("添加:" + tempStr.Substring(0, i) + "内容" + tempStr.Substring(i + 1));
}
}
tempStr = null;
tempStr = file.ReadLine();
}
//删除文件
file.Close();
//File.Delete(path);
//读取完成
DateTime dt = DateTime.Parse(PlayerPrefs.GetString("登录时间").Trim());
TimeSpan ts = DateTime.Now - dt;
//Debug.Log(DateTime.Now);
if (ts.Minutes > 5)//超时
{
//Text_Error.text = "超时";
Debug.Log("超时");
Debug.Log(PlayerPrefs.GetString("登录时间"));
//Application.Quit();
}
}
else
{
Text_Error.text = "文件不存在";
Debug.Log("文件不存在");
//Application.Quit();
}
}
void LoadInfo()
{
string tempStr;
string path = Application.streamingAssetsPath + "/info.ini";
Debug.Log(path);
if (File.Exists(path))
{
tempStr = File.ReadAllText(path); Debug.Log(tempStr);
string[] data = tempStr.Split(new char[] { '#' });
DateTime dt = DateTime.Parse(data[0]);
TimeSpan ts = DateTime.Now - dt;
Debug.Log(dt);
Debug.Log(DateTime.Now);
Debug.Log(ts.Seconds);
if (ts.Seconds > 60)
{
Text_Error.text = "超时";
Debug.Log("超时");
Debug.Log(data[0]);
}
else
{
//string tmps = "采购物资入库";
//Debug.Log((GBToUnicode(tmps)));
if (data[1].Equals("local"))
{
menu.NoDataPanel.SetActive(true);
}
else
{
; string[] a = data[1].Split(new char[] { ';' });
string[] taskData = data[1].Split(new char[] { ';' });
if (taskData[1].Equals("0"))
{
string v = UnicodeToGB(taskData[2].Replace("%5C", "\\"));
PlayerPrefs.SetString("task_type", "学习");
if (v.Contains("调拨"))
{
PlayerPrefs.SetString("Practices", "调拨");
}
else
{
Debug.Log(v);
PlayerPrefs.SetString("Practices", v);
}
menu.stuBtn.onClick.Invoke();
}
else
{
PlayerPrefs.SetString("task_type", "考试");
PlayerPrefs.SetString("id", taskData[2]);
menu.examBtn.onClick.Invoke();
}
}
}
}
}
public string UnicodeToGB(string text)
{
MatchCollection mc = Regex.Matches(text, "([\\w]+)|(\\\\u([\\w]{4}))");
if (mc != null && mc.Count > 0)
{
StringBuilder sb = new StringBuilder();
foreach (Match m2 in mc)
{
string v = m2.Value;
string word = v.Substring(2);
byte[] codes = new byte[2];
int code = Convert.ToInt32(word.Substring(0, 2), 16);
int code2 = Convert.ToInt32(word.Substring(2), 16);
codes[0] = (byte)code2;
codes[1] = (byte)code;
sb.Append(Encoding.Unicode.GetString(codes));
}
return sb.ToString();
}
else
{
return text;
}
}
public static string GBToUnicode(string text)
{
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(text);
string lowCode = "", temp = "";
for (int i = 0; i < bytes.Length; i++)
{
if (i % 2 == 0)
{
temp = System.Convert.ToString(bytes[i], 16);//取出元素4编码内容两位16进制
if (temp.Length < 2) temp = "0" + temp;
}
else
{
string mytemp = Convert.ToString(bytes[i], 16);
if (mytemp.Length < 2) mytemp = "0" + mytemp; lowCode = lowCode + @"\u" + mytemp + temp;//取出元素4编码内容两位16进制
}
}
return lowCode;
}
}