دوستان یه خواهشی داشتم
میشه یکی به من توضیح بده که اگه بخوام تو برنامه های console application فارسی بنویسم باید چه کار کنم
تو خود کد که میذارم بعد که اجرا می کنم یه سری کاراکتر میاره
یه توضیحی بدید که باید چی کار کنم
ممنون![]()
دوستان یه خواهشی داشتم
میشه یکی به من توضیح بده که اگه بخوام تو برنامه های console application فارسی بنویسم باید چه کار کنم
تو خود کد که میذارم بعد که اجرا می کنم یه سری کاراکتر میاره
یه توضیحی بدید که باید چی کار کنم
ممنون![]()
Last edited by rf.ariyapoor; 14-04-2008 at 10:53.
آقا هیچکس نیست اینجا جواب مارو بده
![]()
سلام.
دو API برای این کار وجود داره که باید از اونها استفاده کنین.
SetConsoleCP
SetConsoleOutputCP
که برای تغییر CodePage برنامه تون به کار میره.
مثلا از CodePage = 1256 استفاده کنین. (Arabic)
دوست عزیز میشه یه کم بیشتر توضیح بدی چون من اصلا با Api ها کار نکردم
اگه میشه یه بر نامه ساده که یه جمله فارسی رو چاپ کنه برام مثال میزنی
ممنون
خوب دوست من همونطوری که گفته شد شما باید از این توابع استفاده کنید که از توابع SDK هستند.
تابع اول رو با بررسی که در msdn انجام دادم برای شما توضیح میدم :
درحقیقت صفحه کد ورودی بکار رفته با کنسول را با فراخوانی پروسه ست میکند. SetConsoleCPتابع
یک برنامه کنسول بکار میبرد صفحه کد ورودی اش را تا ورودی کیبرد را به مقدار کاراکتر مطابق ترجمه کند.
تابع یک آرگومان داره و به این صورت به کار میره :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما wCodePageID در حقیقت شناسه ای از کدی است که باید ست شود .
هدر های مورد نیاز شما Wincon.hو Windows.h. هستند.
اگر تابع با موفقیت انجام شود مقداری غیر صفر بر میگرداند.
واقعیتش اینه که من زیاد کنسول کار نکردم و اینا رو هم از msdn ترجمه کردم امیدوارم مفید واقع بشه.
مرسی
مثلا واسه کد زیر
من باید چه تغییراتی بدم تا خروجی برنامم درست باشهکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
cpplover من وقتی windows.h و wincon.h رو include میکنم و تو main از تابع SetConsoleCP() استفاده میکنم موقع کامپایل حدود 82 تا error میده که وقتی error ها رو میبینم میره تو خود کد های header فایل های windows.h و wincon.h ارور میگیره
البته ورودی setconsoleCP() رو هم 1256 مذارم که someone تو چند پست قبل گفته بود که کد پیج arabic هست
ممنون میشم بازم راهنماییم کنید
دو نکته رو بگم
اگه از ویژوال 2005 استفاده کنی و پروژه کنسول درست کنی هدر هایی رو که گفتم رو میشناسه چون در ویژوال 6 بعضی از هدر ها قدیمی هستند.
به این آدرس رجیستری برو :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Nls\CodePage
احتمالا مقادیری که در این تابع باید قرار بدی اعدادی هستند که مقدار این زیر کلیدها رو تعیین میکنه . . .
چند تا رو تست کن.
من برنامه رو تو محیط visual stadio 2005 اجرا می کنمکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به مسیری که گفتی هم رفتم و یه سری از اون ها رو واسه setconsolecp() فرستادم اما بازم موقع کامپایل 82 خطا میگیره که وقتی خطا ها رو بررسی میکنم میره تو هدر فایل wincon و از اونجا مشکل میگیره
بازم ممنون میشم راهنماییم کنید
سلام. به نظر من فايل wincon.h وجود نداره .
من که این هدر رو در برنامه میارم مشکلی ایجاد نمیشه و 82 error هم نداره اما در ویژوال 6 دقیقا 82 error بوجود می اومد.به نظر من فايل wincon.h وجود نداره
در هر حال در وبلاگ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مطلبی تحت عنوان طراحی برنامه های فارسی در ++C وجود داره به این آدرس حتما رجوع کنید .امیدوارم نتیجه بگیرید.
موفق باشید.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)