PDA

View Full Version : مبتدی: لود کردن فونت داخل یک برنامه به زبان c (کمک)



hamede900
چهارشنبه 16 تیر 1389, 12:56 عصر
سلام
بدون مقدمه ، من یک فونت با برنامه فونت ادیت تحت برنامه turbo c طراحی کردم .
و حالا میخوام این فونت رو در یک برنامه به زبان c لود کنم به صورتی که مثلا در این برنامه وقتی کلید H را میزنم حرف آ به نمایش در بیاید .لازم به ذکر است که حرف آ با کد اسکی -0- طراحی شده است .
متاًسفانه اینجانب دانشجوی ترم پایانی کامپیوترم ولی در برنامه نویسی هیچی بارم نیست.
من فقط میدانم که باید از دستور case استفاده کنم ولی چگونه ، نمیدانم !
پیشاپیش از راهنمایی شما ممنونم.

tdkhakpur
چهارشنبه 16 تیر 1389, 22:19 عصر
خب اگر کلبد مورد نظر را که فشار میدید داخل ch قرار داشته باشید به این سورت اعمال را سویچ کنید.


switch(ch)
{
caser 'H':
ch = 'آ';
break;
caser 'h':
ch = 'ا';
break;
}

به همین ترتیب برای کلیدهای دیگر باید case قرار بدید.

hamede900
چهارشنبه 16 تیر 1389, 23:49 عصر
خیلی ببخشید ، یه سوال ابلهانه :
1-من متوجه نشدم چگونه فونتی که سیو کردم رو لود کنم .
2-در خط آ = ch ، چگونه باید از کد اسکی که خودم فونت رو طراحی کردم استفاده کنم
مثلاً بجای کاراکتر H از کد اسکی 0 استفاده شود .
از خنگی اینجانب پیشاپیش عذر خواهی میشود

tdkhakpur
پنج شنبه 17 تیر 1389, 23:49 عصر
من متوجه نشدم چگونه فونتی که سیو کردم رو لود کنم

خب این به نحوه ذخیره سازی شما ارتباط دارد به همین شکل که نمی توان در مورد بازیابی فونت نظر داد.
به هر صورت به همان شکل که داخل فایل برده اید داخل ram بیارید و اگر bitmap های فونت شما مانند استاندارد کنسول باشد میتوانید مانند مثال زیر عمل کنید . برنامه زیر فونت موجود در Font را داخل سیستم لود میکند.



char Font [128 * 16] =
{
0, 0, 0, 0, 0, 0, 48, 72, 72, 48, 0, 0, 0, 0, 0, 0, // 128
0, 0, 0, 32, 112, 112, 56, 24, 24, 8, 8, 8, 0, 0, 0, 0, // 129
0, 0, 0, 68, 252, 248, 96, 48, 48, 16, 16, 16, 0, 0, 0, 0, // 130
0, 0, 0, 74, 254, 244, 96, 48, 48, 16, 16, 16, 0, 0, 0, 0, // 131
0, 0, 0, 78, 240, 254, 124, 48, 48, 16, 16, 16, 0, 0, 0, 0, // 132
0, 0, 0, 48, 56, 44, 68, 66, 130, 146, 254, 108, 0, 0, 0, 0, // 133
0, 0, 0, 128, 248, 120, 8, 8, 8, 12, 14, 6, 0, 0, 0, 0, // 134
0, 0, 0, 130, 198, 198, 108, 40, 56, 16, 16, 16, 0, 0, 0, 0, // 135
0, 0, 0, 16, 16, 16, 56, 40, 108, 198, 198, 130, 0, 0, 0, 0, // 136
0, 0, 0, 112, 248, 136, 248, 120, 8, 12, 14, 6, 0, 0, 0, 0, // 137
0, 0, 0, 0, 0, 0, 12, 24, 24, 24, 0, 0, 0, 0, 0, 0, // 138
0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, // 139
0, 0, 0, 60, 66, 64, 96, 16, 12, 12, 0, 12, 12, 0, 0, 0, // 140
0, 0, 62, 126, 64, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, // 141
0, 0, 6, 14, 24, 30, 24, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 142
0, 0, 0, 0, 12, 28, 50, 48, 12, 48, 4, 24, 0, 0, 0, 0, // 143
0, 0, 24, 28, 28, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, // 144
0, 0, 12, 12, 12, 12, 12, 12, 14, 7, 3, 0, 0, 0, 0, 0, // 145
0, 0, 0, 0, 0, 0, 96, 195, 195, 255, 126, 0, 24, 24, 0, 0, // 146
0, 0, 0, 0, 0, 0, 0, 3, 3, 255, 254, 0, 48, 48, 0, 0, // 147
0, 0, 0, 0, 0, 0, 96, 195, 195, 255, 126, 0, 108, 56, 16, 0, // 148
0, 0, 0, 0, 0, 0, 0, 3, 3, 255, 254, 0, 108, 56, 16, 0, // 149
0, 0, 0, 54, 54, 0, 96, 195, 195, 255, 126, 0, 0, 0, 0, 0, // 150
0, 0, 0, 54, 54, 0, 0, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 151
0, 0, 8, 28, 54, 0, 96, 195, 195, 255, 126, 0, 0, 0, 0, 0, // 152
0, 0, 8, 28, 54, 0, 0, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 153
0, 0, 0, 0, 24, 60, 102, 3, 63, 127, 192, 204, 193, 127, 62, 0, // 154
0, 0, 0, 0, 0, 12, 30, 51, 1, 255, 254, 0, 24, 24, 0, 0, // 155
0, 0, 0, 0, 24, 60, 102, 3, 63, 126, 192, 182, 220, 201, 127, 62, // 156
0, 0, 0, 0, 0, 12, 30, 51, 1, 255, 254, 0, 108, 56, 16, 0, // 157
0, 0, 0, 0, 24, 60, 102, 3, 63, 126, 192, 192, 192, 193, 127, 62, // 158
0, 0, 0, 0, 0, 12, 30, 51, 1, 255, 254, 0, 0, 0, 0, 0, // 159
0, 24, 24, 0, 24, 60, 102, 3, 63, 126, 192, 192, 192, 193, 127, 62, // 160
0, 0, 24, 24, 0, 12, 30, 51, 1, 255, 254, 0, 0, 0, 0, 0, // 161
0, 0, 0, 0, 4, 6, 3, 1, 49, 63, 30, 0, 0, 0, 0, 0, // 162
0, 0, 48, 48, 4, 6, 3, 1, 49, 63, 30, 0, 0, 0, 0, 0, // 163
0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 54, 60, 24, 0, // 164
0, 0, 0, 6, 6, 0, 0, 0, 3, 3, 3, 3, 38, 60, 28, 0, // 165
0, 0, 4, 14, 27, 0, 0, 0, 3, 3, 3, 3, 102, 60, 24, 0, // 166
0, 0, 0, 0, 0, 0, 0, 21, 21, 223, 220, 204, 204, 252, 120, 0, // 167
0, 0, 0, 0, 0, 0, 0, 37, 45, 255, 214, 0, 0, 0, 0, 0, // 168
0, 4, 14, 27, 0, 0, 0, 21, 21, 223, 204, 198, 198, 252, 120, 0, // 169
0, 4, 14, 27, 0, 0, 0, 37, 45, 255, 210, 0, 0, 0, 0, 0, // 170
0, 0, 0, 0, 0, 2, 7, 13, 41, 159, 200, 198, 198, 252, 120, 0, // 171
0, 0, 0, 0, 0, 6, 15, 41, 49, 255, 254, 0, 0, 0, 0, 0, // 172
0, 0, 6, 6, 0, 2, 7, 13, 41, 159, 200, 198, 198, 252, 120, 0, // 173
0, 12, 12, 0, 0, 6, 15, 41, 49, 255, 254, 0, 0, 0, 0, 0, // 174
0, 0, 96, 96, 96, 102, 111, 105, 113, 255, 254, 0, 0, 0, 0, 0, // 175
17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, // 176
85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, // 177
221, 119, 221, 119, 221, 119, 221, 119, 221, 119, 221, 119, 221, 119, 221, 119, // 178
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, // 179
24, 24, 24, 24, 24, 24, 24, 248, 24, 24, 24, 24, 24, 24, 24, 24, // 180
224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, // 181
54, 54, 54, 54, 54, 54, 54, 246, 54, 54, 54, 54, 54, 54, 54, 54, // 182
255, 0, 255, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, // 183
255, 0, 255, 0, 128, 0, 0, 0, 15, 0, 3, 0, 135, 0, 255, 0, // 184
54, 54, 54, 54, 54, 246, 6, 246, 54, 54, 54, 54, 54, 54, 54, 54, // 185
54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, // 186
0, 0, 0, 0, 0, 254, 6, 246, 54, 54, 54, 54, 54, 54, 54, 54, // 187
54, 54, 54, 54, 54, 246, 6, 254, 0, 0, 0, 0, 0, 0, 0, 0, // 188
54, 54, 54, 54, 54, 54, 54, 254, 0, 0, 0, 0, 0, 0, 0, 0, // 189
24, 24, 24, 24, 24, 248, 24, 248, 0, 0, 0, 0, 0, 0, 0, 0, // 190
0, 0, 0, 0, 0, 0, 0, 248, 24, 24, 24, 24, 24, 24, 24, 24, // 191
24, 24, 24, 24, 24, 24, 24, 31, 0, 0, 0, 0, 0, 0, 0, 0, // 192
24, 24, 24, 24, 24, 24, 24, 255, 0, 0, 0, 0, 0, 0, 0, 0, // 193
0, 0, 0, 0, 0, 0, 0, 255, 24, 24, 24, 24, 24, 24, 24, 24, // 194
24, 24, 24, 24, 24, 24, 24, 31, 24, 24, 24, 24, 24, 24, 24, 24, // 195
0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, // 196
24, 24, 24, 24, 24, 24, 24, 255, 24, 24, 24, 24, 24, 24, 24, 24, // 197
224, 224, 224, 224, 224, 224, 224, 255, 255, 224, 224, 224, 224, 224, 224, 224, // 198
3, 3, 3, 3, 3, 3, 3, 255, 255, 3, 3, 3, 3, 3, 3, 3, // 199
54, 54, 54, 54, 54, 55, 48, 63, 0, 0, 0, 0, 0, 0, 0, 0, // 200
0, 0, 0, 0, 0, 63, 48, 55, 54, 54, 54, 54, 54, 54, 54, 54, // 201
54, 54, 54, 54, 54, 247, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, // 202
0, 0, 0, 0, 0, 255, 0, 247, 54, 54, 54, 54, 54, 54, 54, 54, // 203
54, 54, 54, 54, 54, 55, 48, 55, 54, 54, 54, 54, 54, 54, 54, 54, // 204
0, 0, 0, 0, 0, 255, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, // 205
54, 54, 54, 54, 54, 247, 0, 247, 54, 54, 54, 54, 54, 54, 54, 54, // 206
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 255, 255, // 207
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, // 208
255, 255, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, // 209
255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 210
224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 255, 255, // 211
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 255, 255, // 212
255, 255, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, // 213
255, 255, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 214
24, 24, 24, 24, 24, 24, 24, 255, 255, 24, 24, 24, 24, 24, 24, 24, // 215
0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, // 216
24, 24, 24, 24, 24, 24, 24, 248, 0, 0, 0, 0, 0, 0, 0, 0, // 217
0, 0, 0, 0, 0, 0, 0, 31, 24, 24, 24, 24, 24, 24, 24, 24, // 218
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, // 219
0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, // 220
240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, // 221
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 222
255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, // 223
0, 0, 12, 108, 96, 102, 111, 105, 113, 255, 254, 0, 0, 0, 0, 0, // 224
0, 0, 0, 12, 30, 51, 48, 24, 62, 126, 192, 192, 192, 195, 126, 60, // 225
0, 0, 0, 0, 14, 31, 19, 28, 15, 51, 96, 96, 96, 97, 63, 30, // 226
0, 0, 0, 0, 0, 28, 62, 38, 24, 255, 231, 0, 0, 0, 0, 0, // 227
0, 0, 0, 0, 6, 15, 25, 16, 24, 255, 255, 0, 0, 0, 0, 0, // 228
0, 24, 24, 0, 30, 59, 48, 24, 62, 126, 192, 192, 192, 195, 126, 60, // 229
0, 12, 12, 0, 14, 31, 19, 12, 31, 51, 96, 96, 96, 97, 63, 30, // 230
0, 0, 24, 24, 0, 28, 62, 38, 24, 255, 231, 0, 0, 0, 0, 0, // 231
0, 12, 12, 0, 6, 15, 25, 16, 24, 255, 255, 0, 0, 0, 0, 0, // 232
0, 12, 12, 0, 6, 15, 73, 201, 197, 255, 126, 0, 0, 0, 0, 0, // 233
0, 12, 12, 0, 6, 15, 25, 25, 13, 255, 254, 0, 0, 0, 0, 0, // 234
0, 0, 27, 27, 0, 2, 7, 13, 45, 103, 99, 99, 99, 62, 28, 0, // 235
0, 27, 27, 0, 6, 15, 25, 25, 13, 255, 254, 0, 0, 0, 0, 0, // 236
0, 6, 14, 24, 48, 16, 14, 67, 195, 255, 126, 0, 0, 0, 0, 0, // 237
0, 6, 14, 24, 48, 16, 14, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 238
0, 32, 102, 78, 24, 16, 14, 67, 195, 255, 126, 0, 0, 0, 0, 0, // 239
0, 32, 102, 78, 24, 16, 14, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 240
0, 0, 3, 3, 3, 3, 3, 3, 67, 195, 195, 195, 195, 126, 60, 0, // 241
0, 0, 99, 99, 99, 51, 27, 27, 15, 31, 30, 0, 0, 0, 0, 0, // 242
0, 0, 3, 3, 3, 3, 3, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 243
0, 0, 0, 0, 14, 31, 49, 9, 63, 254, 192, 96, 96, 48, 48, 16, // 244
0, 0, 0, 0, 0, 14, 30, 51, 59, 239, 198, 0, 0, 0, 0, 0, // 245
0, 0, 0, 24, 24, 0, 0, 0, 35, 99, 99, 99, 103, 62, 28, 0, // 246
0, 0, 0, 24, 24, 0, 0, 3, 3, 255, 254, 0, 0, 0, 0, 0, // 247
0, 0, 0, 0, 0, 6, 15, 27, 27, 15, 3, 3, 102, 124, 56, 0, // 248
0, 0, 0, 0, 12, 30, 51, 51, 51, 31, 14, 0, 0, 0, 0, 0, // 249
0, 0, 0, 0, 0, 28, 62, 102, 108, 243, 239, 50, 30, 14, 0, 0, // 250
0, 0, 0, 8, 28, 62, 103, 109, 57, 255, 246, 0, 0, 0, 0, 0, // 251
0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 79, 204, 195, 195, 254, 124, // 252
0, 0, 0, 0, 0, 6, 14, 72, 206, 195, 195, 254, 124, 0, 0, 0, // 253
0, 0, 0, 0, 0, 0, 0, 3, 3, 255, 254, 0, 108, 108, 0, 0, // 254
0, 0, 0, 4, 20, 20, 20, 21, 18, 144, 149, 144, 98, 2, 4, 24 // 255
};
void main( void )
{
REGPACK r;
r.r_ax = 0x1110;
r.r_bx = 0x1000;
r.r_cx = 128;
r.r_dx = 128;
r.r_es = FP_SEG ( Font );
r.r_bp = FP_OFF ( Font );
intr ( 0x10, & r );
}


2-در خط آ = ch ، چگونه باید از کد اسکی که خودم فونت رو طراحی کردم استفاده کنم
مثلاً بجای کاراکتر H از کد اسکی 0 استفاده شود
وقتی شما کلیدی را داخل صفحه کلید میفشارید کدهای لاتین کلیدهای موجود را در دست خواهید داشت نه کدهای فارسی به همین دلیل شما باید با دریافت کلید معال فارسی آنرا پیدا کنید. مانن مثالی که بالا خدمتتان عرض شد.

hamede900
یک شنبه 20 تیر 1389, 01:15 صبح
خیلی خیلی ممنون ، درست شد