نمایش نتایج 1 تا 2 از 2

نام تاپیک: فارسی و یونیکد !

  1. #1
    کاربر جدید
    تاریخ عضویت
    آذر 1385
    محل زندگی
    اهواز
    پست
    19

    Question فارسی و یونیکد !

    --------=

    با سلام خدمت اساتید گرامی

    فرض کنید من یک فایل متنی یونیکد با متن زیر دارم :

    نمونه

    حالا موقعی که فایل رو می خونم کاراکتر ه اول خونده میشه در حالی که متن من راست به چپ هست و باید ن رو اول بخونه!

    حالا باید چکار کنم؟ مشکل از نحوه ی خوندن فایل توسط برنامه ی منه یا اینکه همیشه همینجوری هست؟

    من اینجوری فایل رو خوندم
    FileReader = My.Computer.FileSystem.ReadAllText(File, System.Text.UnicodeEncoding.Unicode)

    برنامه ی من در واقع یک مبدل هست که باید یک فایل رو بخونه و هر کاراکتر رو به علائم خاصی تبدیل کنه. من برای مقایسه از دستور
    Asc
    در وی بی دات نت استفاده کردم.
    یعنی برای تک تک کاراکترها مقایسه انجام میشه

    اگه پیشنهاد بهتری در این مورد دارید بگید

    با تشکر
    --------=

  2. #2
    مثل نمونه زیر فایل متنی رو بخونی :
    Using sr As StreamReader = New StreamReader("C:\import\FILE\" & "Test.txt")
    Dim line AsString
    Do
    line = sr.ReadLine()
    strText &= line
    LoopUntil line IsNothing
    sr.Close()
    EndUsing


    در روش بالا خط به خط فایل شما خوانده شده و در متغییر strText ریخته میشود و بعد که به انتهای فایل رسید sr بسته میشود.
    این روش با یونیکد کاملا مطابقت دارد.

    برای مقایسه کاراکترها هم از ASC استفاده نکنید چون به مشکل بر میخورید. یونیکدها از استاندارد ANCI استفاده میکنند در حالی که Asc از سیستم کد اسکی که 256 حالت رو فقط دارد پشتیبانی میکند. دو راه دارید:
    1- استفاده از متد AscW به جای Asc .
    2- مقایسه مستقیم کاراکترها مانند زیر:
    IF strChar = 'g' Then
    strChar = 'ل'
    End IF

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •