Example #1
0
        public static void loadData(out SaveFileDataSet dataSet)
        {
            Directory.CreateDirectory(saveFileDir);
            if (File.Exists(saveFileName))
            {
                StreamReader reader = new StreamReader(Path.Combine(saveFileDir, saveFileName));

                string rawData = reader.ReadLine();
                reader.Close();
                string key = rawData.Substring(0, 32);
                rawData = rawData.Substring(32);

                string[] line = AES256_manager.decrypt(rawData, key).Split('\n');

                string tag = null;

                dataSet = new SaveFileDataSet();
                Hashtable data = null;

                for (int i = 0; i < line.Length - 1; i++)
                {
                    string nowLine = line[i];

                    if (nowLine.StartsWith("[") && nowLine.EndsWith("]"))
                    {
                        if (data == null)
                        {
                            data = new Hashtable();
                        }
                        else
                        {
                            dataSet.addData(tag, data);
                            data = new Hashtable();
                        }

                        tag = nowLine.Substring(1, nowLine.Length - 2);
                        continue;
                    }

                    try
                    {
                        string[] temp = nowLine.Split('=');

                        data.Add(temp[0], temp[1]);
                    }
                    catch (IndexOutOfRangeException) { }
                }
                dataSet.addData(tag, data);
            }
            else
            {
                dataSet = null;
            }
        }
Example #2
0
        public static void saveData(SaveFileDataSet dataSet)
        {
            Guid guid = Guid.NewGuid();

            string[] temp = guid.ToString().Split('-');
            string   uuid = "";

            for (int i = 0; i < temp.Length; i++)
            {
                uuid += temp[i];
            }

            string raw_data = "";

            foreach (string tag_key in dataSet.getDataKey())
            {
                raw_data += String.Format("[{0}]\n", tag_key);
                Hashtable data = dataSet.getData(tag_key);

                foreach (object key in data.Keys)
                {
                    raw_data += String.Format("{0}={1}\n", key, data[key.ToString()]);
                }
            }
            string output = uuid + AES256_manager.encrypt(raw_data, uuid);


            Directory.CreateDirectory(saveFileDir);
            string dirTemp = Path.Combine(saveFileDir, saveFileName);

            if (File.Exists(dirTemp))
            {
                File.Delete(dirTemp);
            }



            StreamWriter writer = new StreamWriter(dirTemp);



            //byte[] byteArr = Encoding.UTF8.GetBytes(output);

            //File.WriteAllBytes(saveFileName, byteArr);

            writer.Write(output);
            writer.Close();
        }