Exemple #1
0
        public byte[] Export(string[] Strings)
        {
            List <string> MergedStrings = new List <string>();

            for (uint x = 0, z = 0; x < StrCount; x++)
            {
                string Str = string.Empty;
                for (int i = 0; i < SplitMap[x]; i++)
                {
                    SplitInf Inf = new SplitInf();
                    Inf.Split  = i;
                    Inf.String = x;

                    Str += Strings[z++];
                    if (i < SplitMap[x] - 1)
                    {
                        Str += Cutted[Inf];
                    }
                }

                MergedStrings.Add(Prefix[x] + Str + Sufix[x]);
            }

            if (StrCount != MergedStrings.LongCount())
            {
                throw new Exception("Failed to Merge Strings.");
            }

            return(Editor.Export(MergedStrings.ToArray()));
        }
Exemple #2
0
        public string[] Import()
        {
            SplitMap = new Dictionary <uint, uint>();
            Cutted   = new Dictionary <SplitInf, string>();
            Prefix   = new Dictionary <uint, string>();
            Sufix    = new Dictionary <uint, string>();

            string[] Strings = Editor.Import();
            StrCount = (uint)Strings.LongLength;
            List <char> DenyChars = new List <char>(new char[] { '\t', '\n', '\r', '\a', '\b', '\0' });

            List <string> SplitedStrings = new List <string>();

            for (uint x = 0; x < Strings.LongLength; x++)
            {
                string String = Strings[x];
                Clear(ref String, x, DenyChars);

                List <string> Split = new List <string>();

                int Start = 0;
                for (int i = 0; i < String.Length; i++)
                {
                    string CutContent = string.Empty;
                    while (DenyChars.Contains(String[i]) || String[i] < 32)
                    {
                        CutContent += String[i++];
                    }

                    if (CutContent != string.Empty)
                    {
                        SplitInf Inf = new SplitInf();
                        Inf.Split  = Split.Count;
                        Inf.String = x;
                        Cutted.Add(Inf, CutContent);

                        Split.Add(String.Substring(Start, i - CutContent.Length - Start));
                        Start = i;
                    }
                }

                Split.Add(String.Substring(Start, String.Length - Start));

                SplitMap.Add(x, (uint)Split.LongCount());
                SplitedStrings.AddRange(Split);
            }
            //string tmp = SplitedStrings[59946];

            return(SplitedStrings.ToArray());
        }