• مشکی
  • سفید
  • سبز
  • آبی
  • قرمز
  • نارنجی
  • بنفش
  • طلایی
تعداد مطالب : 5
تعداد نظرات : 15
زمان آخرین مطلب : 6373روز قبل
کامپیوتر و اینترنت

1- فیلد را تعریف کنید ؟
كوچكترین واحد اطلاعات درفایل است كه معنایی منطقی دارد.
2- روش های سازماندهی فیلدها در رکوردها را نام ببرید ؟
1- فایل جریان
2- ساختارهای فیلد
3- خواندن جریانی از فیلدها
4- ساختارهای ركورد
5- ساختار ركوردی كه از نشانگر طول استفاده می كند
3- در سازماندهی فیلدها مفهوم روش شروع کردن هر فیلد با نشانگر طول فیلد چیست؟
یك روش برای تشخیص انتهای فیلد این است که طول فیلد در ابتدای فیلد قرار داده می شود اگر فیلدها بیش از حد طو لانی نباشند(کمتر از 256 بایت) طول آنها را تنها با یک بایت در آغاز هر فیلد نگه داری کرد که این فیلد را مبتنی بر طول می نامند. 
4- رکورد چیست ؟
مجموعه ای از فیلدهای مرتبط به هم را رکورد گویند.
5- روش های سازماندهی رکوردهای یک فایل را نام ببرید. ( پنج روش )
1-قابل پیش بینی کردن طول رکورد برحسب بایت
2- قابل پیش بینی کردن طول رکورد برحسب فیلد
3-شروع رکورد با نشانه گر طول
4-استفاده از اندیس برای نگه داری آدرس
5-قرار دادن فاصل در انتهای هر رکورد
6- روش های ثابت نگه داشتن طول رکورد را نام ببرید ؟
شمارش بابتها در رکوردها با طول ثابت یا فیلدها با طول ثابت
شمارش بایتها در رکوردها با طول ثابت فیلدها با طول متغییر
شمارش فیلدها شش فیلد به ازای هر رکورد
7- فایل با طول رکورد ثابت را تعریف کنید ؟
فایلی است که در آن تعداد بایتهای همه رکوردها یکسان است.
8- دستکاری بافرها با استفاده از کلاس ها به چند دسته تقسیم می شوند ؟
1-كلاس بافر برای فیلدهای فاصل دار 2-توسعه كلاس باعملیات بافری3-كلاسهای بافر برای فیلدهای مبتنی برطول وفیلدهای طول ثابت 
با استفاده از کلاسهایC++ است که می توان عملیات فشرده کردن بسط دادن و خواندن و نوشتن را انجام داد.
9- خواندن و نوشتن اشیاء بافر با استفاده از کلاس های C++ به چند طریق صورت می پذیرد ؟
فشرده كردن ( (pack بسط دادن (unpack) - شروع كار بایك شیی بافر خالی فشرده سازی یك به یك مقادیر فیلد درشیی سپس این صورت که نوشتن محتویات بافربا خواندن یک رکورد از یک جریان ورودی وسپس استخراج یک به یک مقادیر فیلد شیی
10-عملیاتی را که روی بافرها انجام می شوند را نام ببرید ؟
عملیاتی که بر روی بافرها انجام می شود شامل سازندها-نوشتن – خواندن- فشرده سازی و بسط فیلدها است.
11-کلاس های بافر با قابلیت فشرده سازی چه نوع مقادیری را دارند ؟
كلاسهای بافر قابلیت فشرده سازی هر تعداد از مقادیر رادارند ولی نحوه تركیب این مقادیر ایجاد اشیا را ثبت نمی كننددر واقع کلاسهای بافر قابلیت فشرده سازی فایلهای متنی را دارد
12-استفاده از وراثت برای کلاس های بافر رکورد به چند طریق صورت می گیرد ؟
به 2 طریق صورت می گیرد 1-استفاده از کلاسهای C++ 2- سلسله مراتب مربوط به اشیاء بافر رکورد
13-وراثت در کلاس های جریان C++ را توضیح دهید ؟
C++ وراثت را در اختیار قرار می دهد تا چندین کلاس بتوانند از اعضا و متد های مشترک استفاده کنند.یك یا چند كلاس پایه اعضا یامتدهایی راتعریف می كنند وسپس زیر كلاسها از این اعضا ومتدها استفاده می كنند
14-مفهوم وراثت چندگانه را توضیح دهید ؟
وراثت چندگانه به این معناست که کلاسهای بیش از یک کلاس پایه داشته باشند را وراثت چندگانه گویند.
15-طراحی شئ گرا چه پیشنهادی را برای درست بودن عملیات ارائه می کند ؟
برای حصول اطمینان از انجام درست عملیات روی فایلهامی توان از كلاسها استفاده كرد به راحتی می توان دید كه استفاده از بافر نادرست برای خواندن ركوردی از فایل برای یك برنامه كاربردی مشكل ایجاد می كند بسته بندی كلاسهایی نظیر buffer fileباعث ایمنی بیشتر عملیات فیل می شود.
--------------------------------------------------------------------------------------------------------------------
1- بلوک را تعریف کنید و به چه منظوری استفاده می شود؟
مجوعه ایی از رکوردهایی که به عنوان یک واحدپیوسته فیزیکی روی حافظه ثانویه نگه داری می شوند را بلوک گویند:::::برای بحبود بخشیدن به کارایی I/O طی جست و جوی ترتیبی استفاده می شود
2- انواع فراوانی از شبه داده ها را نام ببرید ؟
1-تعداد پیکسل ها در ازای هر سطر و تعداد سطر ها
2-تعداد بایتهای به کار رفته در توصیف هر پیکسل
3-یک جدول جست و جوی رنگ که نشان می دهدکدام رنگ باید به هر مقدار پیکسل در تصویر نصبت داده شود.
4-نمایش یک تصویر پنجره ایی در صفه نمایش
5-همراه کردن یک تصویر با یک جدول جست جوی رنگ
6-قرار دادن یک تصویر بر روی یک تصویر دیگر و ایجاد یک تصویر 3بعدی
3- منظور از شکل کانونیک را توضیح دهید ؟
یک شکل استاندارد برای کلید که با اعمال قواعدی مشخص از یک شکل خواص و غیر استاندارد از داده ها که در فیلد کلید یک رکورد یافت میشوند قابل حصول باشد یادر یك در خواست جستجو از طرف كاربر فراهم اید
4- رکورد سرآیند چیست ؟ توضیح دهید.
رکوردی که در آغاز فایل قرار می گیردتا اطلاعات مربوط به محتوای فایل و سازمان دهی فایل را نگه داری می کند.
5- متدهایی که برای کار با تصاویر به عنوان اشیاء خاص وجود دارد نام ببرید ؟


6- منظور از فایل خود توصیف گر چیست ؟
فایلی که حاوی اطلاعاتی نظیر تعداد رکوردها در فایل وتوصیف رسمی ساختار ركورد فایل بوده نرم افزار از آنها برای تعیین نحوه دستیابی به فایل استفاده می کند سرایند فایل مکان خوبی برای این اطلا عات است.
7- شماره رکورد نسبی ( RRN ) چه نوع اندیسی است ؟
اندیسی است که موقعیت رکورد را نصبت به آغار فایل مشخص می کند.اگر فایلی دارای ركوردهای طول ثابت باشد RRN رامی توان برای محاسبه افست بایت ركورد یافت ومستقیما به ركورد دست یافت
8- انواع روش های دستیابی به فایل را نام ببرید ؟
دو روش برای دستیابی به فایل وجود دارد 1)دستیابی ترتیبی 2)دستیابی مستقیم
9- انواع جستجو در فایل را نام ببرید ؟
جست وجوی ترتیبی
10-عیب مرتب سازی کلیدی را تویح دهید ؟
عیب این مرطب سازی آن است که برای ساخت یک فیلد جدید نیاز به دستیابی به رکورد های زیادی دارد.

------------------------------------------------------------------------------------------------------------------------
1- دلایل فشرده سازی را نام ببرید ؟
1-فایلهای کوچک تر نیاز به فضای کمتری دارندكه باعث صرفه جویی میشود
2-سریعتر انتقال داده می شود وزمان دسترسی را كوتاهتر می کندیا به جای ان می توان باهمان زمان دسترسی از پهنای باند كمتر وارزانتر استفاده كرد
3-به صورت ترتیبی سریعتر قابل پردازش هستند
2- منظور از فشرده سازی چیست ؟ و انواع آن را نام ببرید ؟
یعنی رمز گزاری اطلاعات در فایل به صورتی که جای کمتری بگیرد
1-استفاده از یک نماد گزاری جدید
2-حذف دنباله های تکراری
3-تخصیص کد با طول متغیر
3- در فشرده سازی منظور از اینکه سه بایت را به ترتیب جایگزین می نمائیم چیست ؟


4- چه زمانی از روش فشرده سازی با حذف دنباله های تکراری استفاده می کنیم ؟
زمانی که عناصر تکراری زیادی در فایل مورد نظر وجود داشته باشد از این روش برای فشرده سازی استفاده می کنیم
5- آسانترین راه برای نگهداری لیست پیوندی چیست توضیح دهید ؟
آسانترین راه برای نگهداری لیست پیوندی استفاده از آن به عنوان پشته است
6- منظور از لیست پیوندی چیست ؟
مجموعه اییاز گره ها که به صورت آدرسهایی که در هر گره قرار دارد و به گره بعدی اشاره می کندایجاد می شود ترتیب منطقی لیست پیوندی با ترتیب فیزیکی گره ها رد حافظه با هم تفاوت دارند.
7- بازیابی رکوردها از طریق لیست پیوندی به چه مواردی نیاز دارد ؟ توضیح دهید.
برای بازیابی رکوردها باید ابتدا بدانیم که حفره های خالی وجود دارد یا خیردرصورت وجود حفره های خالی از آنها برای قرار دادن رکورد ها استفاده کنیم.
8- انواع راهبردهای انتخاب جا را توضیح دهید ؟
1-راهبرد اولین جای مناصب:وقتی به دنبال حفره ای برای اضافه كردن ركورد جدیدی هستیم به تناسب این حفره باركورد اهمیتی نمی دهیم اولین حفره ای كه نیازمان رابراورده كند انتخاب می كنیم بدون توجه به اینكه اندازه اش ده برابر بزرگتر از ركورد جدید است یادقیقا اندازه ان است

2-راهبرد مناسب ترین جا : چون زیر روال خارج کردن حفره طول لیست را به صورت ترتیبی طی می کند تا به رکوردی برسد تا به اندازه کافی بزرگ باشد اولین حفره ای که بزرگ شود کوچکترین حفره ایی است که این نیاز را برابرده می کند.تناسب میان رکورد و حفره جدید بسیار زیاداست.

3-انتخاب نا مناسب ترین جا : جست وجو را از ابتدای هر لیست شروع می کند همیشه بزرگترین حفره موجود را انتخاب می کند این راهبرد به عنوان راهبرد انتخاب نامناسبترین جا میباشد.
9- پشته ( Stack ) را تعریف کنید ؟
یک نوع لیست است که در آن تمام اضافه ها و حذف ها از یک طرف انجام می شود.



دوشنبه 7/11/1387 - 20:23
موبایل
مثال :برنامه ای که ویراستار متنی ساده ای راطراحی می کند .امکانات این ویراستار عبارت انداز:منوی Fileمنوی Editمنوی Optionمنوی Helpمنوی میانبر(ContextMenu) ابزار ToolBarوفعال شدن راهنما بافشردن کلید.F1
منوی File
این منو چند گزینه دارد:
1- گزینه New:برای ایجاد فایل جدید بکارمی رود.
2- گزینه Open:برای خواندن اطلاعات فایل موجود وویرایش ان بکارمی رود.
3- گزینه Save:برای ذخیره فایل موجود درحافظه بر روی دیسک به کارمی رود.
4- گزینهAs Save:اطلاعات موجود درحافظه رابانام جدیدی ذخیره می کند.
5- گزینه Exit:برای خاتمه به اجرای برنامه (خروج از برنامه)به کارمی رود.
منوی Edit
این منو شامل گزینه های زیر است:
1- گزینهCut:متن انتخاب شده رابه حافظه موقت منتقل می کند.
2- گزینهCopy:متن انتخاب شده رادر حافظه موقت کپی می نماید.
3- گزینهPaste:متن موجود درحافظه موقت رابه محلی که مکان نما قراردارد،اضافه می کند.
4- گزینهClear:متن انتخاب شده راپاک می کند.
منویOption
این منو،ازگزینه های زیر تشکیل شده است :
1- گزینهFont:با این گزینه می توان نام ،نوع واندازه فونت راانتخاب نمود.
2- گزینهColor:رنگ زمینه را انتخاب می کند.
3- گزینهReadOnly:امکان ویرایش رااز متن گرفته یا امکان ویرایش به متن می دهد.
منوی Help
این منو یک گزینه Aboutداردکه برای نمایش پیام کوتاهی (راهنمایی کوتاه)درمورد ویراستاربه کارمی رود.
منوی میانبر
این منو دو گزینه به نامهای Saveو Copyدارد که اعمال گزینه های File/SaveوEdit/Copyراانجام می دهند این منو باکلید راست فعال خواهد شد.
ابزارToolBar
این نواردارای دودکمه است که به ترتیب اعمال Help/AboutوOption/Color راانجام می دهند.



مراحل طراحی واجرای برنامه 
1- پروژه جدیدی راایجاد کنید.
2- یک کنترل OpenFileDialog، یک کنترل SaveFileDialog، یک کنترل FontDialog، یک کنترل ColorDialog، یک کنترل MainMenu، یک کنترل ContextMenu، یک کنترل ToolBar، یک کنترل RichTextBox، یک کنترل HelpProvider، یک کنترل ImageList،به فرم اضافه کنید (مطابق فرم برنامه).
3- کنترل MainMenu راکلید مضاعف کرده تاطراح منو ظاهر شود.
4- عبارت &Fileرادرگزینه TypeHereتایپ کنید خاصیت Name آن را Fileتعیین کنید ومکان نما رابه گزینه زیر ان انتقال دهید.
5- دراین گزینه &Newراتایپ کنید خواص NameوShortCutان را NewوCtrlOتعیین کنید.
6- درگزینه بعدی، &Openراتایپ کرده خواص NameوShortCutان راOpenوCtrlOتعیین کنید.
7- درگزینه بعدی کلید-رافشار دهید .باانجام این عمل ،جداکننده ای ایجاد خواهدشد.
8- درگزینه بعدی،&Saveراتایپ کرده خواص NameوShortCutان راSaveوCtrlS تعیین کنید.
9- درگزینه بعدی،Save&Asراتایپ کرده خواص NameوShortCutان راSaveAsوCtrlAتعیین کنید.  
10- درگزینه بعد کلید –رافشاردهید.
11- درگزینه بعدی،E&xitراتایپ کرده خواص NameوShortCutان راExitوCtrlXتعیین کنید.  
12- مکان نمارابه گزینه TypeHereجلوی گزینه File منتقل و&Editراتایپ کرده خاصیت Nameان راEditتعیین کنید.  
13- مکان نمارابه گزینهTypeHere زیر گزینه Edit منتقل وCu&tراتایپ کرده خاصیت NameوShortCutان راCutوCtrlTتعیین کنید.  
14- درگزینه بعدی،Cop&yراتایپ کرده خواص NameوShortCutان راCopyوCtrlYتعیین کنید.  
15- درگزینه بعدی،&Pasteراتایپ کرده خواص NameوShortCutان راPasteوCtrlPتعیین کنید.  
16- درگزینه بعدی کلید- راتایپ کنید.
17- درگزینه بعدی،C&learراتایپ کرده خواص NameوShortCutان راClearوCtrlLتعیین کنید.  
18- مکان نمارابه گزینه TypeHereجلوی گزینه Edit منتقل وعبارت &Optionراتایپ کرده خاصیت Nameوان راOption تعیین کنید.
19- درگزینه زیرگزینه Option،&Fontراتایپ نموده خواص NameوShortCutان راFontوCtrlFتعیین کنید.  
20- درگزینه بعدی،Colo&rراتایپ کرده خواص NameوShortCutان راColorوCtrlKتعیین کنید.  
21- درگزینه بعدی،Rea&dOnlyراتایپ کرده خواص NameوShortCutان راReadOnlyوCtrlDتعیین کنید.  
22- مکان نمارابه گزینه TypeHereجلوی گزینه Option منتقل و&Helpراتایپ کرده خاصیت Nameان راHelp تعیین کنید.
23- درگزینه زیرگزینه Help،Abo&utراتایپ نموده خواص NameوShortCutان راAboutوCtrlUتعیین کنید.  
24- کنترل ContextMenu راکلیک نمایید تاطراح منوی میانبرظاهر شود.
25- دراولین گزینه ،&Save راتایپ کرده خاصیت Nameان را CSaveتعیین کنید.
26- درگزینه بعدی &Copyراتایپ کرده خاصیت Nameان را CCopyتعیین نمایید. باانجام مراحل 25و26یک منوی میانبربادوگزینه Save وCopyایجاد می شود.می توانیدتعدادگزینه های این منو رااضافه نمایید. 
27- متغیرهای برنامه رابه صورت زیر بعد از زیر برنامه Mainتایپ كنید:
  System.String fileName;
  System.String cutText;
  bool modified ;
 
متغیر fileName ،نام فایلی است كه عملیات روی ان انجام می شود وزمانی كه محتویات richTextBox1پس از اخرین ذخیره فایل تغییر یابد متغیر modified ،به true تنظیم می گردد ودر هنگام ذخیره كردن فایل ،مقدار false رابه ان نسبت می دهد ومتغیر اطلاعاتی رادراین متغیر نگهداری می كند كه باید در حافظه موقت ذخیره گردد.
28- ناحیه خالی فرم راكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  richTextBox1.ContextMenu=contextMenu1;
  richTextBox1.Text=" ";
  fileName="";
  modified=false;
  Paste.Enabled=false;
  Copy.Enabled=false;
  Clear.Enabled=false;
  helpProvider1.HelpNamespace="d:\\c#new\\7\\help.htm";

29- تابع saveChange رامطابق لیست برنامه به صورت زیر تایپ كنید:
  private bool saveChange()
  {
  bool saveCh=true;
  DialogResult code;
  code=MessageBox.Show("The Information "+fileName +" has changed,save?","Save Dialog",MessageBoxButtons.YesNoCancel );
  if (code==DialogResult.Yes) saveCh= save1();
  if (code==DialogResult.Yes) saveCh= false;
  return saveCh;
  }

درهنگام ایجاد فایل جدید یاخروج از برنامه ،باید تست شود كه ایا فایل قبلی تغییر كرده است یاخیر .اگرفایل تغییر كرده باشد ،تابع saveChange فراخوانی خواهد شد .دراین تابع،از كاربردر مورد ذخیره فایل قبلی یا انصراف از تغییرات اعمال شده یا انصراف از فرمان سؤال می شود .
30- تابع رابه صورت زیر تعریف كنید.(بعد از تابع saveChange):
  private bool save1()
  {
  if (fileName=="") 
  return saveAs1();
  else
  {
  modified=false;
  richTextBox1.SaveFile(fileName);
  return true;
  }
  }

31- درطراح منوNew،گزینه راكلیك مضاعف كرده دستورات زیر راتایپ كنید :
  if (modified)
  saveChange();
  richTextBox1.Clear();
  modified = false;
  fileName = "";
  Form1.ActiveForm.Text = "Notes-[Untitled]";

32- كنترل richTextBox1راكلیك مضاعف كرده دستور modified=false;راتایپ كنید اكنون باتغییر محتویات كنترل richTextBox1مقدار متغییر modified به true تنظیم خواهد شد .
33- درطراح منو ،گزینه openراكلیك مضاعف كرده دستورات زیررا تایپ كنید:
  openFileDialog1.Filter = "(*.*)|*.*";
  openFileDialog1.Title = "Select File Name For Open";
  openFileDialog1.FileName = fileName;
  openFileDialog1.ShowDialog();
  fileName =saveFileDialog1.FileName;
  richTextBox1.LoadFile(fileName);
  Form1.ActiveForm.Text = "Notes-" + fileName;

دستور اول ، *.*رادر خاصیت Filter مربوط به كنترل openFileDialog1قرارمی دهد .دستور دوم ،عنوان كادر محاوره راانتخاب می كند دستور سوم نام فایل رادر خاصیت fileName مربوط به كنترل openFileDialog1قرارمی دهد دستور چهارم كادر محاوره openرانمایش می دهد دستور پنجم ،نام فایل وارد شده در كنترل saveFileDialog1رادر متغیر fileName قرارمی دهد ودر پایان تابع مقدار true رابرمی گرداند.
34- در طراح منو ،گزینه saveراكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  if (modified ) save1();
  Form1.ActiveForm.Text = "Notes-" + fileName;

دستور اول ،تست می كند كه اگرمتن richTextBox بعد از ثبت اخرین تغییرات ویرایش شده باشد ان راذخیره كند ودستور دوم ،نام فایل رادرعنوان فرم برنامه نمایش می دهد.
35- درطراح منو ،گزینه save as راكلیك مضاعف نموده دستورات زیر راتایپ كنید:
  if (modified ) save1();
  Form1.ActiveForm.Text = "Notes-" + fileName;

36- درطراح منو گزینه Exitراكلیك مضاعف كرده دستورات زیر راتایپ كنید :
  if (modified ) save1();
  Close();

37- گزینه cutاز منوی Editراكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  cutText = richTextBox1.SelectedText;
  richTextBox1.Cut();
  richTextBox1.SelectedText = "";
  Paste.Enabled = true;

این قطعه برنامه ،متن انتخاب شده در ویراستار رابه حافظه موقت منتقل می كند (به متغیر cutText منتقل می كند)
38- گزینه Copy رااز منوی Editكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  cutText = richTextBox1.SelectedText;
  richTextBox1.Focus();
  richTextBox1.Copy();
  Paste.Enabled = true;
  Copy.Enabled = false;
  Cut.Enabled = false;
  Clear.Enabled = false;

39- گزینه Paste رااز منوی Editكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  richTextBox1.Paste();
  richTextBox1.Refresh();
  Copy.Enabled = false;
  Cut.Enabled = false;
  Clear.Enabled = false;

40- در رویداد SelectionChanged مربوط به كنترل richTextBox1دستورات زیر را تایپ كنید .برای این منظور،كنترل richTextBox1راانتخاب كنید وكلیدF4رافشار دهید تاپنجره خواص فرم ظاهر شود. دراین پنجره ،دكمه Eventراكلیك كنید تارویدادهای كنترل richTextBox1ظاهر شود . اكنون،رویداد SelectionChanged را كلیك مضاعف كنید ودستورات زیر را تایپ كنید:
  if (richTextBox1.SelectedText!="")
  {
  Cut.Enabled=true;
  Copy.Enabled=true;
  Clear.Enabled=true;
  }


41- گزینه Clear رااز منوی Editكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  richTextBox1.SelectedText=""; 
  Copy.Enabled = false;
  Cut.Enabled = false;
  Clear.Enabled =false;

42- گزینه Font را از منوی Optionكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  DialogResult result; 
  result = fontDialog1.ShowDialog();
  if (result == DialogResult.OK )
  richTextBox1.Font = fontDialog1.Font;

43- گزینه رااز منوی Optionكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  DialogResult result; 
  result = colorDialog1.ShowDialog();
  if (result == DialogResult.OK )
  richTextBox1.BackColor = colorDialog1.Color;

44- گزینه ReadOnly رااز منوی Optionكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  ReadOnly.Checked = ! ReadOnly.Checked;
  richTextBox1.ReadOnly = !richTextBox1.ReadOnly;

45- گزینه Aboutرااز منوی Helpكلیك مضاعف كرده دستور زیر راتایپ كنید:
  MessageBox.Show("The notes program has been writeln C# .NET" );

46- كنترل ContextMenu1راانتخاب كنید تاطراح منوی میانبر ظاهر شود.
47- گزینه SaveازContextMenu را كلیك مضاعف كرده دستورات زیر راتایپ كنید:
  if (modified ) save1();
  Form1.ActiveForm.Text = "Notes-" + fileName;

48- گزینه CopyازContextMenu را كلیك مضاعف كرده دستورات زیر راتایپ كنید:
  cutText = richTextBox1.SelectedText;
  richTextBox1.Focus();
  richTextBox1.Copy();
  Paste.Enabled = true;
  Copy.Enabled = false;
  Cut.Enabled = false;
  Clear.Enabled = false;

49- خاصیتImages مربوط به كنترل ImageListراكلیك مضاعف كنید تاویراستار Image Collectionظاهر شود.
50- در ویراستار Image Collectionدكمه Addراكلیك كنید تاكادر محاوره Openظاهر شود،دراین كادر تصویری راانتخاب نمایید كه باید به اضافه شود ودكمه Openراكلیك كنید این روند رابرای تصاویری (آیكن هایی)ادامه دهید كه باید به كنترل ImageListاضافه شوند.درپایان دكمه OKاز ویراستارImage Collection راكلیك كنید.
51- درفرم كنترل ToolBarراانتخاب كرده پنجره خواص ان رافعال كنید.
52- خاصیت ImageListمربوط به كنترل ToolBarرابه ImageList1تغییر دهید.
53- درپنجره خاصیت Buttonsراكلیك مضاعف كنید تاویراستارCollection Button ToolBarظاهر شود 
54- دكمه Addراكلیك كنید ومقدار صفر رادر خاصیت ImageIndexقراردهید .
55- دكمه Addرامجددا كلیك كرده مقدار یك را از خاصیت ImageIndex انتخاب كنید در پایان دكمه OKرا روی ویراستار ButtonCollection ToolBar كلیك نمایید .
56- اولین دكمه بر روی ToolBar راكلیك مضاعف كرده دستورات زیر راتایپ كنید:
  if( e.Button.ImageIndex==0)
  MessageBox.Show("The notes Program has been writeln C# .NET");
  else
  {
  DialogResult result ;
  result = colorDialog1.ShowDialog();
  if (result == DialogResult.OK)
  richTextBox1.BackColor = colorDialog1.Color;
  }

اگر یكی از دكمه های مربوط به كنترل ToolBar كلیك شود ، این رویداد فراخوانی می گردد بااستفاده از خاصیت ImageIndex می توان تشخیص داد كه كدام یك از دكمه ها كلیك شده اند وعملیات مورد نیاز راانجام داد.
57- متنی راكه باید به Helpعنوان ظاهر شود ،در Wordتایپ كنید وان رابا پسوند htmlذخیره كنید . 
58- خاصیت on helpProvider Show helpمربوط به كنترل های Form1و richTextBox1رابه true تنظیم كنید با انجام این كار اگر كاربر ،برروی هریك از كنترل های Form1و richTextBox1 كلیك f1رافشار دهد،فایل Help. htmlظاهر می شود.
59- پروژه راذخیره واجرا كنید باگزینه های منوی Fileمی توانید فایلی را ایجاد كرده ذخیره نماییدیا فایل موجود را ویرایش نمایید وبا گزینه های منوی Editمی توانید امكانات ویراستاری رادر تایپ متن در اختیار داشته باشید . گزینه های منوی Optionبرای تعیین پیكربندی ویراستار به كار می روند اگردر ویراستار كلید F1رافشار دهید ، راهنمای ویراستار ظاهر می شود.
60- برای خروج از برنامه گزینه File/Exitرااجرا كنید.



دوشنبه 7/11/1387 - 16:13
موبایل

Pointer :این کنترل می تواند بر روی کنترل های موجود در فرم اثر کندو انها را انتخاب نماید .


Label : کنترل را به فرم اضافه می کند که برای نمایش متن های غیر قابل ویرایش مفید است . 


Linklabel: پیوندی را به فرم اضافه می کند که برای اتصا لبه سایت ها ی اینترنت مو رد استفاده قرار می گیرد .

Button: کنترل دکمه فرمان را به فرم اضافه می کند .چنانچه کار بر روی این دکمه کلیک کند می تواند بعضی از فرمانها را اجرا کند .


Textbox: برای دریافت وویرایش متن به کار می رود.


Mainmenu: برای اضافه کردن منوی اصلی به فرم به کار می رود .


Checkbox: گزینه ای را به فرم اضافه می کند که انتخابیا عدم انتخاب ان به عهده کاربر است . اگر چند کادر کنترلی در یک گروه قرار گیرند،از بین ان ها چند گزینه را می توان انتخاب کرد .


Radiobutton: گزینهای را به فرم اضافه می کند که انتخاب یا عدم انتخاب ان به عهده کاربر است . اگر چند دکمه رادیویی در یک گروه قرار گیرند ،فقط یک گزینه را میتوان انتخاب کرد .


Groupbox: با ان میتوان چند کنترل را در یک گروه قرار داد.


Picturebox : کادری را به فرم اضافه می کند که بر روی ان می توان تصویری قرار داد .


Panel: یک کنترل را به فرم اضافه می کند که می تواند چند کنترل بر روی ان قرار داد . چنانچه خواص این کنترل تغییر کند،خواص کنترل ها ی روی ان نیز تغییر خواهد کرد .


Datagrid: کنترلی را به فرم اضافه می کند که برای نمایش داده های جدول به کار می رود .


List box : کنترلی راذ به فرم اضافه می کند که برای نمایش جند گزینه و انتخاب یک یا چند گزینه به کار می رود .


Checkedlistbox : لیستی از چند کادر کنترلی است که یک یا چند گزینه را می توان انتخاب کرد .


Combobox: ترکیبی از یک کادر متن ویک کادر list است .در این کنترل می توان متن جدیدی را وارد یا گزینه ای از لیست را انتخاب کرد.

Listvie w. مجموعه ای ازاقلام 1 را نشان می دهد که می تواند با استفاده از چهار نمای مختلف ظاهر شود . 

Treeview: با ان می توان ساختار درختی را مشاهده کرد .

Tabcontrol: با ان می توان صفحات جدیدی را اضافه نمود یا صفحات موجود را انتخاب کرد .

Datetimepicker: به کار بر اجازه می دهد تاریخ وزمان را انتخاب کرده با فرمت خاصی نمایش دهد. 

Monthcalender: با ان می توان تقویم را مشاهده کرد.

Hscrollbar: با ان می توان نوار جابجایی افقی را به فرم اضافه کرد.

Vscrollbar: با ان می توان نوار جابهجایی عمودی رابه فرم اضافه کرد. 

Timer: کنترلی را ایجاد میکندکه در فواصل زمانی مختلف وظایفی را انجام می دهد.

Splitter: کنترلی را ایجاد می کند که به کاربر اجازه می دهد تا اندازه کنترل های الحاق را تغییر دهد.

Progressbar: درصد پیشرفت کار را نمایش می دهد.

Richtextbox: این کنترل برای دریافت اطلاعات بن فرمت خاص به کار می رود.

Imagelist: برای نمایش لیست تصاویر به کار می رود .

Helpprovider: برای نمایش فایل کمکی به کار می رود .

Tooltip: متنی را به عنوان راهنمای کنترل تعیین می کند.

Contextmenu: برای نمایش منوی میانبر به کار می رود.

Toolbar: برای نمایش ابزارها به کار می رود

Statusbar: نوار وضعیت را به فرم اضافه می کند.

Notifyicon:برای ایجاد برنامه ها یی به کار می رود که در پس زمینه اجرا می شود، مثل برنامه های حفاظت در برابر ویروس .کنترل درایو ها.

Openfiledialog: کادر محاوره باز کردن فایل را ایجاد می کند.

Savefiledialog: کادر محاوره ذخیره کردن فایل را ایجاد می کند.

Iontdialog: کائر محاوره انتخاب فونت را باز می کند.

Color dialog: کادر محاوره انتخاب رنگ را باز می کند.

Printdialog: کادر محاوره prent را باز می کند.

Print previwdialog: کادر محاوره پیش نمایش چاپ را باز می کند.

Print previewcontrol: کنترل پیش نمایش را ایجاد می کند.

Errorprovider: کنترلی را ایجاد می کند که هنگام تولید خطا به کار می رود.

Printdocument: کنترلی را برای چاپ مستندات ایجاد می کند.

Pagessetupdiaiog: کادر محاوره تنظیم چاپگر را باز می کند.

Crystalreportviewer: برای نمایش Crystalreport جهت گزارش گیری به کار می رود.

خاصیت name:برای تعیین نام کنترل (فرم) به کار می رود. نام فرم از قانون نام گذاری متغیرها و کنترل ها پیروی می کند . به عنوان مثال ،نام اولین فرم ،form1 می باشد که با استفاده از خاصیتname می توان این نام را تغییر داد. این خاصیت در داخل پرانتز قرار دارد تا در ابتدای لیست خواص قرار گیرد.

خاصیت allowdrop :مشخص می کند ایا داده هایی که کاربر با ماوس به فرم ارسال می کند ،توسط فرم پذیرفته شود یا خیر.

خاصیت :autoscroll تعیین می کند که ایا نوار جا به جایی به فرم اضافه شود یا خیر. اگر مقدار این خاصیت trueباشد ، نوار جا به جا یی به فرم اضافه می گردد.

خاصیت margins :autoscroll حاشیه های نوار جا به جا یی را تعیین می کند واز دسته خواص تودر تو می باشد و حاوی خواص width (برای تعیین حاشیه عرض نوار جا به جایی ) وheight (برای تعیین حاشیه ارتفاع نوار جا به جایی ) است. اگر مقدار این دو خاصیت صفر باشد ،حاشیه های نوار جا به جایی به صورت پیش فرض انتخاب خواهند شد .

 خاصیت :autoscrollminsize اندازه نوار جا به جا یی را تعیین می کند ودارای خواص width (عرض نوار جا به جایی) و height( ارتفاع نوار جابه جایی) است.

خاصیت backcolor: برای تعیین رنگ زمیینه فرم به کار می رود .در هنگام طراحی به سه روش می توان رنگ زمینه فرم را انتخاب کرد:

 -1مربع جلوی خاصیت را کلیک مضاعف کنید. 

 -2 دکمه مثلث را کلیک کنید ودر لیستی که ظاهر می شود رنگ مورد نظر را انتخاب کنید.

 -3 کلید فلش به طرف پایین +alt را فشار دهید واز لیستی که ظاهر می شود،رنگ مورد نظر را کلیک کنید.

خاصیت backgroundimage: با این خاصیت می توان تصویری را برای زمینه فرم انتخاب کرد .اگر بر روی دکمه 000 کلیک کنید ،کادر محاوره open ظاهر می شود .در این کادر تصویر مورد نظر را انتخاب و دکمه ok را کلیک کنید.

خاصیت cancelbutton: دکمه ای را تععیین می کند که اگر کاربر کلید esc را فشار دهد ، دستورات مربوط به رویداد click ان دکمه اجرا می شوند .

خاصیت causesvalidaion: تعیین می کند که ایا کنترل اعتبار سنجی عمل کند یا خیر .

خاصیت conttextmenu: نام منویی را تعیین می کند که اگر کاربرکلیک راست کرد باید ظاهر شود.

خاصیت controlbox : تعیین می کند ایا در فرم دکمه های بیشینه مربع ،کمینه _ وبستن * ظاهر شوند یا خیر .

اگر این خاصیت به false تغییر یابد،هیچ یک از دکمه ها در فرم ظاهر نمی شوند.

خاصیتcursor : شکل مکان نما را تعیین می کند .29 نوع مکان نما وجود دارد که می توان با کلیک کردن دکمه مثلث یکی از انها را انتخاب نمود.

خاصیت dockpading: مرز( حاشیه )داخل فرم را برای کنترل هایی که به ان الحاق می شوند ، مشخص می کند.

خاصیت drawgrid: تعیین می کند ایا در زمان طراحی نقاط شبکه بر روی فرم ظاهر شوند یا خیر . در حالت پیش فرض این نقاط بر روی فرم ظاهر می گردند 

خاصیت enabled : تعیین می کند ایا فرم فعال باشد یا خیر . اگر فرم غیر فعال باشد(مقدار این خاصیت false باشد)به هیچ رویداد ی پاسخ نمی دهد.

خاصیت font: برای تعیین فونت به کار می رود . برای انتخاب فونت سمت راست این خاصیت را کلیک کنید تا دکمه 000 ظاهر شود .این دکمه را کلیک کنید تا کادر محاورهfont ظاهر شود. در این کادر ، خواص فونت را انتخاب کرده دکمه ok را کلیک کنید.

خاصیت forecolor: با این خاصیت می توان رنگ متن را تعیین کرد.

خاصیت formborderstyle: نوع حاشیه فرم را تعیین می کند. مقادیری که این خاصیت می پذیرد،در جدول 1-2 امده است.

خاصیت gridsize: تعداد پیکسل ها یی را تعیین می کند که یک نقطه شبکه ای در هنگامطراحی باید در ان ها نمایش داده شود . به صورت پیش فرض 8;8 است که اولین 8، خاصیت whdth (عرض) و دومین 8 خاصیتheight (ارتفاع ) را تعیین می کند.

خاصیت helpbutton: تعیین می کند ایا دکمه علامت سؤال ؟در فرم نمایش داده شود یا خیر.

خاصیت icon: هنگامی که اندازه فرم کمینه شود ،فرم به صورت یک ایکن ظاهر می شود .این خاصیت برای تعیین نام فایل ایکن به کار می رود که باید در هنگام کمینه شدن فرم ظاهر شود.برای تغییر ایکن فرم ،در سمت راست ان کلیک کنید تا دکمه ... ظاهر شود .این دکمه را کلیک کرده در کادری که ظاهر می شود،ایکن مورد نظر را انتخاب کرده دکمه open راکلیک کنید.

خاصیت imemode: حالت متد ویراستار ورودی را برای فرم تعیین می کند.

خاصیت ismdicontainer: اگرtrue باشد، فرم می تواند واسط چند سندی را در بر کیرد.

خاصیت keypreview: تعیین می کند ایا رویدادهای صفحه کلید را قبل از رویدادهای کنترلی که مکان نما در ان قرار دارد ،بپذیرد یا خیر.

  خاصیت language: زبان کار کردن کنترل را مشخص می کند.

  خاصیت location: مکان قرار گرفتن کنترل را تعیین می کند. مکان می تواند با دو مقدارx و y تعیین شود.

  خاصیت locked: تعیین می کند ایا محتویات فرم قابل تغییر باشد یا خیر . اگر مقدار این خاصیت true باشد، محتوای فرم را نمی توان تغییر داد.

  خاصیت maximizebox: تعیین می کند ایا دکمه بیشینه (مربع) در عنوان فرم نمایش داده شود یا خیر.

  خاصیت maximizesize: با این خاصیت می توان حداکثر اندازه فرم را تعیین کرد. خواص width (حداکثر عرض ) وheight(حداکثر ارتفاع) برای تعیین حداکثر اندازه فرم به کار می روند .

خاصیت menu: نام منویی را تعیین می کند که باید در فرم نمایش داده شود.

خاصیت maximizebox: تعیین می کند ایا دکمه کمینه ( _ )در عنوان فرم ظاهر شود یا خیر.

خاصیت opacity: میزان شفافیت فرم را تعیین می کند.

خاصیت minimumsize: حداقل اندازه فرم را تعیین می کند.

خاصیت righttoleft: جهت نمایش اطلاعات را مشخص می کند .در حالت پیش فرض ، اطلاعات از چپ به راست نمایش داده می شوند . ولی اگر این خاصیت true باشد، اطلاعات از راست به چپ نمایش داده می شوند.

خاصیت showintasker: تعیین می کند وقتی که اندازه فرم کمینه شود ،ایکن مربوط به فرم در نوار وضعیت ویندوز ظاهر شود یا خیر.

خاصیت size: اندازه فرم را به پیکسل تعیین می کند.

خاصیت startposition: در هنگام شروع اجرای برنامه ، محل قرار گرفتن فرم را تعیین می کند.مقادیری که این خاصیت در زمان طراحی می پذیرد در جدول 2-2 امده است.

خاصیت tag: شیئی را تعیین می کند که اطلاعاتی راجع به کنترل را نگهداری می کند.

خاصیت text: متنی را مشخص می کند که در نوار عنوان فرم ظاهر خواهد شد.

خاصیت topmost: مشخص می کند ایا فرم همواره در بالای همه پنجره های یک برنامه کار بردی باشد یا خیر.

خاصیت transparencykey: وقتی رنگی در این خاصیت تعیین می شود،فضایی از فرم که با رنگ زمینه انتخاب شده است ،شفاف خواهد بود.

خاصیت windowstate: وضعیت پنجره فرم را تعیین می کند. مقدار پیش فرض normal است که د ر این حالت فرم به صورت معمولی ظاهر می شود. اگر مقدار این خاصیت به minimized تغییر یابد ،فرم به اندازه یک ایکن ظاهر می شود ولی اگر مقدار این خاصیت به maximized تنظیم شود ،اندازه فرم بیشینه خواهد بود.

بعضی از رویدادهای فرم عبارتند از :

رویداد activated : وقتی رخ می دهدکه فرم فعال شود.

رویداد backcolorchanged: وقتی رخ می دهدکه زمینه فرم عوض شود.

رویداد back groundimagechanged: وقتی رخ می دهد که تصویر مربوط به زمینه فرم عوض شود.


رویداد bindingcontextchanged: وقتی رخ می دهد که خاصیت bindingcontext (انقیاد زمینه) تغییر می کند 

رویداد causesvalidationchanged: وقتی رخ می دهد که خاصیت causesvalidation تغییر کند.

رویداد changeuicues: وقتی رخ می دهد که صفحه کلید عوض شود.

رویداد click: وقتی رخ می دهد که کنترل کلیک شود.

رویداد closed: وقتی رخ می دهد که فرم بسته شود.

رویداد closing: وقتی رخ می دهد که فرم در حالت بسته شدن باشد. فرق این رویدادها با رویداد closedدر این است که در این رویدادمی توان از بسته شدن فرم جلو گیری کرد ولی در رویدادclosedفرم بسته شده است.

رویداد contextmenuchanged: وقتی بر روی کنترلی کلیک راست کنید،منویی ظاهر می شود که منوی میانبر نام دارد.

رویدادchanged cursor: وقتی رخ می دهد که شکل مکان نما تغییر یابد.

رویداد deactivate: هنگامی که کنترل غیر فعال می شود(به هیچ رویدادی پاسخ ندهد)،این رویدادرخ می دهد (خاصیت enabled مربوط به کنترل false شود).

رویداد dockchanged: وقتی رخ می دهد که الحاق تغییر یابد.

رویداد doubleclick: وقتی رخ می دهد که کنترل کلیک مضاعف شود.

رویداد dragdrop: وقتی کنترلی بر روی این کنترل کشیده شود ئرها گردد ،این رویداد رخ می دهد.

رویدادenter drag: وقتی رخ می دهد که کنترلی وارد فرم شود.

رویدادdrag leave :وقتی کنترلی از طریق کشیدن ازفرم خارج شود رخ می دهد.

رویدادdrag over:وقتی رخ می دهد که کنترلی برروی فرم کشیده شود.

رویدادenabled cheng:وقتی که خاصیت enabled مربوط به کنترلی تغییر می یادب این رویداد رخ می دهد.

رویدادenter:وقتی رخ میدهد که مکان نما به فرم وارد شود.

رویدادfont cheng:وقتی رخ میدهد که خاصیت font کنترلی تغییر یابد.

رویداد fore color changed:وقتی رخ می دهد که رنگ متن تعییریابد.

رویداد give feedback:درمدت زمان کشیدن کنترل ،این رویداد رخ می دهد.

رویدادhelp requested:وقتی رخ می دهد که کاربر برای کنترلی درخواست کمک کند.

رویدادimemodechenged:وقتی رخ می دهد که حالت ویراستارمتد ورودی تغییر یابد.

رویدادinputlanguagechenged:وقتی رخ می دهد که زبان صفحه کلید تغییر کند.

رویدادkeydown:وقتی رخ می دهد که کلیدی از صفحه کلید فشرده شود.

رویدادkey press:وقتی رخ می دهد که کلیدی از صفحه کلید فشرده شود رویداد key pressقبل از رویداد keydown رخ می دهد.

رویدادkeyup:وقتی که کلید فشره شده رها شود این رویداد رخ می دهد این رویداد بعداز رویدادهای key press وkeydown رخ می دهد.

رویداد layout: وقتی رخ می دهد که کنترلی موقعیت کنترل های روی خودش(فرزندان خودش )را تغییر می دهد.

رویدادleave:وقتی رخ می دهد که مکان نما کنترلی را ترک کند.

 رویداد load: وقتی کنترلی بار می شود(قبل از نمایش کنترل ) ،این رویداد رخ می دهد.

رویدادlocation changed: وقتی رخ می دهد که مکان کنترلی تغییرکند.

رویداد maximizeboundschanged: وقتی رخ می دهد که مقدار خاصیت maximizebounds تغییر یابد.

maximum maximum size changed: وقتی رخ می دهد که خاصیت maximum size تغییر یابد.

رویداد mdichildactivemdichildactive: اگر چند سند در برنامه داشته باشیم وقتی که یک فرم فرزند mdi غیر فعال شده یا بسته می شود، این رویداد رخ می دهد.




دوشنبه 7/11/1387 - 16:10
موبایل

مراحل ایجاد جدول در اکسس
قبل از ادامه کار ،یاداوری می شود که چون می خواهیم بانک اطلاعاتی را در پوشه db ذخیره کنیم ، پوشه ای به این نام ایجاد کنید . اکنون می خواهیم مراحل ایجاد جدول را دراکسس دنبال کنیم . به عنوان مثال، برای ایجاد جدول در اکسس مراحل زیر را انجام دهید :
1- اگر سیستم مدیریت بانک اکسس (نرم افزار اکسس) در سیستم شما نصب نیست ان را نصب وسپسراه اندازی کنید . پیوند blank database را در نرم افزار اکسس انتخاب کنید ودر پنجره ای که ظاهر می شود ، در قسمت :file name نام بانک اطلاعاتی را student و در قسمت بالای پنجره ،محل ذخیرهاین فایل را پوشه db انتخاب نمایید ( پسوند این فایل mdb انتخاب خواهد شد ). دکمه create را کلیک کنید.
2- بر روی دکمه table کلیک کنید وسپس گزینه create table in dasign viw را کلیک مضاعف نمایید .
3- در بخش field name نام اولین فیلد ،یعنی stno را وارد کنید .
4- در بخش data typeگزینه number را انتخاب کنید . برای این منظور ،در این بخش کلیک کنید . اکنون text را خواهید دید . به این ترتیب ،نوع فیلد textانتخاب می شود که میخواهیم نوع ان را عددی integer تعیین کنیم .برای این منظور بر روی فلش کلیککنید تا منویی ظاهر گردد. در این منو بر روی گزینه number کلیک کنید تا نوع فیلد عددی انتخاب گردد .اکنون میخواهیم نوع ienteger را برای این فیلد عددی تعیین کنیم .برای این کار در بخش filed properties ،در قسمت field size کلیک کنید تا فلش ظاهر گردد .بر روی این فلش کلیک کنید تا منو باز شود .در این منو گزینه integer را انتخاب کنید . به این ترتیب ،تعریف یک فیلد به اتمام رسیده است .
5- در بخش field nsme نام فیلد دوم ،یعنی name را وارد کنید وسپس در بخش type data کلیک نمایید . نوع این فیلد text انتخاب میشود . در قسمت خواص فیلد،جلوی size field عدد 50 نوشته شده است که طول این فیلد است .در این قسمت کلیک کنید ومقدار 30 رابه جای 50 واردکنید . به این ترتیب ،دو فیلد تعریف شده اند .
6- بقیه فیلدهای جدول را نیز به ترتیب زیروارد کنید (نام و نوع انها را تعیین نمایید ) .

مشخصا ت دانشجویان
نام فیلد شرح نوع فیلد طول
StNo شماره دانشجویی Number Integer
Name نام دانشجو Text 20
ُSex جنسیت Yes/No Yes/No
َAve معدل Number Single
NumUnit تعداد واحد Number Integer

7- برای ذخیره جدول ،گزینه file /save as را انتخاب کنید تا پنجره ای باز شود .در بخش save table نام جدول را sttable وارد کرده دکمه ok را کلیک کنید .اکنون پیامی صادر میشود ومی گوید ایا می خواهید برای جدول فیلد کلید اصلی را مشخص کنید .یا خیر دکمه no را انتخاب کنید . به این ترتیب ،کار طراحی جدول به اتمام میرسد.
ساختار جدول زیررا نیز طراحی کرده به نام gotable ذخیره کنید . یاداوری می شود که از این جدول برای تشریح ارتباط بین جدول ها استفاده خوهیم کرد .
دروس انتخابی توسط دانشجویان
نام فیلد شرح نوع فیلد طول
StNo شماره دانشجویی Number Integer
Code کد درس Number Integer


دوشنبه 7/11/1387 - 16:8
موبایل

ارسال ایمیل به طور ساده در پنج مرحله انجام مى شود. مرحله اول نوشتن ایمیل است. این ایمیل از طریق پروتكل SMTP به سمت اینترنت مى رود . سپس با استفاده از DNS، آدرس ها ترجمه مى شود و از طریق پروتكلSMTP به مقصد تحویل مى شود. در نهایت و در طرف گیرنده، برنامه خواندن ایمیل ها، با استفاده از پروتكل ۳pop، نامه را دریافت مى كند. 

شبكه: سوال اول را این گونه آغاز مى كنم: ایمیل چگونه متولد شد؟ 

تاملینسون: در پاییز سال ،۱۹۷۱ وقتى كه اولین برنامه ارسال ایمیل را نوشتم. 

چگونه به فكر نوشتن برنامه اى به این منظور افتادید؟ 

این فكر از زمانى در من به وجود آمد كه روى یك برنامه نرم افزارى كارمى كردم. این برنامه قرار بود پیام هایى را به سایر كاربران آن كامپیوتر برساند. من روى یك كامپیوتر اشتراك زمانى كار مى كردم. آن كامپیوتر هم با استفاده از برنامه دیگرى، فایل هایى را روى شبكه آرپانت، شبكه اى كه منجر به پیدایش اینترنت گردید، منتقل مى كرد. درواقع من این دو فكر، یعنى ارسال پیام و ارسال فایل را با یكدیگر تركیب كردم و سعى كردم ایمیل را همانند یك فایل از یك كامپیوتر به كامپیوتر دیگرى بفرستم. البته بهتر است این موضوع را هم بگویم كه در سال ۱۹۷۱ كه من به عنوان مهندس، در شركت Bolt Beranek and Newman یا BBN كار مى كردم (و هنوز هم آن جا شاغل هستم)، آن شركت برنده قرارداد ایجاد شبكه آرپانت شد. قرار بود آرپانت شبكه اى باشد كه از طریق آن دانشمندان و متخصصان به وسیله كامپیوتر با یكدیگر در ارتباط باشند. 

اولین emailها چگونه فرستاده شدند؟ آیا ارسال ایمیل در آن موقع فقط جنبه شخصى داشت؟ 

طرز استفاده از ایمیل به سرعت توسط كسانى كه به كامپیوترهاى متصل به شبكه آرپانت دسترسى داشتند، تغییر یافت. در آوریل ۱۹۷۲ اولین پروتكل رسمى براى ارسال ایمیل روى شبكه تدوین شد. طبیعى است كه نخستین كاربردهاى ایمیل با امور بازرگانى و كارى مرتبط بود. مثلا تنظیم قرار یك جلسه یا پرسیدن سوالات فنى. اما به سرعت مشخص شد كه ایمیل مى تواند شخصى نیز بشود، براى پرسیدن سوالات غیرفنى نیز به كار رود و خلاصه به خاطر كاربرد آسانى كه دارد، مى تواند جهت استفاده هاى عمومى به كار گرفته شود. 

آیا مى توانم بگویم كه بین استفاده هاى اولیه از ایمیل و استفاده هایى كه امروز از آن مى شود، تفاوتى حاصل شده است؟ 

نخستین كاربردها نیز چندان متمایز از كاربردهاى امروزى نبودند. البته به دلیل اندك بودن پهناى باند، فقط پیام هاى متنى قابل تبادل بودند و نامه ها همانند امروز مملو از چیزهاى مختلف و انواع ضمایم نبودند. درنتیجه چیزهایى مانند سوالات فنى، دریافت اطلاعات، اعلان هاى مختصر، تغییر ساعات جلسه و چیزهایى از این دست، متن اصلى نامه ها را تشكیل مى دادند. 

ممكن است به طور مختصر نحوه كاركرد و چگونگى ارسال نخستین ایمیل را بیان كنید؟ 

بله. من دو نرم افزار داشتم. یكى از آن ها به نام SNDMSG وظیفه ارسال پیام از كامپیوتر مبدا را به دیگر كاربران مستقر روى همان كامپیوتر برعهده داشت. نرم افزار دیگرى نیز به نام CPYNET مى توانست فایل ها را از طریق شبكه به كامپیوترهاى دیگرى ارسال كند. پیام ها در یك فایل كامپیوترى، (مثلا همان صندوق پستى امروزى یا mailbox) ذخیره مى شدند تا كاربر همان كامپیوتر بتواند پس از login كردن، آن ها را مطالعه كند. من فكر كردم كه اگر بتوان پیام هاى كاربران را با تركیبCPYNET و SNDMSG به كاربران كامپیوترهاى دیگر رساند، كار جالب و مفیدى انجام شده است و این كار را انجام دادم. براى جدا كردن نام كامپیوترى كه كاربر دیگر روى آن واقع است، از نام كاربرى كه اكنونlogin كرده نیز از علامت @ استفاده نمودم. سپس این برنامه ها پیشرفت بیشترى كردند و مى توان گفت در حال حاضر تنها چیزى كه از ایمیل اولیه باقى مانده، همین علامت @ است



دوشنبه 7/11/1387 - 16:6
مورد توجه ترین های هفته اخیر
فعالترین ها در ماه گذشته
(0)فعالان 24 ساعت گذشته