PDA

View Full Version : مثال برای یونیکد



reza_z
چهارشنبه 17 آبان 1385, 11:11 صبح
سلام
اگه میشه یه مثال ساده که بتونه کد اسکی بگیره و فارسی چاپ کنه با استفاده از یونیکد در VC++.NET
با تشکر

sh_roohani
چهارشنبه 17 آبان 1385, 13:15 عصر
سلام،

ببخشید، کد اسکی بگیره؟ و فارسی چاپ کنه؟ با استفاده از یونیکد؟ می شه منظورتونو دقیقتر بفرمایین؟

reza_z
چهارشنبه 17 آبان 1385, 13:23 عصر
یعنی بتونم بازدن مثلا کلید v در consol حرف "ر" چاپ کند بدون نصب vegaf یا هر فارسی ساز دیگه

sh_roohani
چهارشنبه 17 آبان 1385, 16:51 عصر
سلام،

ببخشید من خودم اینو تست نکردم، ولی حدس می زنم که تابع
WriteConsoleOutputCharacter مشکل شما رو حل کنه. البته با ملزومات قبلش، مثل باز کردن کنسول و ...
لطفا اینو توی MSDN چک کنید.

reza_z
پنج شنبه 18 آبان 1385, 12:02 عصر
من نتونستم اگه شما راه دیگه دارید یا چیزی به ذهن کسی میرسه لطفا کمک کنید

powerboy2988
پنج شنبه 18 آبان 1385, 12:08 عصر
man farsi saze windowam kharab shode plz in goftegoro pak nakonid

shoma vasey in rahehalet bayad az switch() estefade koni shoma ba estefade az tabeye getch() mitoni on clidi ke az keyboard feshar dade mishe ro bekhoni albate shoma ye motegayer az noe int tarif mikoni va getch() ro mosavie on motegayeret mikoni.
--------------------
in ye mesal az khondan arrow keys hastesh


#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <dos.h>
#include <stdio.h>


#define Port 0x378
#define up 72
#define down 80
#define left 75
#define right 77

main()
{
int ch;
clrscr();
do{
ch=getch();
;
switch(ch)
{
//UP
case 72 :
{
outport(Port,0x1);
printf("UP pressed %d\n",ch);
break;
}
//down
case 80 :
{
outport(Port,0x2);
printf("DOWN pressed %d\n",ch);
break;
}
//left
case 75 :
{
outport(Port,0x4);
printf("LEFT pressed %d\n",ch);
break;
}
//right
case 77 :
{
outport(Port,0x8);
printf("RIGHT pressed %d\n",ch);
break;
}
} // switch

}while (!(ch=='*'));

getch();
return 0;
}

sh_roohani
پنج شنبه 18 آبان 1385, 12:19 عصر
سلام،
ببخشید من فکر می کنم ایشون منظورشون کنسول Win32 باشه، یه برنامه کنسولی 32 بیتی. اگه اینطوری باشه دیگه فکر نکنم outport کار کنه.

powerboy2988
پنج شنبه 18 آبان 1385, 12:21 عصر
ok rast migin to win 32 fek konam dastoresh port() bashe
baray inke motmaeein she mitone barnamey SDK ro bebine ke kheyli khobe

sh_roohani
پنج شنبه 18 آبان 1385, 13:48 عصر
آقا دوباره سلام،
من توی MSDN چک کردم، تابعی به نام port نداشتیم. ولی فکر می کنم روش کار کردن با کنسول همون استفاده از Console API ویندوزه که قبلا عرض کردم. توابعش هم همه Unicode-aware هستن. فقط نمی دونم شاید باید فونت کنسول رو هم عوض کرد که بتونه کاراکترهای یونیکدی رو نشون بده. البته نمی دونم می شه اینکار رو کرد یا نه. من نتونستم توی توابع کنسول بخش Character-mode applications از MSDN واسه تغییر فونت کنسول چیزی پیدا کنم. فقط واسه تغییر اندازه بود که اینکار رو هم می شه با درست کردن یه Shortcut به برنامه کنسولی و از طریق properties بدون کد نوشتن انجام داد.

powerboy2988
پنج شنبه 18 آبان 1385, 14:01 عصر
barnamey SDK ro bebinid hatman javabetono mide

reza_z
شنبه 20 آبان 1385, 07:39 صبح
از SDK هم جواب نگرفتم

reza_z
یک شنبه 21 آبان 1385, 10:36 صبح
فکر کنم با عوض کردن یونیکد مشکل حل بشه حالا با چه دستوری یونیکد عوض کنم ؟؟؟

reza_z
دوشنبه 22 آبان 1385, 12:34 عصر
کسی نمیخواد کمکم کنه ؟

sh_roohani
دوشنبه 22 آبان 1385, 12:44 عصر
سلام،
منظورتون از عوض کردن یونیکد چیه؟

reza_z
دوشنبه 22 آبان 1385, 13:20 عصر
اصلا چطوری میتونم تو کنسول فارسی بنویسیم ؟؟

sh_roohani
دوشنبه 22 آبان 1385, 16:18 عصر
عزیز دل برادر،

مسئله اینه که من اصلا نمی دونم اینکار شدنیه یا نه. فقط چون اون توابع unicode-aware بودن حدس زدم شاید بشه با اونا فارسی نوشت (در صورتی که فونت یونیکدی مناسب واسه کنسول بشه انتخاب کرد). حدسم هم که ظاهرا به در خودم می خورد و بس!