コード例 #1
0
    public void RunThread(object Obj)
    {
        object[]            ObjArray         = (object[])Obj;
        Uri                 url              = (Uri)ObjArray[0];
        string              requestString    = (string)ObjArray[1];
        string              responseString   = (string)ObjArray[2];
        WebHeaderCollection headerCollection = (WebHeaderCollection)ObjArray[3];
        var                 request          = (HttpWebRequest)WebRequest.Create(url);

        request.Method  = "POST";
        request.Headers = headerCollection;
        request.BeginGetRequestStream((s) =>
        {
            var req = (HttpWebRequest)s.AsyncState;
            var str = req.EndGetRequestStream(s);
            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
            Byte[] bytes = encoding.GetBytes(responseString);
            str.Write(bytes, 0, bytes.Length);
            str.Close();
            req.BeginGetResponse((k) =>
            {
                var req2      = (HttpWebRequest)k.AsyncState;
                var resp      = (HttpWebResponse)req2.EndGetResponse(k);
                byte[] bytes2 = ReadFully(resp.GetResponseStream());
                string res    = System.Text.Encoding.Unicode.GetString(bytes2);
            }, req);
        }, null);
        if (RunComleted != null)
        {
            RunCompleted(res);
        }
    }
コード例 #2
0
ファイル: Program.cs プロジェクト: wanwanfeng/csharp.core
        private static void Main(string[] args)
        {
            List <string> keys = new List <string>();
            var           path = Path.GetFullPath("SEGA_MatisseN v2-B.ttf");

            foreach (FontFamily fontFamily in Fonts.GetFontFamilies(path))
            {
                var typefaces = fontFamily.GetTypefaces();
                int index     = 0;
                foreach (Typeface typeface in typefaces)
                {
                    index++;
                    Dictionary <object, object> result = new Dictionary <object, object>();
                    if (typeface.TryGetGlyphTypeface(out GlyphTypeface glyphTypeface))
                    {
                        foreach (var item in glyphTypeface.CharacterToGlyphMap)
                        {
                            var    key = item.Key.ToString("x8");
                            byte[] arr = HexStringToByteArray(key);
                            System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();
                            string str = converter.GetString(arr);
                            result[str] = item.Value;
                        }
                    }
                    File.WriteAllText("test" + index + ".json", JsonHelper.ToJson(result, indentLevel: 2, isUnicode: false));
                }
            }
            File.WriteAllLines("test.txt", keys.ToArray());
        }
コード例 #3
0
ファイル: Rijndael.cs プロジェクト: 1287577782/book-code-1
        /// <summary>This version of EncryptData takes the message, password
        /// and IV as strings and encrypts the message, returning the encrypted text as a string.
        /// </summary>
        /// <param name="message">The plain text message</param>
        /// <param name="password">The password/key to encrypt the message with</param>
        /// <param name="initialisationVector">The IV as a string</param>
        /// <param name="blockSize">The block size used to encrypt the message</param>
        /// <param name="keySize">The key size used to encrypt the message</param>
        /// <param name="cryptMode">The encryption mode, CBC or ECB, used to encrypt the message</param>
        /// <param name="returnAsHex">Whether the encrypted message is to be returned as Hex</param>
        public static string EncryptData(string message, string password,
                                         string initialisationVector, BlockSize blockSize,
                                         KeySize keySize, EncryptionMode cryptMode, bool returnAsHex)
        {
            byte[] messageData, passwordData, vectorData;

            // If message is empty dont bother doing any work
            if (message.Length <= 0)
            {
                return("");
            }

            System.Text.UnicodeEncoding encoderUnicode = new System.Text.UnicodeEncoding();

            // Convert message, key and IV to byte arrays
            messageData  = encoderUnicode.GetBytes(message);
            passwordData = encoderUnicode.GetBytes(password);
            vectorData   = encoderUnicode.GetBytes(initialisationVector);

            // Return encrypted message as string (hex version of bytes if required)
            if (returnAsHex)
            {
                return(BytesToHex(EncryptData(messageData, passwordData,
                                              vectorData, blockSize, keySize, cryptMode)));
            }
            else
            {
                return(encoderUnicode.GetString(EncryptData(messageData, passwordData,
                                                            vectorData, blockSize, keySize, cryptMode)));
            }
        }
コード例 #4
0
        /// <summary>
        /// A function that is called when pressing "Save txt" button.
        /// It starts an new windows object of type SaveFileDialog.
        /// It saves a list of Points in format: "Point: (x, F(x)) \n"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TextSaveGraph(object sender, EventArgs e)
        {
            System.Text.UnicodeEncoding uniEncoding = new System.Text.UnicodeEncoding();
            Stream         streamToSaveText         = new MemoryStream();
            SaveFileDialog saveDialog = new SaveFileDialog();

            saveDialog.Filter           = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            saveDialog.FilterIndex      = 1;
            saveDialog.RestoreDirectory = true;

            String points = "";

            for (float x = xMin; x <= xMax; x = x + counter)
            {
                points += "Point: (" + Math.Round(x, 2) + ", " + Math.Round(F(x), 2) + ")\n";
            }

            byte[] messageBytes = uniEncoding.GetBytes(points);
            if (saveDialog.ShowDialog() == DialogResult.OK)
            {
                if ((streamToSaveText = saveDialog.OpenFile()) != null)
                {
                    streamToSaveText.Write(messageBytes, 0, messageBytes.Length);
                    streamToSaveText.Position = 0;
                    streamToSaveText.Close();
                }
            }
        }
コード例 #5
0
 public ActionResult BatchUpload(DateTime date, HttpPostedFileBase file, int? fundid, string text)
 {
     string s;
     if (file != null)
     {
         byte[] buffer = new byte[file.ContentLength];
         file.InputStream.Read(buffer, 0, file.ContentLength);
         System.Text.Encoding enc = null;
         if (buffer[0] == 0xFF && buffer[1] == 0xFE)
         {
             enc = new System.Text.UnicodeEncoding();
             s = enc.GetString(buffer, 2, buffer.Length - 2);
         }
         else
         {
             enc = new System.Text.ASCIIEncoding();
             s = enc.GetString(buffer);
         }
     }
     else
         s = text;
     var id = PostBundleModel.BatchProcess(s, date, fundid);
     if (id.HasValue)
         return Redirect("/PostBundle/Index/" + id);
     return RedirectToAction("Batch");
 }
コード例 #6
0
ファイル: Rijndael.cs プロジェクト: 1287577782/book-code-1
        /// <summary>This version of DecryptData takes the encrypted message, password
        /// and IV as strings and decrypts the message, returning the plain text as a string.
        /// </summary>
        /// <param name="message">The encrypted message</param>
        /// <param name="password">The password/key that was used to encrypt the message</param>
        /// <param name="initialisationVector">The IV as a string</param>
        /// <param name="blockSize">The block size used in encrypting the message</param>
        /// <param name="keySize">The key size used in encrypting the message</param>
        /// <param name="cryptMode">The encryption mode, CBC or ECB, used in encrypting the message</param>
        /// <param name="messageAsHex">Whether the encrypted message was returned as Hex</param>
        public static string DecryptData(string message, string password,
                                         string initialisationVector, BlockSize blockSize,
                                         KeySize keySize, EncryptionMode cryptMode, bool messageAsHex)
        {
            byte[] messageData, passwordData, vectorData;

            // Dont do any work is the message is empty
            if (message.Length <= 0)
            {
                return("");
            }

            System.Text.UnicodeEncoding encoderUnicode = new System.Text.UnicodeEncoding();

            // Was message supplied in Hex or as simple string
            if (messageAsHex)
            {
                messageData = HexToBytes(message);
            }
            else
            {
                messageData = encoderUnicode.GetBytes(message);
            }

            // Convert key and IV to byte arrays
            passwordData = encoderUnicode.GetBytes(password);
            vectorData   = encoderUnicode.GetBytes(initialisationVector);

            // Return the decrypted plain test as a string
            return(encoderUnicode.GetString(DecryptData(messageData, passwordData,
                                                        vectorData, blockSize, keySize, cryptMode)));
        }
コード例 #7
0
ファイル: CurrentUser.cs プロジェクト: tarashor/Rielstartup
 private string convertUnicodeToASCII(string value)
 {
     System.Text.ASCIIEncoding   encodingASCII   = new System.Text.ASCIIEncoding();
     System.Text.UnicodeEncoding encodingUNICODE = new System.Text.UnicodeEncoding();
     byte[] sampleTextEncoded = encodingUNICODE.GetBytes(value);
     return(HttpUtility.UrlEncode(encodingASCII.GetString(sampleTextEncoded)));
 }
コード例 #8
0
ファイル: UWKPlugin.cs プロジェクト: nethz/UnityGame
        /// <summary>
        ///  Allocates a string on the uWebKit memory paging system
        /// </summary>
        public static int AllocateString(string value, ref int size)
        {
            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
            Byte[] bytes = encoding.GetBytes(value);

            Byte[] nbytes = new Byte[bytes.Length + 2];
            Array.Copy(bytes, nbytes, bytes.Length);
            nbytes[bytes.Length]     = 0;
            nbytes[bytes.Length + 1] = 0;

            GCHandle pinned = GCHandle.Alloc(nbytes, GCHandleType.Pinned);

            int i = UWK_AllocateAndCopy(pinned.AddrOfPinnedObject(), nbytes.Length);

            pinned.Free();

            size = nbytes.Length;

            if (i < 0)
            {
                throw new Exception("Error Allocating String");
            }

            return(i);
        }
コード例 #9
0
                internal void GetPersisitedNames(IntPtr storePtr, List <string> persistedNames)
                {
                    buffer = new Buffer();
                    NativeApi.UnityWindowsMR_refPoints_GetPersistedNames(storePtr, out buffer);
                    if (buffer.size == 0)
                    {
                        return;
                    }

                    byte[] byteBuffer = new byte[buffer.size];
                    Marshal.Copy(buffer.buffer, byteBuffer, 0, buffer.size);
                    using (MemoryStream stream = new MemoryStream(byteBuffer))
                    {
                        using (BinaryReader reader = new BinaryReader(stream))
                        {
                            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
                            int countStrings = reader.ReadInt32();
                            for (int i = 0; i < countStrings; i++)
                            {
                                int    strByteLen = reader.ReadInt32() * 2;
                                byte[] bytes      = reader.ReadBytes(strByteLen);
                                string name       = encoding.GetString(bytes, 0, strByteLen);
                                persistedNames.Add(name);
                            }
                        }
                    }
                }
コード例 #10
0
ファイル: DeclSecurity.cs プロジェクト: Profit0004/mono
                public void AddTo (CodeGen code_gen, PEAPI.MetaDataElement elem)
                {
                        System.Text.UnicodeEncoding ue = new System.Text.UnicodeEncoding ();
                        foreach (DictionaryEntry entry in permissionset_table) {
                                PEAPI.SecurityAction sec_action = (PEAPI.SecurityAction) entry.Key;
                                SSPermissionSet ps = (SSPermissionSet) entry.Value;

                                code_gen.PEFile.AddDeclSecurity (sec_action,
                                        ue.GetBytes (ps.ToXml ().ToString ()), 
                                         elem);
                        }

                        if (permissionset20_table == null)
                                return;

                        foreach (DictionaryEntry entry in permissionset20_table) {
                                PEAPI.SecurityAction sec_action = (PEAPI.SecurityAction) entry.Key;
                                MIPermissionSet ps = (MIPermissionSet) entry.Value;

                                code_gen.PEFile.AddDeclSecurity (sec_action,
                                        ps.Resolve (code_gen), 
                                        elem);
                        }

                }
コード例 #11
0
ファイル: ScriptModel.cs プロジェクト: bsbillings/bvcms
        internal static void GetFilesContent(PythonModel pe)
        {
            var files = HttpContext.Current.Request.Files;
            var a     = files.AllKeys;

            for (var i = 0; i < a.Length; i++)
            {
                var file   = files[i];
                var buffer = new byte[file.ContentLength];
                file.InputStream.Read(buffer, 0, file.ContentLength);
                System.Text.Encoding enc;
                string s = null;
                if (buffer[0] == 0xEF && buffer[1] == 0xBB && buffer[2] == 0xBF)
                {
                    enc = new System.Text.ASCIIEncoding();
                    s   = enc.GetString(buffer, 3, buffer.Length - 3);
                }
                else if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                {
                    enc = new System.Text.UnicodeEncoding();
                    s   = enc.GetString(buffer, 2, buffer.Length - 2);
                }
                else
                {
                    enc = new System.Text.ASCIIEncoding();
                    s   = enc.GetString(buffer);
                }
                pe.DictionaryAdd(a[i], s);
            }
        }
コード例 #12
0
        public ActionResult LoginSubmit(String email, String password)
        {
            if (Session["user"] == null)
            {
                var unicodeCoder        = new System.Text.UnicodeEncoding();
                var byteEncodedPassword = unicodeCoder.GetBytes(password);
                var byteHashPassword    = new System.Security.Cryptography.SHA256Managed().ComputeHash(byteEncodedPassword);
                password = Convert.ToBase64String(byteHashPassword);


                User user = db.Users.SingleOrDefault(s => s.Email == email && s.Password == password && s.Status == true);

                if (user != null)
                {
                    Session["user"]     = user;
                    Session["role"]     = user.Role;
                    Session["email"]    = user.Email;
                    Session["userId"]   = user.Id;
                    Session["username"] = user.FirstName;
                }
                else
                {
                    return(RedirectToAction("Login"));
                }
            }

            return(RedirectToAction("Index"));
        }
コード例 #13
0
        /**
         * Constructor
         *
         * @param pw the password
         */
        public PasswordRecord(string pw)
            : base(Type.PASSWORD)
        {
            password = pw;

            if (pw == null)
            {
                data = new byte[2];
                IntegerHelper.getTwoBytes(0, data, 0);
            }
            else
            {
//				System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
                System.Text.UnicodeEncoding encoder = new System.Text.UnicodeEncoding();
                byte[] passwordBytes = encoder.GetBytes(pw);
                int    passwordHash  = 0;
                for (int a = 0; a < passwordBytes.Length; a++)
                {
                    int shifted = rotLeft15Bit(passwordBytes[a], a + 1);
                    passwordHash ^= shifted;
                }
                passwordHash ^= passwordBytes.Length;
                passwordHash ^= 0xCE4B;

                data = new byte[2];
                IntegerHelper.getTwoBytes(passwordHash, data, 0);
            }
        }
コード例 #14
0
        public void AddTo(CodeGen code_gen, PEAPI.MetaDataElement elem)
        {
            System.Text.UnicodeEncoding ue = new System.Text.UnicodeEncoding();
            foreach (DictionaryEntry entry in permissionset_table)
            {
                PEAPI.SecurityAction sec_action = (PEAPI.SecurityAction)entry.Key;
                SSPermissionSet      ps         = (SSPermissionSet)entry.Value;

                code_gen.PEFile.AddDeclSecurity(sec_action,
                                                ue.GetBytes(ps.ToXml().ToString()),
                                                elem);
            }

            if (permissionset20_table == null)
            {
                return;
            }

            foreach (DictionaryEntry entry in permissionset20_table)
            {
                PEAPI.SecurityAction sec_action = (PEAPI.SecurityAction)entry.Key;
                MIPermissionSet      ps         = (MIPermissionSet)entry.Value;

                code_gen.PEFile.AddDeclSecurity(sec_action,
                                                ps.Resolve(code_gen),
                                                elem);
            }
        }
コード例 #15
0
 public override bool setContentsString(string str, string encoding)
 {
     onError(null);
     if (object.Equals(str, null))
     {
         return(false);
     }
     System.Text.Encoding ee;
     if (encoding == null || encoding.Equals("UTF-8") || encoding.Equals("UTF8"))
     {
         ee = new System.Text.UTF8Encoding(false);
     }
     else if (encoding.Equals("ASCII"))
     {
         ee = System.Text.Encoding.ASCII;
     }
     else if (encoding.Equals("UCS-2") || encoding.Equals("UCS2"))
     {
         ee = new System.Text.UnicodeEncoding(false, false);
     }
     else
     {
         return(false);
     }
     try {
         System.IO.File.WriteAllText(completePath, str, ee);
     }
     catch (System.Exception e) {
         onError(e.ToString());
         return(false);
     }
     return(true);
 }
コード例 #16
0
        /**
         * Constructor
         *
         * @param pw the password
         */
        public PasswordRecord(string pw)
            : base(Type.PASSWORD)
        {
            password = pw;

            if (pw == null)
                {
                data = new byte[2];
                IntegerHelper.getTwoBytes(0, data, 0);
                }
            else
                {
            //				System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
                System.Text.UnicodeEncoding encoder = new System.Text.UnicodeEncoding();
                byte[] passwordBytes = encoder.GetBytes(pw);
                int passwordHash = 0;
                for (int a = 0; a < passwordBytes.Length; a++)
                    {
                    int shifted = rotLeft15Bit(passwordBytes[a], a + 1);
                    passwordHash ^= shifted;
                    }
                passwordHash ^= passwordBytes.Length;
                passwordHash ^= 0xCE4B;

                data = new byte[2];
                IntegerHelper.getTwoBytes(passwordHash, data, 0);
                }
        }
コード例 #17
0
        internal static string Serialize <T>(IList <T> info)
        {
            // serialize data
            var emptyNamepsaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
            var serializer      = new XmlSerializer(info.GetType(), new XmlRootAttribute("ROOT"));
            var settings        = new XmlWriterSettings {
                Indent = true, OmitXmlDeclaration = true
            };

            try
            {
                using (var stream = new StringWriter())
                {
                    using (var writer = XmlWriter.Create(stream, settings))
                    {
                        serializer.Serialize(writer, info, emptyNamepsaces);

                        var    encoding    = new System.Text.UnicodeEncoding();
                        byte[] bytestosend = encoding.GetBytes(stream.ToString());
                        string sText       = encoding.GetString(bytestosend);

                        return(sText);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
コード例 #18
0
ファイル: SMSMessage.cs プロジェクト: ala-obeidat/Rento
        private static string convertToUnicode(char ch)
        {
            System.Text.UnicodeEncoding class1 = new System.Text.UnicodeEncoding();
            byte[] msg = class1.GetBytes(System.Convert.ToString(ch));

            return(fourDigits(msg[1] + msg[0].ToString("X")));
        }
コード例 #19
0
        public ActionResult BatchUpload(DateTime date, HttpPostedFileBase file, int?fundid, string text)
        {
            string s;

            if (file != null)
            {
                byte[] buffer = new byte[file.ContentLength];
                file.InputStream.Read(buffer, 0, file.ContentLength);
                System.Text.Encoding enc = null;
                if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                {
                    enc = new System.Text.UnicodeEncoding();
                    s   = enc.GetString(buffer, 2, buffer.Length - 2);
                }
                else
                {
                    enc = new System.Text.ASCIIEncoding();
                    s   = enc.GetString(buffer);
                }
            }
            else
            {
                s = text;
            }
            var id = PostBundleModel.BatchProcess(s, date, fundid);

            if (id.HasValue)
            {
                return(Redirect("/PostBundle/Index/" + id));
            }
            return(RedirectToAction("Batch"));
        }
コード例 #20
0
ファイル: mwg.File.mwgIff.cs プロジェクト: akinomyoga/mwg
        public mfString(byte[] data, uint offset)
        {
            this.uni = new System.Text.UnicodeEncoding();
            uint i = (uint)(new mwgDword(data, offset));

            this.dat = uni.GetString(data, (int)(offset + 4), (int)i);
            //※問題点 intの文字数分までしか読み取る事が出来ない。
        }
コード例 #21
0
 private static byte[] ToByteArray(object value)
 {
     var result = new byte[] { };
     var val = value as string;
     if (val != null)
         result = new System.Text.UnicodeEncoding().GetBytes(val);
     return result;
 }
コード例 #22
0
        static bool GetSiteNameFromISAPI()
        {
            Debug.Trace("config_loc", "GetSiteNameFromISAPI()");
            HttpContext context = HttpContext.Current;

            if (context != null)
            {
                string       metabaseAppKey = context.Request.ServerVariables["INSTANCE_META_PATH"];
                const string KEY_LMW3SVC    = "/LM/W3SVC/";
                Debug.Assert(metabaseAppKey.StartsWith(KEY_LMW3SVC));
                string appNumber = metabaseAppKey.Substring(KEY_LMW3SVC.Length - 1);
                //string appServerComment = "/" + appNumber + "/ServerComment";
                Debug.Trace("config_loc", "appNumber:" + appNumber + " INSTANCE_META_PATH:" + metabaseAppKey);

                UnicodeEncoding encoding = new UnicodeEncoding();

                // null-terminate appNumber and convert to byte array
                byte [] byteAppNumber = encoding.GetBytes(appNumber + "\0");

                int     retVal   = 2;
                byte [] outBytes = new byte[64];
                while (retVal == 2)
                {
                    retVal = context.CallISAPI(UnsafeNativeMethods.CallISAPIFunc.GetSiteServerComment,
                                               byteAppNumber, outBytes);
                    if (retVal == 2)
                    {
                        if (outBytes.Length > 1024)   // should never happen
                        {
                            throw new ConfigurationException(HttpRuntime.FormatResourceString(
                                                                 SR.Config_site_name_too_long,
                                                                 metabaseAppKey));
                        }
                        outBytes = new byte[outBytes.Length * 2];
                    }
                }

                // find WCHAR null terminator in byte array
                int i = 0;
                while (i + 1 < outBytes.Length && (outBytes[i] != 0 || outBytes[i + 1] != 0))
                {
                    i += 2;
                }

                // decode up to null terminator
                s_siteName = encoding.GetString(outBytes, 0, i);
                Debug.Trace("config_loc", "i: " + i + " site name:" + s_siteName);

                return(true);
            }
            else
            {
                Debug.Trace("config_loc", "could not query site name.  No Context.");
            }

            return(false); // keep trying to evaluate
        }
コード例 #23
0
        public static string Encrypt(string pData)
        {
            System.Text.UnicodeEncoding parser = new System.Text.UnicodeEncoding();
            byte[] _original = parser.GetBytes(pData);
            MD5CryptoServiceProvider Hash = new MD5CryptoServiceProvider();

            byte[] _encrypt = Hash.ComputeHash(_original);
            return(Convert.ToBase64String(_encrypt));
        }
コード例 #24
0
ファイル: UWKPlugin.cs プロジェクト: nethz/UnityGame
        /// <summary>
        ///  Retrieves a string allocated on the uWebKit memory paging system
        /// </summary>
        public static string GetString(int page, int sz)
        {
            byte[] bytes = new byte[sz];
            GetBytes(page, sz, bytes);

            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();

            return(encoding.GetString(bytes));
        }
コード例 #25
0
        public ArrayList CreateNewCharContainer(bool lowerCaseLetters, bool capitals, bool peculiar, bool numbers, bool ownCharacters, string myCharacters)
        {
            if (lowerCaseLetters)
            {
                for (int i = 97; i < 123; i++)
                {
                    charContainer.Add((char)i);
                }
            }
            if (capitals)
            {
                for (int i = 65; i < 91; i++)
                {
                    charContainer.Add((char)i);
                }
            }
            if (peculiar)
            {
                for (int i = 32; i < 48; i++)
                {
                    charContainer.Add((char)i);
                }
                for (int i = 58; i < 65; i++)
                {
                    charContainer.Add((char)i);
                }
                for (int i = 91; i < 97; i++)
                {
                    charContainer.Add((char)i);
                }
                charContainer.Add((char)123);
                charContainer.Add((char)124);
                charContainer.Add((char)125);
                charContainer.Add((char)126);
            }
            if (numbers)
            {
                for (int i = 48; i < 58; i++)
                {
                    charContainer.Add((char)i);
                }
            }

            if (ownCharacters)
            {
                System.Text.UnicodeEncoding unicode = new System.Text.UnicodeEncoding();
                char[] characters = unicode.GetChars(unicode.GetBytes(myCharacters));
                for (int i = 0; i < characters.Length; i++)
                {
                    if (!charContainer.Contains(characters[i]))
                    {
                        charContainer.Add(characters[i]);
                    }
                }
            }
            return(charContainer);
        }
コード例 #26
0
        public void GetStringFromUnicodeArrayTest()
        {
            string expected = "Test!";

            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
            var self   = encoding.GetBytes(expected);
            var actual = self.GetStringFromArray(EncodingType.Unicode);

            Assert.AreEqual(expected, actual);
        }
コード例 #27
0
ファイル: Rijndael.cs プロジェクト: 1287577782/book-code-1
        /// <summary>Utility function to convert a byte array to a string</summary>
        public static string BytesToString(byte[] message)
        {
            if (message.Length <= 0)
            {
                return("");
            }

            System.Text.UnicodeEncoding encoderUnicode = new System.Text.UnicodeEncoding();

            return(encoderUnicode.GetString(message));
        }
コード例 #28
0
ファイル: Rijndael.cs プロジェクト: 1287577782/book-code-1
        /// <summary>Utility function to convert a string to a byte array</summary>
        public static byte[] StringToBytes(string message)
        {
            if (message.Length <= 0)
            {
                return(new byte[0]);
            }

            System.Text.UnicodeEncoding encoderUnicode = new System.Text.UnicodeEncoding();

            return(encoderUnicode.GetBytes(message));
        }
コード例 #29
0
        /// <summary>
        /// Sets the commands index parameter to the specified string
        /// </summary>
        public void SetSParam(int index, string value)
        {
            int startIndex = index * 256 * 2;

            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
            Byte[] bytes = encoding.GetBytes(value);

            Array.Copy(bytes, 0, sParams, startIndex, bytes.Length);
            sParams[startIndex + bytes.Length]     = 0;
            sParams[startIndex + bytes.Length + 1] = 0;
        }
コード例 #30
0
        public ActionResult BatchUpload(DateTime?date, HttpPostedFileBase file, int?fundid, string text)
        {
            if (!date.HasValue)
            {
                ModelState.AddModelError("date", "Date is required");
                return(View("Batch"));
            }
            var    fromFile = false;
            string s;

            if (file != null)
            {
                var buffer = new byte[file.ContentLength];
                file.InputStream.Read(buffer, 0, file.ContentLength);
                System.Text.Encoding enc;
                if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                {
                    enc = new System.Text.UnicodeEncoding();
                    s   = enc.GetString(buffer, 2, buffer.Length - 2);
                }
                else
                {
                    enc = new System.Text.ASCIIEncoding();
                    s   = enc.GetString(buffer);
                }

                fromFile = true;
            }
            else
            {
                if (String.IsNullOrWhiteSpace(text))
                {
                    ModelState.AddModelError("textarea", "Text is required when no file is uploaded.");
                    return(View("Batch"));
                }

                s = text;
            }

            try
            {
                var id = BatchImportContributions.BatchProcess(s, date.Value, fundid, fromFile);
                if (id.HasValue)
                {
                    return(Redirect("/PostBundle/" + id));
                }

                return(RedirectToAction("Batch"));
            }
            catch (Exception ex)
            {
                return(PageMessage(ViewExtensions2.Markdown(ex.Message).ToString()));
            }
        }
コード例 #31
0
        /// <summary>
        /// Renames the replays' internal name
        /// </summary>
        /// <param name="newName">New name to use for the replay</param>
        public bool RenameReplay(Replay replay, string newName)
        {
            try
            {
                //load the replay data
                FileStream fsreader = File.OpenRead(replay.Filename);
                byte[]     data     = new byte[fsreader.Length];
                fsreader.Read(data, 0, data.Length);
                fsreader.Close();

                //create a buffer for the adjusted file
                int    new_replaysize         = replay.FileSize + ((newName.Length - replay.Name.Length) * 2);
                byte[] buffer                 = new byte[new_replaysize];
                System.IO.MemoryStream writer = new MemoryStream(buffer);

                //calculate the new db & foldinfo len
                int database_len = replay.DATABASE + ((newName.Length - replay.Name.Length) * 2);
                int foldinfo_len = replay.FOLDINFO + ((newName.Length - replay.Name.Length) * 2);

                //write everything into the new buffer up to the foldinfo len
                writer.Write(data, 0, replay.FOLDINFOPOS);
                byte[] foldinfo_byte = BitConverter.GetBytes(foldinfo_len);
                writer.Write(foldinfo_byte, 0, foldinfo_byte.Length);

                writer.Write(data, replay.FOLDINFOPOS + 4, (replay.DATABASEPOS - replay.FOLDINFOPOS - 4));
                byte[] database_byte = BitConverter.GetBytes(database_len);
                writer.Write(database_byte, 0, database_byte.Length);

                writer.Write(data, replay.DATABASEPOS + 4, (replay.REPLAYLENPOS - replay.DATABASEPOS - 4));
                byte[] replay_byte = BitConverter.GetBytes(newName.Length);
                writer.Write(replay_byte, 0, replay_byte.Length);

                //get the new name in bytes
                System.Text.UnicodeEncoding encoder = new System.Text.UnicodeEncoding();
                byte[] byte_name = encoder.GetBytes(newName);
                writer.Write(byte_name, 0, byte_name.Length);

                writer.Write(data, (replay.REPLAYLENPOS + 4 + (replay.Name.Length * 2)),
                             (replay.FileSize - ((replay.REPLAYLENPOS + 4) + replay.Name.Length * 2)));

                writer.Close();

                BinaryWriter binwriter = new BinaryWriter(File.Create(replay.Filename));
                binwriter.Write(buffer);
                binwriter.Close();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
コード例 #32
0
ファイル: BasePage.aspx.cs プロジェクト: tckhanh/Vilas103
        /// <summary>
        /// Mã hóa password
        /// </summary>
        protected string EncryptPassword(string Password)
        {
            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
            byte[] hashBytes = encoding.GetBytes(Password);

            //Compute the SHA-1 hash
            SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();

            byte[] cryptPassword = sha1.ComputeHash(hashBytes);

            return(BitConverter.ToString(cryptPassword));
        }
コード例 #33
0
        public void ReferenceGenerator_InitializesNamesAndReference()
        {
            System.Text.UnicodeEncoding enc = new System.Text.UnicodeEncoding();
            _referenceGenerator =
                new MethodReferenceGenerator(
                    "Remotion.Interfaces, Version=1.13.73.1026, Culture=neutral, PublicKeyToken=fee00910d6e5f53b", "Factory.ObjectFactory", "Param.ParamList");

            Assert.That(_referenceGenerator.ObjectFactoryName == "ObjectFactory");
            Assert.That(_referenceGenerator.ObjectFactoryNamespace == "Factory");
            Assert.That(_referenceGenerator.ParamListName == "ParamList");
            Assert.That(_referenceGenerator.ParamListNamespace == "Param");
        }
コード例 #34
0
        public string StreamToBytes(System.IO.Stream stream)
        {
            byte[] bytes = new byte[stream.Length];
            stream.Read(bytes, 0, bytes.Length);
            // 设置当前流的位置为流的开始
            stream.Seek(0, System.IO.SeekOrigin.Begin);

            System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();
            String d = converter.GetString(bytes);

            return(d);
        }
コード例 #35
0
		public byte[] KeyGenerator(string AndroidKey)
		{
			SecureRandom sr = SecureRandom.GetInstance("SHA1PRNG");
			var encoder = new System.Text.UnicodeEncoding();

			var b = encoder.GetBytes (AndroidKey);

			// use key
			sr.SetSeed(encoder.GetBytes(AndroidKey));

			return encoder.GetBytes (AndroidKey);


//			Cipher c = Cipher.GetInstance("AES");
//			c.Init(CipherMode.EncryptMode, 
//			KeyGenerator kg = KeyGenerator.GetInstance("AES");
//			kg.Init(128, sr);
//			return new SecretKeySpec (kg.GenerateKey ().GetEncoded (), "AES").GetEncoded ();
		}
コード例 #36
0
        public ActionResult BatchUpload(DateTime date, HttpPostedFileBase file, int? fundid, string text)
        {
            var fromFile = false;
            string s;

            if (file != null)
            {
                var buffer = new byte[file.ContentLength];
                file.InputStream.Read(buffer, 0, file.ContentLength);
                System.Text.Encoding enc;
                if (buffer[0] == 0xFF && buffer[1] == 0xFE)
                {
                    enc = new System.Text.UnicodeEncoding();
                    s = enc.GetString(buffer, 2, buffer.Length - 2);
                }
                else
                {
                    enc = new System.Text.ASCIIEncoding();
                    s = enc.GetString(buffer);
                }

                fromFile = true;
            }
            else
                s = text;

            try
            {
                var id = BatchImportContributions.BatchProcess(s, date, fundid, fromFile);
                if (id.HasValue)
                    return Redirect("/PostBundle/" + id);
                return RedirectToAction("Batch");
            }
            catch (Exception ex)
            {
                return PageMessage(ViewExtensions2.Markdown(ex.Message).ToString());
            }
        }
コード例 #37
0
ファイル: UWKPlugin.cs プロジェクト: nethz/UnityGame
        /// <summary>
        ///  Allocates a string on the uWebKit memory paging system
        /// </summary>
        public static int AllocateString(string value, ref int size)
        {
            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding ();
            Byte[] bytes = encoding.GetBytes (value);

            Byte[] nbytes = new Byte[bytes.Length + 2];
            Array.Copy (bytes, nbytes, bytes.Length);
            nbytes[bytes.Length] = 0;
            nbytes[bytes.Length + 1] = 0;

            GCHandle pinned = GCHandle.Alloc (nbytes, GCHandleType.Pinned);

            int i = UWK_AllocateAndCopy (pinned.AddrOfPinnedObject (), nbytes.Length);

            pinned.Free ();

            size = nbytes.Length;

            if (i < 0)
                throw new Exception ("Error Allocating String");

            return i;
        }
コード例 #38
0
ファイル: Table_PCLT.cs プロジェクト: bitforks/Font-Validator
            public bool setFileName( string sFileName )
            {
                bool bResult = true;

                System.Text.UnicodeEncoding ue = new System.Text.UnicodeEncoding();
            
                if( ue.GetByteCount( sFileName ) != 6 )
                {
                    bResult = false;
                    throw new ArrayTypeMismatchException( "FileName is should have a length of 6 characters." );
                }

                m_FileName = ue.GetBytes( sFileName );

                return bResult;
            }
コード例 #39
0
        public void DoTestLocalMessageBroadcastDotNet()
        {
            bool repeat = false;
            do {
                Console.Write("What's your name: ");
                string name = Console.ReadLine();
                Console.WriteLine("Welcome " + name + ". You can say something by typing 's', type 'S' for a message to only 1 partner, q to quit.");

                localMessageBroadcastPartner = new LocalMessageBroadcastPartner(name, "TESTCHANNEL");
                localMessageBroadcastPartner.OnPartnerJoined += PartnerJoinedHandler;
                localMessageBroadcastPartner.OnPartnerLeft += PartnerLeftHandler;
                localMessageBroadcastPartner.OnMessage += delegate(UInt32 sendingPartnerId, IntPtr msgData, UInt32 msgLength) {
                    Console.Out.WriteLine( localMessageBroadcastPartner.GetPartnerName(sendingPartnerId) + " says: "	+ Marshal.PtrToStringUni(msgData, (int)msgLength / 2) );
                };

                if ( localMessageBroadcastPartner != null ) {
                    try {
                        Console.WriteLine("We have ID = " + localMessageBroadcastPartner.PartnerId.ToString());

                        char input = Console.ReadKey(true).KeyChar;//.ReadLine();
                        while ( input != 'q' ) {
                            if ( input == 's' ) {
                                Console.Write("" + name + " says: ");
                                string msg = Console.ReadLine();

                                byte[] stringBytes = new System.Text.UnicodeEncoding().GetBytes(msg);
                                localMessageBroadcastPartner.BroadcastMessage(stringBytes);
                            }
                            else if ( input == 'S' ) {
                                UInt32 partnerId;
                                Console.Write("To which partner ID do you want to speak: ");
                                while ( ! UInt32.TryParse( Console.ReadLine(), out partnerId) ) {
                                    Console.Write("Error, you need to give an integer: ");
                                }

                                Console.Write("" + name + " says: ");
                                string msg = Console.ReadLine();

                                byte[] stringBytes = new System.Text.UnicodeEncoding().GetBytes(msg);
                                localMessageBroadcastPartner.SendMessageToSinglePartner(partnerId, stringBytes);
                            }

                            input = Console.ReadKey(true).KeyChar;
                        }
                    }
                    finally {
                        localMessageBroadcastPartner.Dispose();
                    }
                }
                else {
                    Console.WriteLine( "new LocalMessageBroadcastPartner(...) FAILED!!!" );
                }

                Console.WriteLine( "\nPress 'q' again to really quit or 'r' to restart..." );
                repeat = false;
                char input2 = Console.ReadKey(true).KeyChar;//.ReadLine();
                while ( input2 != 'q' && input2 != 'r' ) {
                    input2 = Console.ReadKey(true).KeyChar;
                }
                if (input2 == 'r') {
                    repeat = true;
                    Console.WriteLine();
                }

            } while (repeat);
            //Thread.Sleep(8000);
        }
コード例 #40
0
ファイル: UWKPlugin.cs プロジェクト: nethz/UnityGame
        /// <summary>
        ///  Retrieves a string allocated on the uWebKit memory paging system
        /// </summary>
        public static string GetString(int page, int sz)
        {
            byte[] bytes = new byte[sz];
            GetBytes (page, sz, bytes);

            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding ();

            return encoding.GetString (bytes);
        }
コード例 #41
0
		public UserComment (byte [] raw_data, bool little)
		{
			if (raw_data.Length == 8 || raw_data.Length == 0) { 
				Charset = null;
				Value = String.Empty;
				return;
			} else if (raw_data.Length < 8) {
				throw new Exception ("Invalid UserComment value, no charset found");
			}

			string charset = System.Text.Encoding.ASCII.GetString (raw_data, 0, 8);
			System.Text.Encoding enc;

			switch (charset) {
			case "ASCII\0\0\0":
				enc = System.Text.Encoding.ASCII;
				break;
			case "UNICODE\0":
			case "Unicode\0":
				enc = new System.Text.UnicodeEncoding (! little, true);
				break;
			case "JIS\0\0\0\0\0":
				// FIXME this requires mono locale extras
				try {
					enc = System.Text.Encoding.GetEncoding ("euc-jp");
				} catch {
					System.Console.WriteLine ("missing jis0208 encoding");
					enc = System.Text.Encoding.Default;
				}
				break;
			case "\0\0\0\0\0\0\0\0":
				// FIXME the spec says to use the local encoding in this case, we could probably
				// do something smarter, but whatever.
				enc = System.Text.Encoding.Default;
				break;
			default:
				enc = null;
				throw new ParseException (System.String.Format ("Invalid charset name: {0}", charset));
			}

			Charset = charset;
			// for (int i = 0; i < raw_data.Length; i++)
			//	System.Console.WriteLine ("{0} - \"{1}\"", raw_data [i].ToString ("x"), raw_data [i]);
			Value = enc.GetString (raw_data, 8, raw_data.Length - 8);
		}
コード例 #42
0
		public byte [] GetBytes (bool is_little)
		{
			bool ascii = true;
			string description = Value;
			System.Text.Encoding enc;
			string heading;

			for (int i = 0; i < description.Length; i++) {
				if (description [i] > 127) {
					ascii = false;
					break;
				}
			}

			if (ascii) {
				heading = "ASCII\0\0\0";
				enc = new System.Text.ASCIIEncoding ();
			} else {
				heading = "Unicode\0";
				enc = new System.Text.UnicodeEncoding (! is_little, true);
			}
			
			int len = enc.GetByteCount (description);
			byte [] data = new byte [len + heading.Length];
			System.Text.Encoding.ASCII.GetBytes (heading, 0, heading.Length, data, 0);
			enc.GetBytes (Value, 0, Value.Length, data, heading.Length);
			
			UserComment c = new UserComment (data, is_little);
			System.Console.WriteLine ("old = \"{0}\" new = \"{1}\" heading = \"{2}\"", c.Value, description, heading);
			return data;
		}
コード例 #43
0
ファイル: UWKCommand.cs プロジェクト: nethz/UnityGame
        /// <summary>
        /// Sets the commands index parameter to the specified string
        /// </summary>
        public void SetSParam(int index, string value)
        {
            int startIndex = index * 256 * 2;

            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding ();
            Byte[] bytes = encoding.GetBytes (value);

            Array.Copy (bytes, 0, sParams, startIndex, bytes.Length);
            sParams[startIndex + bytes.Length] = 0;
            sParams[startIndex + bytes.Length + 1] = 0;
        }
コード例 #44
0
 public static void sqlite3_result_blob(SqliteContextHandle context, byte[] data, int dataLength, object callback)
 {
     var value = new System.Text.UnicodeEncoding().GetString(data, 0, data.Length);
     Community.CsharpSqlite.Sqlite3.sqlite3_result_blob(context.Handle, value, dataLength, null);
 }
コード例 #45
0
        public void ReferenceGenerator_InitializesNamesAndReference()
        {
            System.Text.UnicodeEncoding enc = new System.Text.UnicodeEncoding();
              _referenceGenerator =
            new MethodReferenceGenerator (
              "Remotion.Interfaces, Version=1.13.73.1026, Culture=neutral, PublicKeyToken=fee00910d6e5f53b", "Factory.ObjectFactory", "Param.ParamList");

              Assert.That (_referenceGenerator.ObjectFactoryName == "ObjectFactory");
              Assert.That (_referenceGenerator.ObjectFactoryNamespace == "Factory");
              Assert.That (_referenceGenerator.ParamListName == "ParamList");
              Assert.That (_referenceGenerator.ParamListNamespace == "Param");
        }
コード例 #46
0
ファイル: Fuzzer.cs プロジェクト: cweb/unicode-hax
        /// <summary>
        /// Malforms the bytes by removing the last byte from whichever encoding you specify.
        /// </summary>
        /// <param name="encoding">The encoding you want a byte representation in.  Specify utf-8, utf-16le, or utf16-be</param>
        /// <param name="character">A single character sent as a string.</param>
        /// <returns></returns>
        public byte[] GetCharacterBytesMalformed(string encoding, string character)
        {
            System.Text.Encoding enc;

            if (encoding == "utf-16le")
            {
                enc = new System.Text.UnicodeEncoding();
            }
            else if (encoding == "utf-16be")
            {
                enc = new System.Text.UnicodeEncoding(true, false);
            }
            else
            {
                enc = new System.Text.UTF8Encoding();
            }

            byte[] characterBytes = enc.GetBytes(character);  // now we have a byte array
            byte[] shorter;

            // Check that there's more than one byte before malforming it by removing the last byte.
            // Otherwise we'd end up with no bytes in the array.  This can make test cases pretty useless.
            if (enc.GetByteCount(character) > 1)
            {
                shorter = new byte[characterBytes.Length - 1];
                Array.Copy(characterBytes, shorter, shorter.Length);
            }

            // just return the one byte array rather than removing the one byte
            else
            {
                shorter = new byte[characterBytes.Length];
                Array.Copy(characterBytes, shorter, shorter.Length);
            }
            return shorter;
        }
コード例 #47
0
ファイル: Table_PCLT.cs プロジェクト: bitforks/Font-Validator
            public bool setCharacterComplement( string sCharacterComplement )
            {
                bool bResult = true;

                System.Text.UnicodeEncoding ue = new System.Text.UnicodeEncoding();
            
                if( ue.GetByteCount( sCharacterComplement ) != 8 )
                {
                    bResult = false;
                    throw new ArrayTypeMismatchException( "CharacterComplement should have a length of 8 characters." );
                }

                m_CharacterComplement = ue.GetBytes( sCharacterComplement );

                return bResult;
            }
コード例 #48
0
ファイル: Utilidades.cs プロジェクト: fcrespo/WSTPV
        public static string Contrasenia_Cryp_MD5(string texto)
        {
            byte[] resultadomd5;
            byte[] qsstrbytearray;
            int indice;

            System.Text.UnicodeEncoding codificacion = new System.Text.UnicodeEncoding();
            System.Security.Cryptography.MD5CryptoServiceProvider varmd5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

            string codstr = "";
            string ret = "";

            if (texto == "")
                ret = "";
            else
            {
                qsstrbytearray = codificacion.GetBytes(texto);
                resultadomd5 = varmd5.ComputeHash(qsstrbytearray);

                for (indice = 0; indice < resultadomd5.Length; indice++)
                {
                    string tmp = resultadomd5[indice].ToString("X");
                    if (tmp.Length == 1)
                        codstr += "0";
                    codstr += tmp;
                }
                ret = codstr;
            }
            return ret;
        }
コード例 #49
0
		/// <summary>
		/// Processes v4 of the .rec file (patch 1.4 / 1.41)
		/// </summary>
		private void readv4(BinaryReader reader)
		{
			int index = 0;
			//skip
			reader.BaseStream.Position += 85;

			replay.Duration = CalculateDuration(reader.ReadInt32());
			
			reader.BaseStream.Position += 36;
			//FOLDINFO tag is in here
			replay.FOLDINFOPOS = (int)reader.BaseStream.Position;
			replay.FOLDINFO = reader.ReadInt32();

			//skip
			reader.BaseStream.Position += 61;
			
			//will use the number of players a bit later
			int numplayers = reader.ReadInt32();
			replay.MapSize = reader.ReadInt32();

			//len of map module
			int mapmodulelen = reader.ReadInt32();
			reader.BaseStream.Position += mapmodulelen;

			//internal map name eg: $1 0 0 3 (dont need this now)
			int internalmaplen = reader.ReadInt32();
			reader.BaseStream.Position += internalmaplen * 2;

			//map name
			replay.Map = new String(reader.ReadChars(reader.ReadInt32()));
			replay.Map = replay.Map.Replace("_", " ");
			replay.Map = replay.Map.Remove(0, replay.Map.LastIndexOf(@"\") + 4);

			//skip
			if (replay.Version > 1)
				reader.BaseStream.Position += 16;
			else
			{
				//FOLDMODI and DATADMOD tags
				reader.BaseStream.Position += 33; //skip
				int foldmodilen = reader.ReadInt32();
				reader.BaseStream.Position += foldmodilen + 4;
			}

			reader.BaseStream.Position += 12;

			replay.DATABASEPOS = (int)reader.BaseStream.Position;
			replay.DATABASE = reader.ReadInt32();
			//DATABASE tag is just before here
			reader.BaseStream.Position += 16;
			
			//game options
			replay.GameOptions = new GameOptionsType();
			int numgameopts = reader.ReadInt32();
			for (index = 0; index < numgameopts; index++)
			{
				int optvalue = reader.ReadInt32();
				string option = new String(reader.ReadChars(4));

				switch (option)
				{
					case GameOptionsType.AIDifficultyName:	//AI Difficulty
						replay.GameOptions.AIDifficulty = (GameOptionsType.AIDifficultyType)optvalue;
						break;
					case GameOptionsType.StartingResourcesName:	//Starting Resources
						replay.GameOptions.StartingResources = (GameOptionsType.StartingResourcesType)optvalue;
						break;
					case GameOptionsType.LockTeamsName:		//Lock Teams
						replay.GameOptions.LockTeams = (GameOptionsType.LockTeamsType)optvalue;
						break;
					case GameOptionsType.CheatsEnabledName:	//Cheats enabled
						replay.GameOptions.CheatsEnabled = (GameOptionsType.CheatsEnabledType)optvalue;
						break;
					case GameOptionsType.StartingLocationName:	//Starting Location
						replay.GameOptions.StartingLocation = (GameOptionsType.StartingLocationType)optvalue;
						break;
					case GameOptionsType.GameSpeedName:		 //Game Speed
						replay.GameOptions.GameSpeed = (GameOptionsType.GameSpeedType)optvalue;
						break;
					case GameOptionsType.ResourceSharingName: //Resource Sharing
						replay.GameOptions.ResourceSharing = (GameOptionsType.ResourceSharingType)optvalue;
						break;
					case GameOptionsType.ResourceRateName:	//Resource Rate
						replay.GameOptions.ResourceRate = (GameOptionsType.ResourceRateType)optvalue;
						break;
					default:
						break;
				}
			}

			//skip 1 byte
			reader.BaseStream.Position++;

			//internal replay name
			replay.REPLAYLENPOS = (int)reader.BaseStream.Position;
			int replaylen = reader.ReadInt32();
			System.Text.UnicodeEncoding unicode = new System.Text.UnicodeEncoding();
			replay.Name = unicode.GetString(reader.ReadBytes(replaylen * 2));
			
			//skip
			reader.BaseStream.Position += 4;

			//win conditions
			replay.WinConditions = new WinConditionsType();
			int numwinconditions = reader.ReadInt32();
			for(index = 0; index < numwinconditions; index++)
			{
				int win_condition = reader.ReadInt32();
				
				switch(win_condition)
				{
					case WinConditionsType.AnnihilateValue:	//Annihilate
						replay.WinConditions.Annihilate = true;
						break;
					case WinConditionsType.AssassinateValue://Assassinate
						replay.WinConditions.Assassinate = true;
						break;
					case WinConditionsType.ControlAreaValue://Control Area
						replay.WinConditions.ControlArea = true;
						break;
					case WinConditionsType.DestroyHQValue:	//Destroy HQ
						replay.WinConditions.DestroyHQ = true;
						break;
					case WinConditionsType.EconomicVictoryValue:	//Economic Victory
						replay.WinConditions.EconomicVictory = true;
						break;
					case WinConditionsType.TakeAndHoldValue:		//Take and Hold
						replay.WinConditions.TakeAndHold = true;
						break;
					case WinConditionsType.SuddenDeathValue:		//Sudden Death
						replay.WinConditions.SuddenDeath = true;
						break;
					default:
						break;
				}
			}

			//Players
			replay.Players = new PlayerCollection();
			for (index = 0; index < numplayers; index++)
			{			
				//skip
				reader.BaseStream.Position += 12;

				//player len
				int playerlen = reader.ReadInt32();
				if (playerlen != 44)	//this is not really needed now.... handled by the observer skip
				{
					replay.Players.Add(new Player());				

					//skip has DATAINFO tag
					reader.BaseStream.Position += 12;

					//skip
					reader.BaseStream.Position += 12;

					//current players name
					int playernamelen = reader.ReadInt32();
					replay.Players[index].Name = unicode.GetString(reader.ReadBytes(playernamelen * 2));

					//skip
					reader.BaseStream.Position += 4;
				
					//players team number
					replay.Players[index].Team = reader.ReadInt32() + 1; //+1 for the 0 base
					if (replay.NumTeams < replay.Players[index].Team)
						replay.NumTeams = replay.Players[index].Team;

					int playerracelen = reader.ReadInt32();
					replay.Players[index].Race = new string(reader.ReadChars(playerracelen));

					//new addition in v1.41 for skirmish check
					reader.BaseStream.Position += 4;
					if (replay.Version >= 4)
						reader.BaseStream.Position += reader.ReadInt32() + 4;
				
					//FOLDTCUC skip
					reader.BaseStream.Position += 32;

					int datalcinlen = reader.ReadInt32();
					reader.BaseStream.Position += datalcinlen + 4;
				
					reader.BaseStream.Position += 20;
					int armynamelen = reader.ReadInt32();
					replay.Players[index].Army = unicode.GetString(reader.ReadBytes(armynamelen * 2));

					replay.Players[index].ArmyColours = new System.Drawing.Color[5];
					for (int i = 0; i < 5; i++)
					{
						byte[] rawcolours = reader.ReadBytes(4);
						replay.Players[index].ArmyColours[i] = 
							System.Drawing.Color.FromArgb(rawcolours[3], rawcolours[2], rawcolours[1], rawcolours[0]);
					}

					for (int i = 0; i < 2; i++)	//badge and banner images
					{
						string tagname = new String(reader.ReadChars(8));

						if (tagname == "FOLDTCBD" || tagname == "FOLDTCBN")
						{
							//skip
							reader.BaseStream.Position += 28;

							int imagenamelen = reader.ReadInt32();
							if (tagname == "FOLDTCBD")
							{
								replay.Players[index].BadgeName = new string(reader.ReadChars(imagenamelen));
							}
							else
							{
								replay.Players[index].BannerName = new string(reader.ReadChars(imagenamelen));
							}

							//skip
							reader.BaseStream.Position += 24;

							//get the size of the image we're about to read
							int xsize = reader.ReadInt32();
							int ysize = reader.ReadInt32();

							//skip
							reader.BaseStream.Position += 24;
						
							if (tagname == "FOLDTCBD")
								replay.Players[index].Badge = new System.Drawing.Bitmap(xsize, ysize);
							else
								replay.Players[index].Banner = new System.Drawing.Bitmap(xsize, ysize);

							for (int y = 0; y < ysize; y++)
							{
								for (int x = 0; x < xsize; x++)
								{
									byte[] rawcolor = reader.ReadBytes(4);
									if (tagname == "FOLDTCBD")
										replay.Players[index].Badge.SetPixel(x, y, 
											System.Drawing.Color.FromArgb(rawcolor[3], rawcolor[2], rawcolor[1], rawcolor[0]));
									else
										replay.Players[index].Banner.SetPixel(x, y, 
											System.Drawing.Color.FromArgb(rawcolor[3], rawcolor[2], rawcolor[1], rawcolor[0]));
								}
							}

							if (tagname == "FOLDTCBD")
								replay.Players[index].Badge.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipY);
							else
								replay.Players[index].Banner.RotateFlip(System.Drawing.RotateFlipType.RotateNoneFlipY);
						}
						else
						{
							reader.BaseStream.Position -= 8;
						}
					}
				}
				else
				{
					reader.BaseStream.Position += playerlen + 4;
				}
			}

			//convert from zero based index
			//replay.NumTeams++;

			//just skip over the observers for the time being
			string tag = new String(reader.ReadChars(8));
			while (tag == "FOLDGPLY")
			{
				reader.BaseStream.Position += 4;
				int observerlen = reader.ReadInt32();
				reader.BaseStream.Position += observerlen + 4;
				
				tag = new String(reader.ReadChars(8));
				if (tag != "FOLDGPLY")
					reader.BaseStream.Position -= 8;
			}
			//process the chat
			
			replay.Chat = new ChatType();
			int ticks = 0;
			while (reader.BaseStream.Position < reader.BaseStream.Length)
			{
				int type = reader.ReadInt32();
				int len = reader.ReadInt32();

				if (len == 0)	//nothing left... get out
					break;

				switch (type)
				{
					case 1:
						int chattype = reader.ReadInt32();
						if (chattype == 1)
						{
							reader.BaseStream.Position += 5;
							int senderlen = reader.ReadInt32();
							string sender = unicode.GetString(reader.ReadBytes(senderlen*2));
							reader.BaseStream.Position += 12;
							int msg_len = reader.ReadInt32();		//Message Length
							byte[] msg_bytes = reader.ReadBytes(msg_len*2);

							string msg = unicode.GetString(msg_bytes);
							reader.BaseStream.Position = reader.BaseStream.Position;

							replay.Chat.AddMessage(sender, msg, ticks);
						}
						break;
					default:
						//skip
						reader.BaseStream.Position += 2;
						ticks = reader.ReadInt32();
						//skip - what we're already read
						reader.BaseStream.Position += len - 6;
						break;
				}
			}
		}
コード例 #50
0
        /// <summary>
        /// Reads the entire backup file and returns a root catalog node.
        /// The root node contains backup sets/volumes/directories/files
        /// as child nodes.
        /// </summary>
        public CCatalogNode ReadCatalog()
        {
            Logger.Info("Reading backup");

            // Set to true to cancel reading
            mCancel = false;

            // Read the media header
            var tapeHeaderDescriptorBlock = (CTapeHeaderDescriptorBlock)mStream.ReadDBLK();

            // Read soft file mark
            var filemarkDescriptorBlock = (CSoftFilemarkDescriptorBlock)mStream.ReadDBLK();

            // Create the root catalog node
            var node = new CCatalogNode(tapeHeaderDescriptorBlock, tapeHeaderDescriptorBlock.MediaName, ENodeType.Root);

            CCatalogNode lastSetNode = null;
            CCatalogNode lastVolumeNode = null;
            CCatalogNode lastFolderNode = null;

            // Get next block type
            var blockType = mStream.PeekNextBlockType();
            while ((blockType != EBlockType.MTF_EOTM) && (blockType != 0) && (mCancel == false))
            {
                // Read next block
                var block = mStream.ReadDBLK();

                // Add to catalog
                if (blockType == EBlockType.MTF_SSET)
                {
                    var dataSetDescriptorBlock = (CStartOfDataSetDescriptorBlock)block;
                    var cnode = node.AddSet(dataSetDescriptorBlock);
                    lastSetNode = cnode;
                }
                else if (blockType == EBlockType.MTF_VOLB)
                {
                    var volumeDescriptorBlock = (CVolumeDescriptorBlock)block;
                    var cnode = lastSetNode.AddVolume(volumeDescriptorBlock);
                    lastVolumeNode = cnode;
                }
                else if (blockType == EBlockType.MTF_DIRB)
                {
                    var directoryDescriptorBlock = (CDirectoryDescriptorBlock)block;
                    // Check if the directory name is contained in a data stream
                    CCatalogNode cnode = null;
                    if ((directoryDescriptorBlock.DIRBAttributes & EDIRBAttributes.DIRB_PATH_IN_STREAM_BIT) != 0)
                    {
                        foreach (CDataStream data in directoryDescriptorBlock.Streams)
                        {
                            if (data.Header.StreamID == "PNAM")
                            {
                                if (directoryDescriptorBlock.StringType == EStringType.ANSI)
                                {
                                    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                                    var folderName = encoding.GetString(data.Data);
                                    folderName = folderName.Substring(0, folderName.Length - 1);
                                    cnode = lastVolumeNode.AddFolder(directoryDescriptorBlock, folderName);
                                }
                                else if (directoryDescriptorBlock.StringType == EStringType.Unicode)
                                {
                                    System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
                                    var folderName = encoding.GetString(data.Data);
                                    folderName = folderName.Substring(0, folderName.Length - 1);
                                    cnode = lastVolumeNode.AddFolder(directoryDescriptorBlock, folderName);
                                }

                            }
                        }
                    }
                    else
                    {
                        var folderName = directoryDescriptorBlock.DirectoryName.Substring(0, directoryDescriptorBlock.DirectoryName.Length - 1);
                        cnode = lastVolumeNode.AddFolder(directoryDescriptorBlock, folderName);
                    }

                    if (cnode != null) lastFolderNode = cnode;
                }
                else if (blockType == EBlockType.MTF_FILE)
                {
                    var fileDescriptorBlock = (CFileDescriptorBlock)block;
                    // Check if the file name is contained in a data stream
                    CCatalogNode cnode = null;
                    if ((fileDescriptorBlock.FileAttributes & EFileAttributes.FILE_NAME_IN_STREAM_BIT) != 0)
                    {
                        foreach (CDataStream data in fileDescriptorBlock.Streams)
                        {
                            if (data.Header.StreamID == "FNAM")
                            {
                                if (fileDescriptorBlock.StringType == EStringType.ANSI)
                                {
                                    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                                    var fileName = encoding.GetString(data.Data);
                                    lastFolderNode.AddFile(fileDescriptorBlock, fileName);
                                }
                                else if (fileDescriptorBlock.StringType == EStringType.Unicode)
                                {
                                    System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
                                    var fileName = encoding.GetString(data.Data);
                                    lastFolderNode.AddFile(fileDescriptorBlock, fileName);
                                }

                            }
                        }
                    }
                    else
                    {
                        lastFolderNode.AddFile(fileDescriptorBlock, fileDescriptorBlock.FileName);
                    }
                }

                // Get next block type
                blockType = mStream.PeekNextBlockType();

                // Check progress
                if (mStream.BaseStream.Position > mLastPos + mIncrement)
                {
                    mLastPos = mStream.BaseStream.Position;
                    OnProgressChange((int)((float)mLastPos / (float)mStream.BaseStream.Length * 100.0f));
                }
            }

            return node;
        }
コード例 #51
0
		public Encrypt Encode(EncryptType type, string value)
		{
			var result = new Encrypt ();
			result.Value = null;
			result.Type = type;
			if (type == EncryptType.OK) {
				try {
					var key = AES;
					if (key != null)
					{
						result.Key = key;
						Cipher c = Cipher.GetInstance("AES");
						c.Init(CipherMode.EncryptMode, key as IKey);
						var encoder = new System.Text.UnicodeEncoding();
						result.Value = c.DoFinal(encoder.GetBytes(value));
						return result;
					}
				} 
				catch (Exception) {
					return null;
				}
			} else if (type == EncryptType.STRONG) {
				try 
				{
					var keys = RSA;
					if (keys != null)
					{
						result.PublicKey = keys[1];
						result.PrivateKey = keys[0];
						Cipher c = Cipher.GetInstance ("RSA");
						c.Init(Javax.Crypto.CipherMode.EncryptMode, result.PublicKey as IKey);
						var encoder = new System.Text.UnicodeEncoding();
						result.Value = c.DoFinal (encoder.GetBytes(value));
						return result;
					}
				} 
				catch (Exception) {
					return null;
				}
			}

			return null;
		}
コード例 #52
0
ファイル: Fuzzer.cs プロジェクト: cweb/unicode-hax
        /// <summary>
        /// Gets the requested byte representation of the current Unicode character codepoint
        /// </summary>
        /// <param name="encoding">The encoding you want a byte representation in.  Specify utf-8, utf-16le, or utf16-be</param>
        /// <param name="character">A single character sent as a string.</param>
        /// <returns>Returns a byte array</returns>
        public byte[] GetCharacterBytes(string encoding, string character)
        {
            System.Text.Encoding enc;
            if (encoding == "utf-16le")
            {
                enc = new System.Text.UnicodeEncoding();
            }
            else if (encoding == "utf-16be")
            {
                enc = new System.Text.UnicodeEncoding(true, false);
            }
            else
            {
                enc = new System.Text.UTF8Encoding();
            }

            return enc.GetBytes(character);
        }
コード例 #53
0
		/// <summary>
		/// Renames the replays' internal name
		/// </summary>
		/// <param name="newName">New name to use for the replay</param>
		public bool RenameReplay(Replay replay, string newName)
		{
			try
			{
				//load the replay data
				FileStream fsreader = File.OpenRead(replay.Filename);
				byte[] data = new byte[fsreader.Length];
				fsreader.Read(data, 0, data.Length);
				fsreader.Close();

				//create a buffer for the adjusted file
				int new_replaysize = replay.FileSize + ((newName.Length - replay.Name.Length) * 2);
				byte[] buffer = new byte[new_replaysize];
				System.IO.MemoryStream writer = new MemoryStream(buffer);
 
				//calculate the new db & foldinfo len
				int database_len = replay.DATABASE + ((newName.Length - replay.Name.Length) * 2);
				int foldinfo_len = replay.FOLDINFO + ((newName.Length - replay.Name.Length) * 2);

				//write everything into the new buffer up to the foldinfo len
				writer.Write(data, 0, replay.FOLDINFOPOS);
				byte[] foldinfo_byte = BitConverter.GetBytes(foldinfo_len);
				writer.Write(foldinfo_byte, 0, foldinfo_byte.Length);

				writer.Write(data, replay.FOLDINFOPOS + 4, (replay.DATABASEPOS - replay.FOLDINFOPOS - 4));
				byte[] database_byte = BitConverter.GetBytes(database_len);
				writer.Write(database_byte, 0, database_byte.Length);

				writer.Write(data, replay.DATABASEPOS + 4, (replay.REPLAYLENPOS - replay.DATABASEPOS - 4));
				byte[] replay_byte = BitConverter.GetBytes(newName.Length);
				writer.Write(replay_byte, 0, replay_byte.Length);

				//get the new name in bytes
				System.Text.UnicodeEncoding encoder = new System.Text.UnicodeEncoding();
				byte[] byte_name = encoder.GetBytes(newName);
				writer.Write(byte_name, 0, byte_name.Length);

				writer.Write(data, (replay.REPLAYLENPOS + 4 + (replay.Name.Length * 2)), 
					(replay.FileSize - ((replay.REPLAYLENPOS + 4) + replay.Name.Length * 2)));

				writer.Close();

				BinaryWriter binwriter = new BinaryWriter(File.Create(replay.Filename));
				binwriter.Write(buffer);
				binwriter.Close();

				return true;
			}
			catch
			{
				return false;
			}
		}
コード例 #54
0
ファイル: UWKCommand.cs プロジェクト: nethz/UnityGame
        /// <summary>
        /// This function is deprecated in favor of Plugin.GetString and Plugin.AllocateString
        /// </summary>
        public void SpanSParams(int startIndex, string s)
        {
            numSParams = startIndex;

            for (int i = 0; i < s.Length;) {
                string ss = s.Substring (i, s.Length - i < 250 ? s.Length - i : 250);

                System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding ();
                Byte[] bytes = encoding.GetBytes (ss);

                int idx = numSParams * 256 * 2;

                Array.Copy (bytes, 0, sParams, idx, bytes.Length);
                sParams[idx + bytes.Length] = 0;
                sParams[idx + bytes.Length + 1] = 0;

                numSParams++;

                i += 250;
            }
        }
コード例 #55
0
ファイル: CBackupReader.cs プロジェクト: 340211173/hf-2011
        /// <summary>
        /// Reads the entire backup file and returns a root catalog node.
        /// The root node contains backup sets/volumes/directories/files
        /// as child nodes.
        /// </summary>
        public CCatalogNode ReadCatalog()
        {
            // Set to true to cancel reading
            mCancel = false;

            // Read the media header
            CTapeHeaderDescriptorBlock tape = (CTapeHeaderDescriptorBlock)mStream.ReadDBLK();
            // Read soft file mark
            CSoftFilemarkDescriptorBlock file = (CSoftFilemarkDescriptorBlock)mStream.ReadDBLK();

            // Create the root catalog node
            CCatalogNode node = new CCatalogNode(tape.MediaName, ENodeType.Root, 0);
            CCatalogNode nLastSet = null;
            CCatalogNode nLastVolume = null;
            CCatalogNode nLastDir = null;

            // Get next block type
            EBlockType bt = mStream.PeekNextBlockType();
            while ((bt != EBlockType.MTF_EOTM) && (bt != 0) && (mCancel == false))
            {
                // Read next block
                CDescriptorBlock block = mStream.ReadDBLK();

                // Add to catalog
                if (bt == EBlockType.MTF_SSET)
                {
                    CStartOfDataSetDescriptorBlock sset = (CStartOfDataSetDescriptorBlock)block;
                    CCatalogNode cnode = node.AddSet("Set: " + sset.DataSetNumber + " - " + sset.DataSetName, block.StartPosition);
                    nLastSet = cnode;
                }
                else if (bt == EBlockType.MTF_VOLB)
                {
                    CVolumeDescriptorBlock vol = (CVolumeDescriptorBlock)block;
                    CCatalogNode cnode = nLastSet.AddVolume(vol.DeviceName, block.StartPosition);
                    nLastVolume = cnode;
                }
                else if (bt == EBlockType.MTF_DIRB)
                {
                    CDirectoryDescriptorBlock dir = (CDirectoryDescriptorBlock)block;
                    // Check if the directory name is contained in a data stream
                    CCatalogNode cnode = null;
                    if ((dir.DIRBAttributes & EDIRBAttributes.DIRB_PATH_IN_STREAM_BIT) != 0)
                    {
                        foreach (CDataStream data in dir.Streams)
                        {
                            if (data.Header.StreamID == "PNAM")
                            {
                                if (dir.StringType == EStringType.ANSI)
                                {
                                    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                                    string str = encoding.GetString(data.Data);
                                    str = str.Substring(0, str.Length - 1);
                                    cnode = nLastVolume.AddFolder(str, block.StartPosition);
                                }
                                else if (dir.StringType == EStringType.Unicode)
                                {
                                    System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
                                    string str = encoding.GetString(data.Data);
                                    str = str.Substring(0, str.Length - 1);
                                    cnode = nLastVolume.AddFolder(str, block.StartPosition);
                                }

                            }
                        }
                    }
                    else
                        cnode = nLastVolume.AddFolder(dir.DirectoryName.Substring(0, dir.DirectoryName.Length - 1), block.StartPosition);

                    if (cnode != null) nLastDir = cnode;
                }
                else if (bt == EBlockType.MTF_FILE)
                {
                    CFileDescriptorBlock fil = (CFileDescriptorBlock)block;
                    // Check if the file name is contained in a data stream
                    CCatalogNode cnode = null;
                    if ((fil.FileAttributes & EFileAttributes.FILE_NAME_IN_STREAM_BIT) != 0)
                    {
                        foreach (CDataStream data in fil.Streams)
                        {
                            if (data.Header.StreamID == "FNAM")
                            {
                                if (fil.StringType == EStringType.ANSI)
                                {
                                    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                                    string str = encoding.GetString(data.Data);
                                    cnode = nLastDir.AddFile(str, block.StartPosition);
                                }
                                else if (fil.StringType == EStringType.Unicode)
                                {
                                    System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
                                    string str = encoding.GetString(data.Data);
                                    cnode = nLastDir.AddFile(str, block.StartPosition);
                                }

                            }
                        }
                    }
                    else
                        cnode = nLastDir.AddFile(fil.FileName, block.StartPosition);
                }

                // Get next block type
                bt = mStream.PeekNextBlockType();

                // Check progress
                if (mStream.BaseStream.Position > mLastPos + mIncrement)
                {
                    mLastPos = mStream.BaseStream.Position;
                    OnProgressChange((int)((float)mLastPos / (float)mStream.BaseStream.Length * 100.0f));
                }
            }

            return node;
        }
コード例 #56
0
ファイル: UWKCommand.cs プロジェクト: nethz/UnityGame
        /// <summary>
        /// Retrieve the commands string parameter at the specified index
        /// </summary>
        public string GetSParam(int index)
        {
            int startIndex = index * 256 * 2;
            int length = 0;

            while ((sParams[startIndex + length] != 0 || sParams[startIndex + length + 1] != 0) && length < 256)
                length += 2;

            if (length == 256)
                throw new Exception ("sParam is unterminated");

            System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding ();
            return encoding.GetString (sParams, startIndex, length);
        }
コード例 #57
0
ファイル: crc32.cs プロジェクト: etos/wrox-sfv
        private UInt32 Update( string FullPathToFile )
        {
            unchecked
            {
                // Creates an encoder that will map each Unicode character to 2 bytes
                System.Text.UnicodeEncoding myEncoder = new System.Text.UnicodeEncoding();

                // Include file name only, strip off path information
                // This is done so we get the same CRC no matter if the CD is in drive G
                // on one machine and drive F on another, kappish?

                int index = FullPathToFile.LastIndexOf( '\\' );
                string strFileName = FullPathToFile.Substring( index + 1 );

                // Convert file name to byte array

                int count = myEncoder.GetByteCount( strFileName );
                byte[] buffer = new byte[count];
                buffer = myEncoder.GetBytes(strFileName);

                UInt32 crc = HighBitMask;

                //ProcessBuffer( ref buffer, ref crc );
                for (int i = 0; i < count; i++)
                    crc = ((crc) >> 8) ^ CRCTable[(buffer[i]) ^ ((crc) & 0x000000FF)];

                crc = ~crc;
                LifetimeCRC ^= crc;

                return crc;
            }
        }
コード例 #58
0
 public void GetStringFromUnicodeArrayTest()
 {
     string expected = "Test!";
     System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding();
     var self = encoding.GetBytes(expected);
     var actual = self.GetStringFromArray(EncodingType.Unicode);
     Assert.AreEqual(expected, actual);
 }
コード例 #59
0
        /// <summary>
        /// Runs an instance of this job
        /// </summary>
        public void Execute(IJobExecutionContext context)
        {
            log.Debug(MethodBase.GetCurrentMethod().DeclaringType.Name + "." + MethodBase.GetCurrentMethod().Name + "()");

            // Pull up the job context
            JobKey key = context.JobDetail.Key;
            JobDataMap dataMap = context.JobDetail.JobDataMap;
            string XMLTaskJSON = dataMap.GetString("XMLTask");
            //log.Debug("Running with raw parameters: " + XMLTaskJSON);
            XMLTask _XMLTask = JsonConvert.DeserializeObject<XMLTask>(XMLTaskJSON);
            //log.Debug("Running with parsed parameters: \n" + _XMLTask.DebugDump());

            // Make sure the directory exists
            if (!Directory.Exists(_XMLTask.DestinationPath))
            {
                log.Error("Could not access " + _XMLTask.DestinationPath + "!  (Does the folder exist?)");
                return;
            }

            // Make sure the queue exists
            MessageQueue messageQueue = null;
            if (MessageQueue.Exists(_XMLTask.SourcePath))
            {
                messageQueue = new MessageQueue(_XMLTask.SourcePath);
                messageQueue.Formatter = new ActiveXMessageFormatter();  // This allows the direct export of XML from files
            }
            else
            {
                // DO NOT Create the Queue - Complain!
                //MessageQueue.Create(@".\Private$\SomeTestName");
                log.Error("Could not access " + _XMLTask.SourcePath + "!  (Does the queue exist? Do you have permissions to it?)");
                return;
            }

            // While there are any entries in the queue, pull them off and shove them onto the filesystem
            try
            {
                int iMessageCount = 0;
                string sMessageFilename = "";
                string sMessagePath = "";
                int iMessageLength = 0;
                byte[] bytes = new byte[MaxMessageSize];
                DateTime dt = DateTime.Now;
                messageQueue = new MessageQueue(_XMLTask.SourcePath);
                Message[] messages = messageQueue.GetAllMessages();
                Message toss = null;  // Used to delete individual messages

                if (messages.Length == 0)
                {
                    log.DebugFormat("Found no messages in {0}", _XMLTask.SourcePath);
                    return;
                }

                foreach (Message message in messages)
                {
                    log.DebugFormat("Attempting to post and then delete message #{0}...", message.Id);
                    // Try to post the message to an XML file
                    //sMessageCount = iMessageCount.ToString().PadLeft(4, '0');
                    //sMessageFilename = "msg-" + dt.ToString("yyyyMMdd-HHmmss-fff-") + sMessageCount + ".xml";
                    _XMLTask.PopulateName(dt, iMessageCount, message.Label);
                    sMessageFilename = _XMLTask.DestinationName;
                    sMessagePath = _XMLTask.DestinationPath + "\\" + sMessageFilename;
                    // Get the content
                    // sMessageContent = message.Label;
                    iMessageLength = Int32.Parse(message.BodyStream.Length.ToString());
                    if (iMessageLength > MaxMessageSize)
                    {
                        log.WarnFormat("Ignored (and did not post) too-long message {0}.", message.Id, sMessagePath);
                    }
                    else
                    {
                        //log.InfoFormat("Message.Id={0}", message.Id);        // e.g., 11b4ce53-f956-4397-8dc6-18bd9db255ed\2082
                        //log.InfoFormat("Message.Label={0}", message.Label);  // e.g., 6af137c4-a1fa-47d4-a675-98201ea3eaf0 or whatever the Folder2MSMQ process set as the label
                        // TODO: Figure out ASCII/Unicode thing
                        message.BodyStream.Read(bytes, 0, iMessageLength);
                        switch (_XMLTask.SourceEncoding)
                        {
                            case "ASCII":
                                System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
                                File.WriteAllText(sMessagePath, ascii.GetString(bytes, 0, iMessageLength));
                                log.InfoFormat("Posted message {0} to {1} (with ASCII) OK.", _XMLTask.SourcePath + "::" + message.Id, sMessagePath);
                                break;
                            case "Unicode":
                                System.Text.UnicodeEncoding unicode = new System.Text.UnicodeEncoding();
                                File.WriteAllText(sMessagePath, unicode.GetString(bytes, 0, iMessageLength));
                                log.InfoFormat("Posted message {0} to {1} (with Unicode) OK.", _XMLTask.SourcePath + "::" + message.Id, sMessagePath);
                                break;
                        }
                    }
                    toss = messageQueue.ReceiveById(message.Id);
                    log.DebugFormat("Removed message \"{0}\" (ID:{1}) OK.", message.Label, message.Id);
                    iMessageCount++;
                }
                // after all processing, delete all the messages
                //messageQueue.Purge();
                //log.DebugFormat("Purged {0} OK.", _XMLTask.SourcePath);

            }
            catch (Exception e)
            {
                log.Error("Could not work with folder or queue.");
                log.Debug("Exception details: " + e.ToString());
            }
        }