الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما هي حقيقة التكويد؟

مغلق
بدأه محمد جبر في 11 يناير 2007 · 7 رد · 2,105 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

سؤالي مكون من شقيين :

اولا : اين توجد في الذاكرة رسومات تكويد الاسكي وهل يمكن التلاعب بها وتغيرها

ثايا : نظام التكويد يوني كود هل عند استخدامه يغير تكويد الاسكي (الرسومات المخذنة) ام انها مجرد ارقام انت تعرفها وتتعامل بها -تخزن بها الحروف التي تريها للتمكن برامج اخري من التعامل معها - ؟ انا مثلا عملت دوال لرسم الحروف العربية في ال graphic mode اذا اردت ان اخزن النتيجة علي ملف اعرف قيمة كل حرف في اليونيكود واضعه في الملف وبهذا اكون استخدمت اليونيكود ام ان استخدامه هوا عن طريق استخدام الرسومات نفسها ؟؟

(المقصود ان كل برنامج يرسم بطريقته بس يحفظ بالترقيم المتفق عليه ولا التكويد بيوفر الرسم كمان ؟)

شكرا

تم تعديل هذه المشاركة بواسطة محمد جبر في 11 يناير 2007 في 05:52

لا اله إلا الله

#2

طبعا التكويد لا يوفر اي وسيلة للرسم التكويد هو وسيلة للتفاعل بين البرامج يعني لو احنا الاتنين اتفقنا علي ان الالف =1

يبقي خلاص كده احنا عملنا تكويد كل مرة هشوف رقم 1 هبقي عارف ان انت قصدك الف وهكذا امال انت هتتفاهم ازاي مع الرقم بأي فدي مشكلتك يعني مثلا لو عملنا برنامج بيفتح فايل ويحط فيه القيمة E3 وجينا نفتحه ببرنامج ال edit هتلاقي حرف لاتيني اما لو فتحته بال text document والل فيها تكويد ال ISO هتلاقي الحرف "م"

احلي حاجه هنا ان الواحد بيجيلوا الوحي بتاع سؤاله بعد ميكتبه ..هي هي هي .. انا بس حبيت احط الاجابة يمكن حد "يستفاد!" سلام

لا اله إلا الله

#3

السلام عليك اخي محمد.

فعلا اخي ففكرتك مثيرة للاهتمام وبدات تشغل بالي.

#4

لاحظ ان احنا مش هنفتح الفايل بالطرقية العادية ونكتب فيه char قييمته E3 كده هيجيب الحرف اللاتيني احنا لازم نفتحه ونكتب فيه buffer by buffer

:)

لا اله إلا الله

#5

سلام عليك اخي محمد.

نعم , فكرة ذكية , فانت اذن سوف تخلق برنامج وسيط يحول هكساات الفايل المعروفة بالاسكيي الى هكسات انت واضع قواعدها من قبل , نعم فكرة جميلة.

محمد ماذا ستسمي هذا التكويد الجديد ? :) هممممم :rolleyes: ما رايك بال " ييكس" :D .

#6

مش تكويد جديد..ايه لازمة تكويد جديد محدش عارفه غيري ! التكويد لازم يكون منتشر ومعروف بين البرامج والتكويد بتاع الويندوز منتشر ..الجديد هوا ان البرنامج بيرسم بس

لا اله إلا الله

#7

اه حسننا ,ربما بدات افهم, اذن هذا البرنامج يتعامل مع ذاكرة الغرافيك فقط?

#8

ايوه بس لسه مطلع اي فايلات ولا فتح حاجه هوا بيكتب بس وحتي انا لسه مكلتوش انا عامل اربع حروف هيا م ح م د كل حرف فيه اربع حالت الحرف منفرد و اول الكلمة و منتصفها واخرها كلهم مرسومين بالدالة putpixel لما تيجي تكتب حرف بيشوف الحرف اللي قبلة بعدين يستدعي دالة اسمها cpl او convert previous letter ويمسح الحرف اللي فات ويحوله لحالة اول الكلمة ويحط الحرف اللي بعد كده في حالة اخر الكلمة وكل متكتب حرف جديد يعمل نفس الحاجه انا عامل مصفوفة اسمها letters كل حرف بتكتب بيتحخزن رقمه فيها عشان الحرف اللي جه بعد كده يعرف الحرف اللي اتكتب قبل كده

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
int x=600,y=30;
int length=0;
int status=1;
int letters[11];
int mmm=0;
cpl(int l);
main()
{
int driver=DETECT,mode;
char ch;
clrscr();
initgraph(&driver,&mode,"");
while(1)
{
ch=getch();
switch(ch)
{
case ' ':
space();
break;
case 'l':
if(letters[status-1]==0)
{
mem();
}
else
cpl(letters[status]);
mem_end();
break;
case 'p':
if(letters[status-1]==0)
{
haa();
}
else
haa_end();
break;
case ']':
if(letters[status-1]==0)
daal();
else
cpl(status-1);
daal_end();
break;
default:
exit(1);
break;
}
printf("%d\n",letters[mmm]);
mmm++;
}
}
space()
{
length=-5;
x=x+length;
letters[status]=0;
status++;
}
mem()
{
length=-6;
putpixel(x-0,y+10,WHITE);
putpixel(x-0,y+10,WHITE);
putpixel(x-1,y+9,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+9,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+9,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+9,WHITE);
putpixel(x-4,y+11,WHITE);
putpixel(x-5,y+12,WHITE);
putpixel(x-5,y+13,WHITE);
putpixel(x-5,y+14,WHITE);
putpixel(x-4,y+15,WHITE);
putpixel(x-4,y+16,WHITE);
x=x+length;
letters[status]=1;
status++;
}
mem_first()
{
length=-6;
putpixel(x-0,y+9,WHITE);
putpixel(x-0,y+10,WHITE);
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+8,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+8,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+9,WHITE);
putpixel(x-3,y+10,WHITE);
putpixel(x-4,y+10,WHITE);
putpixel(x-5,y+11,WHITE);
x=x+length;
letters[status]=2;
status++;

}
mem_end()
{
length=-7;
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+10,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+9,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+9,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+9,WHITE);
putpixel(x-4,y+11,WHITE);
putpixel(x-5,y+9,WHITE);
putpixel(x-5,y+11,WHITE);
putpixel(x-5,y+15,WHITE);
putpixel(x-5,y+16,WHITE);
putpixel(x-6,y+12,WHITE);
putpixel(x-6,y+13,WHITE);
putpixel(x-6,y+14,WHITE);
x=x+length;
letters[status]=3;
status++;

}
mem_middle()
{
length=-7;
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+9,WHITE);
putpixel(x-1,y+10,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+8,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+8,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+9,WHITE);
putpixel(x-4,y+10,WHITE);
putpixel(x-5,y+10,WHITE);
putpixel(x-6,y+11,WHITE);
x=x+length;
letters[status]=4;
status++;

}
haa_first()
{
length=-9;
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+10,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+10,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+9,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+8,WHITE);
putpixel(x-4,y+11,WHITE);
putpixel(x-5,y+8,WHITE);
putpixel(x-5,y+11,WHITE);
putpixel(x-6,y+8,WHITE);
putpixel(x-6,y+11,WHITE);
putpixel(x-7,y+8,WHITE);
putpixel(x-7,y+11,WHITE);
putpixel(x-8,y+11,WHITE);
x=x+length;
letters[status]=5;
status++;

}
haa_middle()
{
length=-9;
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+10,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+10,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+9,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+8,WHITE);
putpixel(x-4,y+11,WHITE);
putpixel(x-5,y+8,WHITE);
putpixel(x-5,y+11,WHITE);
putpixel(x-6,y+8,WHITE);
putpixel(x-6,y+11,WHITE);
putpixel(x-7,y+8,WHITE);
putpixel(x-7,y+11,WHITE);
putpixel(x-8,y+11,WHITE);
x=x+length;
letters[status]=6;
status++;

}
haa()
{
length=-9;
putpixel(x-0,y+7,WHITE);
putpixel(x-1,y+7,WHITE);
putpixel(x-1,y+16,WHITE);
putpixel(x-2,y+7,WHITE);
putpixel(x-2,y+16,WHITE);
putpixel(x-3,y+7,WHITE);
putpixel(x-3,y+8,WHITE);
putpixel(x-3,y+16,WHITE);
putpixel(x-4,y+7,WHITE);
putpixel(x-4,y+8,WHITE);
putpixel(x-4,y+16,WHITE);
putpixel(x-5,y+7,WHITE);
putpixel(x-5,y+9,WHITE);
putpixel(x-5,y+16,WHITE);
putpixel(x-6,y+7,WHITE);
putpixel(x-6,y+9,WHITE);
putpixel(x-6,y+15,WHITE);
putpixel(x-7,y+7,WHITE);
putpixel(x-7,y+10,WHITE);
putpixel(x-7,y+15,WHITE);
putpixel(x-8,y+11,WHITE);
putpixel(x-8,y+12,WHITE);
putpixel(x-8,y+13,WHITE);
putpixel(x-8,y+14,WHITE);
x=x+length;
letters[status]=7;
status++;
}
haa_end()
{
length=-10;
putpixel(x-1,y+7,WHITE);
putpixel(x-2,y+7,WHITE);
putpixel(x-2,y+16,WHITE);
putpixel(x-3,y+7,WHITE);
putpixel(x-3,y+16,WHITE);
putpixel(x-4,y+7,WHITE);
putpixel(x-4,y+8,WHITE);
putpixel(x-4,y+16,WHITE);
putpixel(x-5,y+7,WHITE);
putpixel(x-5,y+8,WHITE);
putpixel(x-5,y+16,WHITE);
putpixel(x-6,y+7,WHITE);
putpixel(x-6,y+9,WHITE);
putpixel(x-6,y+16,WHITE);
putpixel(x-7,y+7,WHITE);
putpixel(x-7,y+9,WHITE);
putpixel(x-7,y+15,WHITE);
putpixel(x-8,y+7,WHITE);
putpixel(x-8,y+10,WHITE);
putpixel(x-8,y+15,WHITE);
putpixel(x-9,y+11,WHITE);
putpixel(x-9,y+12,WHITE);
putpixel(x-9,y+13,WHITE);
putpixel(x-9,y+14,WHITE);
putpixel(x-3,y+8,WHITE);
putpixel(x-3,y+9,WHITE);
putpixel(x-3,y+10,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-0,y+11,WHITE);
x=x+length;
letters[status]=8;
status++;

}
daal()
{
length=-5;
putpixel(x-0,y+8,WHITE);
putpixel(x-0,y+9,WHITE);
putpixel(x-0,y+10,WHITE);
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+7,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+6,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+10,WHITE);
putpixel(x-4,y+11,WHITE);
x=x+length;
letters[status]=9;
status++;
}
daal_middle()
{
length=-6;
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+8,WHITE);
putpixel(x-1,y+9,WHITE);
putpixel(x-1,y+10,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+7,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+6,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+11,WHITE);
putpixel(x-5,y+10,WHITE);
putpixel(x-5,y+11,WHITE);
putpixel(x-5,y+12,RED);
x=x+length;
letters[status]=10;
status++;
}

daal_end()
{
length=-6;
putpixel(x-0,y+11,WHITE);
putpixel(x-1,y+8,WHITE);
putpixel(x-1,y+9,WHITE);
putpixel(x-1,y+10,WHITE);
putpixel(x-1,y+11,WHITE);
putpixel(x-2,y+7,WHITE);
putpixel(x-2,y+11,WHITE);
putpixel(x-3,y+6,WHITE);
putpixel(x-3,y+11,WHITE);
putpixel(x-4,y+11,WHITE);
putpixel(x-5,y+10,WHITE);
putpixel(x-5,y+11,WHITE);
x=x+length;
letters[status]=10;
status++;
}
cpl(l)
{
int xx,yy;
switch(l)
{
case 9:
for(yy=30;yy<=y+16;yy++)
{
for(xx=x;xx<=x+9;xx++)
{
putpixel(xx,yy,BLACK);
}
}
x=x+9;
haa_first();
break;
}
}

طبعا رسمومات الحرف انا عملتها عن طريق ال word bad وال paint كتبت الحرف وعملت print screen بتاعة الويندوز وخدتعا البينت وكبرتها علي الخر عشان اعرف مرسومة ازاي واعرف اقدلها وعملت برنامج كمان يسهل عملية الرسم انا نت تكتب قيمة x , y لكل بكسل وهو يعمل ملف فيه الدالة جاهزه يعني اسم الحرف وكمان دوال pupixel فيها القيم

#include <stdio.h>
#include <conio.h>
main()
{
FILE *fptr;
char name[20];
char x[1];
char y[1];
int count,l;
clrscr();
fptr=fopen("letters.txt","w");
puts("put the name of the function:");
gets(name);
fputs(name,fptr);
fputs("()\n{\n",fptr);
for(count=0;count<2;count++)
{
puts("put the value of x");
gets(x);
fputs("putpixel(x-",fptr);
fputs(x,fptr);
puts("put the value of y ");
gets(y);
fputs(",y+",fptr);
fputs(y,fptr);
fputs(");\n",fptr);
}
fputs("}\n",fptr);

getch();
}

البرنمجين معملوين بالتربو سي tc بس البرناجم الاول هيشتغل من غير اخطاء وكل حاجه بس لسه مش كامل

لا اله إلا الله

هذا الموضوع مغلق.

مواضيع مشابهة