PDA

View Full Version : کد #C برای تبدیل ایران سیستم به یونیکد



afagh12
دوشنبه 12 آذر 1386, 11:11 صبح
من به کد #C برای تبدیل ایران سیستم به یونیکد نیاز دارم.
اگر کسی بتونه بهم کمک کنه ممنون میشم.:عصبانی++:

hassan razavi
دوشنبه 12 آذر 1386, 11:53 صبح
من روی Encoding.Convert مدتی روی این قضیه کار کردم ولی به نتیجه ای نرسیدم. من و یکی از دوستان عزیز همین فروم مدتی درگیر همین مسئله بودیم و متاسفانه به نتیجه نرسیدیم ولی همچنان دنبال راه حلش هستیم. مشکل اینجاست که :
http://barnamenevis.org/forum/showthread.php?t=85861

SabaSabouhi
دوشنبه 12 آذر 1386, 13:16 عصر
با سلام
این کد رو قبلاً تو انجمن VB فرستاده بودم، اگه جستجو مى‌کردى پیداش مى‌کردى.
این رو آزمایش کن گمان کنم مشکلت رو حل کنه.

صبا صبوحى

پانوشت: به دلیل تکرارى بودن انجمن اجازه‌ى Upload به من نداد.
http://barnamenevis.org/forum/showthread.php?t=83777

hassan razavi
دوشنبه 12 آذر 1386, 14:40 عصر
مشکل ما اینه که وقتی داده رو استخراج میکنیم ، کدهاش عوض میشه و با کدهای ایران سیستم فرق میکنه. مثالش هم زدم در لینک قبلی

SabaSabouhi
سه شنبه 13 آذر 1386, 08:54 صبح
با سلام
براى یک پروژه لازم بود اطلاعات از Fox به SQL منتقل بشه، براى انجام این کار به این شکل عمل کردیم:
1. یه DB توى SQL به صورت موقتى ساختیم
2. نفر FoxPro کار تمام جدول‌ها رو به صورت Text ( با گزارش‌گیرى ) به ما تحویل داد
3. تو SQL متناظر جدول‌هاى Fox جدول‌هایى ساختیم.
4. یه برنامه نوشتم ( با استفاده از همین کدى که فرستادم ) که به ازاى هر فایل Text، فیلدها رو شناسایى مى‌کرد و سطر به سطر به جدول SQL اضافه مى‌کرد و عمل تبدیل ایران‌سیستم به ویندوز رو هم در سطح یک فیلد انجام مى‌دادم.
5. در اینجا اطلاعات براى انجام بقیه‌ى کارها آماده هست.

صبا صبوحى

hassan razavi
سه شنبه 13 آذر 1386, 09:16 صبح
ممنون صباحی جان از پاسختون ولی مشکل ما اینه که میخواهیم مستقیم به جدول فاکس پرو وصل بشیم. و اینکار باعث میشه که کد اسکی تک تک حروف عوض بشه .

hassan razavi
سه شنبه 13 آذر 1386, 14:18 عصر
یه نمونه برنامه از دوست عزیزم مهدی گذاشتم تا دقیقتر متوجه بشید. با کلیلک بر روی هر فیلد کد اسکی تک تک فیلدها رو برمیگردونه.
مقدار اولین فیلد 82520008 هست که اصلا یه چیز دیگه برمیردونه

SabaSabouhi
سه شنبه 13 آذر 1386, 14:55 عصر
با سلام
مطمئن نیستم! اما گمان مى‌کن ADO.NET هنگام خوندن اطلاعات میاد یه لطفى به شما بکنه و خودش کاراکترهاى بالاى 127 رو به UniCode تبدیل مى‌کنه. دلیل من هم اینه که درست پس از پر کردن جدول بدون واسطه‌ى DataGridView مقادیر رو دیدم، و این تفاوتى که شما گفتین اونجا هم وجود داشت. همونطور که مى‌دونى UniCode از دو بایت تشکیل مى‌شه که بایت اول کد مربوط به زبان و کد دوم کاراکتر مورد نظر هست. به همین دلیل هست که مقادیرى مثل 1609 رو مى‌بینیم. در حالى که کاراکترهاى واقعى بین 32 تا 255 هستن.
یا باید یه راهى پیدا کنى که ADO.Net زحمت تبدیل این کدینگ رو نکشه و یا این که مجبور هستى از روش دیگه‌اى ( مثل کارى که من کردم ) استفاده کنى.

صبا صبوحى

پانوشت: اگه قرار نیست سیستم Fox به حیاتش ادامه بده و دارى اطلاعات رو به Windows و SQLServer منتقل مى‌کنى. پیش‌نهاد مى‌کنم که دنبال Connect کردن به Fox نباشى.

hassan razavi
سه شنبه 13 آذر 1386, 15:28 عصر
اگه میدونستم که چه کدینگی رو به چه کدینگی تبدیل میکنه ، میشد با Text.Encoding برگردوند اونو . ولی هرچی رو تست میکنم فایده ای نداره.

SabaSabouhi
چهارشنبه 14 آذر 1386, 11:01 صبح
اگه میدونستم که چه کدینگی رو به چه کدینگی تبدیل میکنه ، میشد با Text.Encoding برگردوند اونو . ولی هرچی رو تست میکنم فایده ای نداره.

با سلام
این Encoding.ASCII که تو برنامه‌ى شما دیدم 7 بیتى هست. یعنى از 32 تا 127 و با توجه به این که کاراکترهاى ایران‌سیستم بالاى 127 هستن به درد نمى‌خوره.
چرا پیش‌نهاد من رو آزمایش نمى‌کنى؟ گمان کنم مشکلت رو حل کنه.

صبا صبوحى

hassan razavi
چهارشنبه 14 آذر 1386, 11:12 صبح
راه حل شما (تبدیل به فایل متنی) رو قبول دارم ولی :

1- باید راه حلی داشته باشه که بشه از Dataset اطلاعات رو برگردوند.
2- مشکل ما اینه که اطلاعات رو بعد از تبدیل از Dos به ویندوز ، باید دوباره به Dos تبدیل بشه
3- نمی خواهیم که محدود به یک جدول باشم و فقط یه برنامه برای تبدیل آن جدول فاکس به فایل متنی داشته باشیم.
4- وابسته به یک نفر فاکس کار می شویم

SabaSabouhi
چهارشنبه 14 آذر 1386, 16:46 عصر
راه حل شما (تبدیل به فایل متنی) رو قبول دارم ولی :

1- باید راه حلی داشته باشه که بشه از Dataset اطلاعات رو برگردوند.
2- مشکل ما اینه که اطلاعات رو بعد از تبدیل از Dos به ویندوز ، باید دوباره به Dos تبدیل بشه
3- نمی خواهیم که محدود به یک جدول باشم و فقط یه برنامه برای تبدیل آن جدول فاکس به فایل متنی داشته باشیم.
4- وابسته به یک نفر فاکس کار می شویم

با سلام
حدود 2-3 سال پیش براى یک کار مشابه همین تایعى که فرستادم ( تو انجمن VB ) رو تبدیل به Fox کردیم ( خودم بلد نیستم، اما یه Fox کار نشست کناردستم و خط به خط ترجمه کردیم) نتیجه این بود که تو فاکس مى‌شد اطلاعات رو Convert کرد، اگه فاکس کار سراغ دارین این کار هم شایدجواب بده ( اگه سراغ ندارین من یه نفر سراغ دارم ).
البته دردسر داره و برنامه‌نویسى فاکس هم لازمتون مى‌شه.
راستى چرا برنامه‌تون رو به Windows منتقل نمى‌کنید؟

صبا صبوحى

hassan razavi
چهارشنبه 14 آذر 1386, 19:40 عصر
چون باید اطلاعات هر روز از ویندوز به همون بانک فاکس ریخته بشه تا بتونند تحت Dos هم کار کنند.