Ignore:
Timestamp:
Jul 6, 2010, 8:09:10 AM (14 years ago)
Author:
Sam Habiel
Message:

Support for other encodings besides ASCII. Constructors available in BMXNetLib and and BMXNetConnectInfo.
Comments in several files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BMXNET_RPMS_dotNET_UTILITIES-BMX/trunk/cs/bmx_0200scr/BMX2/BMXNet/BMXNetLib.cs

    r818 r822  
    2121        public class BMXNetLib
    2222        {
    23                 public BMXNetLib()
     23                /// <summary>
     24                /// Main constructor with default machine encoding
     25                /// </summary>
     26        public BMXNetLib()
    2427                {
    2528                        m_sWKID = "BMX";
     
    3033
    3134                }
     35
     36        /// <summary>
     37        /// Constructor specifiying encoding
     38        /// </summary>
     39        /// <param name="charset">String name of character set</param>
     40        public BMXNetLib(string charset) : this()
     41        {
     42           
     43            //char[] arabic_nm_ch = arabic_name.ToCharArray();
     44            //byte[] arabic_nm_by = cp1256.GetBytes(arabic_nm_ch);
     45            //string arabic_name2 = "";
     46            //foreach (byte eachbyte in arabic_nm_by)
     47            //{
     48            //    arabic_name2 += ((char)eachbyte);
     49            //}
     50           
     51            try
     52            {
     53                m_Encoding = System.Text.Encoding.GetEncoding(charset);
     54            }
     55            catch (ArgumentException)
     56            {
     57                Debug.Write("Invalid Code Page... Falling back to default system encoding");
     58                m_Encoding = Encoding.GetEncoding(0);
     59            }
     60        }
    3261               
    3362                #region Piece Functions
     
    139168                private string          m_sNameSpace = "";
    140169        private int         m_nReceiveTimeout = 30000;
     170
     171        private Encoding m_Encoding = Encoding.GetEncoding(0);
    141172
    142173                #endregion RPX Fields
     
    802833
    803834                        NetworkStream ns = tcpClient.GetStream();
    804                         byte[] sendBytes = Encoding.ASCII.GetBytes(cSendString);
     835                        byte[] sendBytes = m_Encoding.GetBytes(cSendString);
    805836                        ns.Write(sendBytes,0,sendBytes.Length);
    806837            if (this.m_bLogging == true)
     
    852883                        do
    853884                        {
    854 
    855885                                numberOfBytesRead = ns.Read(bReadBuffer, 0, bReadBuffer.Length);
    856886                                if ((numberOfBytesRead == 1)&&(bStarted == false))
     
    869899                                                lpBuf += 2;
    870900                                        }
    871                                         sError = Encoding.ASCII.GetString(bReadBuffer, lpBuf + 1, nErrLen);
     901                                        sError = m_Encoding.GetString(bReadBuffer, lpBuf + 1, nErrLen);
    872902                                        if (sError != "")
    873903                                        {
    874904                                                throw new BMXNetException(sError);
    875905                                        }
    876                                         sAppError = Encoding.ASCII.GetString(bReadBuffer, lpBuf+1+nErrLen+1, nAppLen);
     906                                        sAppError = m_Encoding.GetString(bReadBuffer, lpBuf+1+nErrLen+1, nAppLen);
    877907                                        lpBuf += (nErrLen + nAppLen + 2);
    878908                                        numberOfBytesRead -= (nErrLen + nAppLen + 2);
     
    884914                                        bFinished = true;
    885915                                Debug.Assert(numberOfBytesRead > -1);
    886                                 sReadBuffer = Encoding.ASCII.GetString(bReadBuffer, lpBuf, numberOfBytesRead);
     916                                sReadBuffer = m_Encoding.GetString(bReadBuffer, lpBuf, numberOfBytesRead);
    887917                                lpBuf = 0;
    888918                                if (nFind > -1)
     
    13151345                }
    13161346
     1347        /// <summary>
     1348        /// Gets or Sets the Default Encoder to use
     1349        /// </summary>
     1350        public Encoding Encoder
     1351        {
     1352            get
     1353            {
     1354                return this.m_Encoding;
     1355            }
     1356            set
     1357            {
     1358                this.m_Encoding = Encoder;
     1359            }
     1360        }
     1361
    13171362                #endregion RPX Properties
    13181363
Note: See TracChangeset for help on using the changeset viewer.