PDA

View Full Version : سوال در مورد کد پیج ایران سیستم



mortaza94
جمعه 07 شهریور 1393, 21:49 عصر
با سلام

چطور میشه ریشته ای با کد پیج ویندوز رو با استفاده از C#‎‎‎‎‎‎ به کد پیج ایران سیستم داس تبدیل کرد؟



خواهشمندم در صورت مقدور بودن جواب بدهید خیلی لازمش دارم


ممنون

plus
جمعه 07 شهریور 1393, 23:06 عصر
کدپیج ویندوز، windows-1252 حروف لاتین رو شامل میشه و نه حروف فارسی رو. اگه منظورتون کدپیج Arabic-1256 هست، راه حلی که به نظر مشخص هست این هست که شما مقدار کد اسکی هر کاراکتر در ایران سیستم رو به معادلش در کدپیج Arabic تبدیل کنید.
یعنی اول با بررسی تک تک کاراکترهای دو کدپیج، یک تابع (متد) نگاشت یا Mapping بنویسی، و بعد با خوندن تک تک کاراکتر های رشته، نگاشت کل رشته رو انجام بدی.

محمد آشتیانی
جمعه 07 شهریور 1393, 23:25 عصر
سلام
ساده ترین راهش اینه که از dll موجود تو نرم افزار تهیه دیسکت تامین اجتماعی استفاده کنی (هم متد تبدیل ویندوز به ایران سیستم رو داره و هم برعکس)
روش استفاده هم اینه که dll رو توی Reference ها اضافه میکنی و نهایتا namespace مربوطه رو اضافه میکنی و به اینصورت تبدیل میکنی

using CONVERTLib;



Convertor cv = new Convertor();
MessageBox.Show(cv.WinToIran("سلام دنیا"));


اینم فایل dll
موفق باشید

mortaza94
شنبه 08 شهریور 1393, 18:43 عصر
سلام
خیلی ممنون از کمک شما اما وقتی این کامپوننت رو به رفرنس اضافه می کنم خطای زیر رو میده


122860

محمد آشتیانی
شنبه 08 شهریور 1393, 19:03 عصر
سلام
دوست عزیز من این مشکلو ندارم ، بدون هیچ خطایی اضافه میشه و کار میکنه

اینم یه پروژه نمونه

mortaza94
شنبه 08 شهریور 1393, 19:23 عصر
مهندس جان برنامه شما هم این خطا رو میده

البته ببخشید وقت شما رو می گیرم

122865

محمد آشتیانی
شنبه 08 شهریور 1393, 20:07 عصر
عجیبه
این نتیجه اجرا روی سیستم خودمه (Windows 7 64bit - VS 2010)
122867

شما فایل exe برنامه رو اجرا کن ، ببین اصلا اونی که برات فرستادم اجرا میشه یا نه (از ویژوال استودیو نه)

NASA's Spaceman
شنبه 08 شهریور 1393, 20:20 عصر
کد پیچ که میگین چی هست؟
میشه لطفا یه توضیح دربارش بدین
با سپاس Spaceman

mortaza94
شنبه 08 شهریور 1393, 20:22 عصر
نمیدونید مشکل چیه ؟
آیا می تونه از ویندوز 7 من باشه ؟
آیا راهی برای حل مشکل هست ؟

NASA's Spaceman
شنبه 08 شهریور 1393, 20:25 عصر
برا من هم همین ارور رو داد
مشکل از سیستم شما نیست
با سپاس Spaceman

mortaza94
شنبه 08 شهریور 1393, 20:30 عصر
به قول دوست عزیزمان H_Ghaffarian (http://barnamenevis.org/member.php?6969-H_Ghaffarian)





هر زبان تعدادی حروف مخصوص به خودش رو داره و البته ترتیبی خاص برای اونها. بنابراین باید از هم جدا بشن. مثلاً حروف الفبای فارسی ار عربی بیشتره(4 حرف). کدهای اسکی سابق 8 بیتی بودن و تنها 256 کد قابل استفاده بود و بنابراین برای هر زبان باید نیمه دوم این کد (بعد از کد 127) رو تغییر می دادن تا یک زبون غیر انگلیسی رو پشتیبانی کنه. این مشکل توسط کدهای unicode که 16 بیتی هستند و می تونند بیش از 65 هزار کد رو نگه دارند حل شد و دیگه نیازی نیست تا قسمتهایی از کد رو برای چند زبون همزمان مورد استفاده قرار داد. برای درک بهتر این موضوع بهتره یک سری به گزینه symbol در منوی insert در آفیس بندازی و مجموعه نمادهای یک فونت خاص مثل arial رو نگاه کنی.

mortaza94
شنبه 08 شهریور 1393, 20:32 عصر
اگه وقت خوندن هم داری به این سایت برو
http://www.webtarget.ir/blog/%D9%87%D9%85%D9%87-%DA%86%D9%8A%D8%B2-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-unicode-utf8

mortaza94
شنبه 08 شهریور 1393, 20:35 عصر
مهندسین عزیز برای این خطای ما یه فکری بکنید

Retrieving the COM class factory for component with CLSID {5E033C5F-3AC5-48EC-80C6-EF4024E0B6C0} failed due to the following error: 80040154.

mortaza94
شنبه 08 شهریور 1393, 21:46 عصر
مشکل حل شد مهندس <br>از Convert.dllداخل پوشه tamin خود نرم افزار تامین اجتماعی استفاده کردم حل شد <br><br><br>خیلی ممنون از راهنمایی شما

محمد آشتیانی
شنبه 08 شهریور 1393, 21:48 عصر
خداروشکر
احتمالا موقع نصب اون dll رو رجیستر میکنه ، باید دید دقیقا چکار میکنه تا رو سیستم مشتری هم انجام بشه

mortaza94
دوشنبه 10 شهریور 1393, 12:01 عصر
مهندس چطور میشه این کامپوننت رو ریجستر کرد ؟

ووقتی برنامه ListDisk-V2.7 رو پاک می کنم دیگه کامپونت کار نمیکنه

mortaza94
دوشنبه 10 شهریور 1393, 12:32 عصر
دیگه مشکل کامل حل شد

برای حل ریجستر هم کافی هست فایل Convert.dll رو به پوشه system32 کپی کنی

و سپس run as an administrator برنامه CMD رو باز کنی و دستور زیر رو بنویسی و تمام

regsvr32 convert.dll

shahrzad87
شنبه 17 مرداد 1394, 13:07 عصر
سلام
من پروژه را دانلود کردم و برنامه و همچنین exe را اجرا میکنم خطایی که در پست ها گفته شده را میدهد، از cmd هم دستور بالا را اجرا میکنم خطا دارد. من میخواهم یونیکد را به ایران سیستم تبدیل و در فایل .dbf اضافه کنم.
dll تامین اجتماعی را وقتی می خواهم در پروژه اضافه کنم خطایی که گفته شده را میدهد که به فایل دسترسی نیست.
در رجیستر این خطا را میدهد.
134023

برای این تبدیل هم این لینک (http://beyamooz.com/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA-net/1079-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%A8%D9%87-%D8%AF%D8%A7%D8%B3-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85) رو دیدم، اما بعد از تبدیل، یک رشته از بایت میده، چطور باید List<byte> در فایل نوشته بشه؟