Code Monkey home page Code Monkey logo

iransystemconvertor's Introduction

IRANSYSTEM Convertor

Purpose

This class converts a string containing IRANSYSTEM characters into a unicode string. Note that this just converts alphanumeric characters and ignores the rest.

Usage

using IranSystemConvertor;
.
.
.

string iranSystemStr = "an IRANSYSTEM string"

string unicodeStr = ConvertTo.UnicodeFrom(TextEncoding.Arabic1256, iranSystemStr); 

Dependencies

No dependency

iransystemconvertor's People

Contributors

mohsen-d avatar vahidn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

iransystemconvertor's Issues

Teststack.white->not able get window properties while using process.start to launch the application.

My code is here Please correct me where i am wrong.

when i use "Application application =Application.Launch(@"C:\Program Files (x86)\app.exe");

the application is crashing.

so i used process.start option to launch application.
but could not capture window properties.
...............................................................................
namespace Automation
{
public class Program
{
public static void Main(string[] args)
{

   try
        {

            var psi = new Process
            {
                StartInfo =
                {

                    WorkingDirectory = @"C:\Program Files (x86)\",
                    FileName = @"app.exe",

                }

            };
            psi.Start();
            Thread.Sleep(2000);



            var x = Process.GetProcessesByName("app")[0].Id;


            Application application = Application.Attach(x);

            Thread.Sleep(8000);

Window window = application.GetWindow("app");

            var patName = window.Get<TestStack.White.UIItems.Button>(SearchCriteria.ByAutomationId("Close"));
           patName.Click();




        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }



    }
}

}

رشته ترکیبی از عدد و حروف انگلیسی

سلام
رشته ترکیبی از عدد و حروف انگلیسی در تبدیل برعکس میشه، مثلا وقتی دارم
Rb0027
بعد از تبدیل میشه
0027bR .
من اومدم قبل از تبدیل برعکسش کردم که درست بشه ورودی بهش
0027bR
دادم و بعد از تبدیل همون
Rb0027
که میخواستم رو تو سایت بیمه نمایش داد.

New Issue.

Hi,
This is an awesome library.But unfortunately there are some problem with it.
See this one:

Assert.AreEqual("کلاف", ConvertTo.Unicode(" éٍî").Trim());

Windows 10

درود بر شما و با تشکر از زحماتتون
نمی دونم مربوط به ویندوز 10 می شه یا ...
ولی تمام کاراکترها به "؟" تبدیل می شن
من فایل خروجی تامین اجتماعی رو با کانورتور شما خوندم و سعی کردم با استفاده از این مبدل داده ها رو از ایران سیستم به یونیکد تبدیل کنم. ولی تمام کاراکترهای حروف ( نه اعداد) به "؟" تبدیل می شن
با چندین کد پیج مختلف هم امتحان کردم
پیروز باشید

character خ

سلام
با کاراکتر خ در انتهای کلمه مشکل داره و درست تبدیل نمیکنه مثلا کلمه ماهرخ نهایتا میشه ماهر
من کلاس رو تریس کردم خود کانورتور مشکلی نداشت اما به این خط که میرسید مثل اینکه کاراکتر رو حذف میکرد
var iranSystemText = _encoding1256.GetString(iranSystemBytes.ToArray()).Trim();
به نظر میرسید خود متد
getstring
این مشکل رو بوجود می اورد
مثلا برای ماهرخ که 5 کاراکتره میشده 4 کاراکتر

مشکل در حرف ؤ در میان کلمه

سلام
خسته نباشید
این کد در حالاتی که حرف ؤ در میان کلمه ای باشه مشکله داره. برای مثال کلمه مؤمن رو به مئمن تبدیل میکنه

تبدیل رشته دارای کاراکتر فارسی، انگلیسی ، اعداد و کاراکتر ویژه

سلام،
من یه رشته فارسی به نام "کتاب آموزشی Visual C# 2005 + سی دی" دارم که موقع تبدیل از ایران سیستم به یونیکد باید این رشته رو برام برگردونه ، رشته ایران سیستم به این صورته "î—‘’چُّ¥ھü…€€‚#ClausiV+¨ü¢‎ " اما توی متد IncludeNumbers خطا میده ( خطای {"Stack empty."} ) و درست عمل نمیکنه

درصورتی که فیلدی شامل حروف و عدد باشه اعداد برعکس میخوره

درصورتی که فیلدی شامل حروف و عدد باشه اعداد برعکس میخوره

مثلا خروجی باید:
"سعید سالاری 09122222120" باشه
به این شکله "سعید سالاری 02122222190" که اشتباهه.

که من متد UnicodeFrom شما را به شکل زیر تغییر دادم:
///

    /// تبدیل یک رشته ایران سیستم به یونیکد
    /// </summary>


    /// <param name="iranSystemEncodedString">رشته ایران سیستم</param>
    /// <returns></returns>
    public static string UnicodeFrom(TextEncoding textEncoding, string iranSystemEncodedString)
    {
        // وهله سازی از انکودینگ صحیح برای تبدیل رشته ایران سیستم به بایت
        Encoding encoding = Encoding.GetEncoding((int)textEncoding);
        // حذف فاصله های موجود در رشته
        iranSystemEncodedString = iranSystemEncodedString.Replace(" ", "");
        if (iranSystemEncodedString.Length <= 0)
            return "";
        // تبدیل رشته به بایت
        byte[] stringBytes = encoding.GetBytes(iranSystemEncodedString.Trim());

        // تغییر ترتیب بایت هااز آخر به اول در صورتی که رشته تماماً عدد نباشد
        if (!IsNumber(iranSystemEncodedString))
        {
            stringBytes = stringBytes.Reverse().ToArray();
        }

        // آرایه ای که بایت های معادل را در آن قرار می دهیم
        // مجموع تعداد بایت های رشته + بایت های اضافی محاسبه شده
        byte[] newStringBytes = new byte[stringBytes.Length + CountCharactersRequireTwoBytes(stringBytes)];

        int index = 0;

        // بررسی هر بایت و پیدا کردن بایت (های) معادل آن
        for (int i = 0; i < stringBytes.Length; ++i)
        {
            byte charByte = stringBytes[i];

            // اگر جز 128 بایت اول باشد که نیازی به تبدیل ندارد چون کد اسکی است
            if (charByte < 128)
            {
                newStringBytes[index] = charByte;
            }
            else
            {
                // اگر جز حروف یا اعداد بود معادلش رو قرار می دیم
                if (CharactersMapper.ContainsKey(charByte))
                {
                    newStringBytes[index] = CharactersMapper[charByte];
                }
            }

            // اگر کاراکتر ایران سیستم "لا" بود چون کاراکتر متناظرش در عربی 1256 "ل" است و باید یک "ا" هم بعدش اضافه کنیم
            if (charByte == 242)
            {
                newStringBytes[++index] = 199;
            }

            // اگر کاراکتر یکی از انواعی بود که بعدشان باید یک فاصله باشد
            // و در عین حال آخرین کاراکتر رشته نبود
            if (charactersWithSpaceAfter.Contains(charByte) && Array.IndexOf(stringBytes, charByte) != stringBytes.Length - 1)
            {
                // یک فاصله بعد ان اضافه می کنیم
                newStringBytes[++index] = 32;
            }

            index += 1;
        }

        // تبدیل به رشته و ارسال به فراخواننده
        byte[] unicodeContent = Encoding.Convert(encoding, Encoding.Unicode, newStringBytes);

        string result = Encoding.Unicode.GetString(unicodeContent).Trim();
        result = result.Replace("ڑ", "ء").Replace("ؤ", "ئ");

        //در صورتی که عدد داخل رشته نیست نیاز به ادامه کار نمی باشد
        if (!Regex.IsMatch(result, @"\d"))
            return result;

        bool isLastDigit = false;
        string tempForDigits = "";
        string str="";
        for (int i = 0; i < result.Length; i++)
        {
            if (Regex.IsMatch(result[i].ToString(), @"\d") || (i+1<result.Length && Regex.IsMatch(result[i].ToString() + result[i+1].ToString(), @"/\d")))
            {
                isLastDigit = true;
                tempForDigits += result[i];
            }
            else
            {
                if (isLastDigit && tempForDigits.Length > 0)
                {
                    str += new string(tempForDigits.Reverse().ToArray());
                    isLastDigit = false;
                    tempForDigits = "";
                }
                 str += result[i];
            }
            if (!String.IsNullOrWhiteSpace(tempForDigits) && i == result.Length - 1)
            {
                str += new string(tempForDigits.Reverse().ToArray());
            }
        }
        return str;
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.