مطلبی در مورد #C

مايكروسافت در مصاف با جاوا، بدنبال ارائه يك زبانكامل بود كه سايه جاوا را در ميادين برنامه نويسی كم رنگ تر نمايد. شايدبهمين دليل باشد كه #C را ايجاد كرد. شباهت های بين دو زبان بسيار چشمگيراست. مايكروسافت در رابطه با ميزان استفاده و گسترش زبان فوق بسيار خوشبينبوده و اميدوار است بسرعت زبان فوق گستردگی و مقبوليتی به مراتب بيشتر ازجاوا را نزد پياده كنندگان نرم افزار پيدا كند.

باتوجه به نقش محوری اين زبان، از آن بعنوان مادر زبانهای برنامه نويسی دردات نت نام برده می شود. مورد فوق به تنهائی، می تواند دليل قانع كننده ایبرای يادگيری اين زبان باشد، ولی دلايل متعدد ديگری نيز وجود دارد كه درادامه به برخی از آنها اشاره می گردد.
مطرح شدن بعنوان يك استاندارد صنعتی
انجمن توليدكنندگان كامپيوتر اروپا (ECMA) زبان #C را در سوم اكتبر سال2001 بعنوان يك استاندارد پذيرفته (ECMA-334) و بدنبال آن تلاش های وسيعیبرای كسب گواهی ISO نيز انجام شده است. زبان فوق در ابتدا توسط شركتمايكروسافت و بعنوان بخشی از دات نت پياده سازی و بلافاصله پس از آن توسطشركت های اينتل، هيوليت پاكارد و مايكروسافت مشتركا، جهت استاندارسازیپيشنهاد گرديد.
زبان#C بگونه ای طراحی شده است كه نه تنها وابستگی به يك Platform خاص راندارد، بلكه در اغلب موارد وابستگی RunTime نيز ندارد. كامپايلر #C میتواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی ازنسخه های اوليه كامپايلر زبان فوق كه توسط برخی از شركت های جانبی ارائهشده است، كدهای #C را به بايت كدهای جاوا كمپايل می كنند. يكی از چنينكامپايلرهائی را می توان در سايت Halcyonsoft.com مشاهده نمود. بنابراينكدهای #C براحتی قابليت حمل بر روی محيط های متفاوت را دارا خواهند بود.
مشخصاتتعريف شده زبان #C با ساير استاندارهای تعريف شده ECMA نظير (ECMA-335)CLI (Common Language Infrastructure) بخوبی مطابقت می نمايند. CLI قلب وروح دات نت و CLR(Common Language Runtime) است. اولين نسخه از كامپايلرزبان #C كه از CLI استفاده می كند، NET Framwork. مايكروسافت است.
باتوجه به موارد گفته شده، مشخص می گردد كه اين زبان بسرعت بسمت استانداردشدن حركت و با تاييد استانداردهای مربوطه از طرف انجمن های معتبر بينالمللی و حمايت فراگير شركت های معتبر كامپيوتری در دنيا مسير خود را بسمتجهانی شدن بخوبی طی می نمايد.
#C چيست ؟
طراحان زبان #C با تاكيد و الگوبرداری مناسب از مزايای زبانهائی نظير ++C،C و جاوا و ناديده گرفتن برخی از امكانات تامل برانگيز و كم استفاده شدهدر هر يك از زبانهای فوق، يك زبان برنامه نويسی مدرن شی گراء را طراحیكرده اند. در مواردی، برخی از ويژگی های استفاده نشده و درست درك نشده درهر يك از زبانهای گفته شده، حذف و يا با اعمال كنترل های لازم بر رویآنها، زمينه ايجاد يك زبان آسان و ايمن برای اغلب پياده كنندگان نرم افزاربوجود آمده است. مثلا C و ++C می توانند مستقيما با استفاده از اشاره گرهاعمليات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتنبرنامه های كامپيوتری با كارائی بالا ضرورت اساسی دارد. اما در صورتيكهعملياتی اينچنين بدرستی كنترل و هدايت نگردند، خود می تواند باعث بروزمسائل (Bugs) بيشماری گردد.
طراحانزبان #C، با درك اهميت موضوع فوق، اين ويژگی را كماكان در آن گنجانده ولیبمنظور ممانعت از استفاده نادرست و ايجاد اطمينان های لازم مسئله حفاظتنيز مورد توجه قرار گرفته است. جهت استفاده از ويژگی فوق، برنامه نويسانمی بايست با صراحت و به روشنی خواسته خود را از طريق استفاده از Keywordهای مربوطه اعلان نمايند( فراخوانی يك توانائی و استفاده از آن).
#Cبعنوان يك زبان شی گراء عالی است. اين زبان First-Class را برای مفهومProperty (Data Member) بهمراه ساير خصائص عمومی برنامه نويسی شی گراءحمايت می كند. در C و ++C و جاوا يك متد get/set اغلب برای دستيابی بهويژگی های هر Property استفاده می گردد. CLI همچنان تعريف Property را بهمتدهای get/ser ترجمه كرده تا بدين طريق بتواند دارای حداكثر ارتباطمتقابل با ساير زبانهای برنامه نويسی باشد. #C بصورت فطری Events ،Declared Value، Reference Type ، Operator Overloading را نيز حمايت میكند.
كد مديريت يافته
با استفاده از نسخه پياده سازی شده #C توسط مايكروسافت، می توان همواره كدمديريت يافته ای را توليد كرد. يك برنامه #C پس از كامپايل، بصورت برنامهای در خواهد آمد كه شامل دستورالعمل های تلفيق شده ( CIL (CommonIntermediate Language است (درست بر خلاف دستورالعمل های مختص يك ماشينخاص). CIL (گاها با نام MSIL(Microsoft Intermediate Language) با بهاختصار IL نيز ناميده می شود ) ، در مفهوم مشابه بايت كدهای جاوا بوده وشامل مجموعه ای از دستورالعمل های سطح پايين قابل فهم توسط تكنولوژی مبتنیبر CLI نظير CLR مايكروسافت خواهد بود. اين برنامه ها بدين دليل كد مديريتيافته، ناميده می شوند كه CLR مسئوليت تبديل اين دستورالعمل ها به كدهایقابل اجرا برروی ماشين و ارائه اغلب سرويس های اساسی برای كدينگ نظير :Garbage Collection، مديريت Heap و عمر مفيد يك Object و يا TypeVerification را فراهم می كند.
روش يادگيری #C
يادگيری اين زبان برای افراديكه دارای سابقه آشنائی با يكی از زبانهایبرنامه نويسی ++C، C و يا جاوا باشند كار مشكلی نخواهد بود، حتی افراديكهدارای آشنائی اوليه با جاوااسكريپت و يا ديگر زبانهای برنامه نويسی نظيرويژوال بيسك می باشند، امكان پذير و راحت خواهد بود. برخی از برنامهنويسان حرفه ای بر اين باور هستند كه #C نسبت به VB.NET با اقبال بيشتر وسريعتری مواجه خواهد شد، چراكه #C نسبت به ويژوال بيسك خلاصه تر است. حتیبرنامه های بزرگ و پيچيده ای كه توسط #C نوشته می گردند خواناتر، كوتاه وزيبا خواهند بود. برخی از ويژگی های ارائه شده در #C نظير UnsignedInteger، Operator OverLoading و امنيت بيشتر Type ها، در VB.NET وجودنداشته و اين امر می تواند دليلی بر فراگيرتر شدن #C نسبت به VB.NET نزدبرنامه نويسان با تجربه باشد.
برایيادگيری هر يك از زبانهای حمايت شده در دات نت، می بايست از BCL (BasicClass Library) مربوط به NET Framework. شروع كرد. #C خود صرفا دارای ۷۷کلمه کليدی يا Keyword بوده كه برای اكثر برنامه نويسان غريب نخواهند بود.در مقابل BCL، دارای ۴۵۰۰ كلاس و تعداد بيشماری متد و Property است كهبرنامه نويسان #C، می توانند از آنها برای انجام عمليات دلخواه خوداستفاده نمايند. شايد يكی از مسائل قابل توجه جهت يادگيری اين زبان برایبرخی از برنامه نويسان حرفه ای عدم وجود برخی از ويژگی ها و امكاناتی باشدكه در گذشته و از طريق ساير زبانهای استفاده شده، بخدمت گرفته می شدند.مثلا عدم وجود امكاناتی جهت توارث چندگانه (MI) سلسله مراتبی يك شئ.
خلاصه
بدون شك فراگيری و تسلط بر زبان #C بمنزله كسب يك پتانسيل با ارزش بوده كهثمرات آن برای برنامه نويسان در حال و آينده ای نه چندان دور بيشتر هويداخواهد شد. استاندارد بودن و وجود كتابخانه ای مملو از كلاس اين اطمينان رابوجود خواهد آورد كه با فراگيری زبان فوق و كسب، مهارت های لازم، به يكتوانائی فرا محيطی جديد دست پيدا خواهيم كرد كه امكان استفاده از آن برروی محيط های متفاوت وجود خواهد داشت. ويژگی ها و قابليت های بيشمار اينزبان از جمله دلايل قانع كننده ديگری است كه فراگيری آن را توجيه پذير ومنطقی می كند.

طريقه ليست کردن فايلها و پوشه های موجود در مسير خاص

طریقه لیست کردن فایلها و فولدرهای موجود در مسیر خاص و نمایش آنها در یک لیست:

procedure FindAll (const Path: String;
                          Attr: Integer;
                          List: TStrings) ;
var
   Res: TSearchRec;
   EOFound: Boolean;
begin
   EOFound:= False;
   if FindFirst(Path, Attr, Res) < 0 then
     exit
   else
     while not EOFound do begin
       List.Add(Res.Name) ;
       EOFound:= FindNext(Res) <> 0;
     end;
   FindClose(Res) ;
end;

حال رویه بالا را مثلا برای مسیر ویندوز فراخوانی میکنیم.

FindAll('C:\Windows\*.*',faAnyFile,ListBox1.Items)

طریقه ذخیره کردن desktop در یک bitmap

برای این کار کافی است تابع زیر را کپی کرده و آن را در یک رویداد دلخواه فراخولنی نمایید.(برای نمایش یا ذخیره کردن میتوانید از image یا  رویداد savetofile استفاده کنید)

function CaptureScreen:TBitmap;
var
  DC : HDC;
  ABitmap:TBitmap;
begin
  DC := GetDC (GetDesktopWindow);
  ABitmap:=TBitmap.Create;
  try
    ABitmap.Width  := GetDeviceCaps (DC, HORZRES);
    ABitmap.Height := GetDeviceCaps (DC, VERTRES);
    BitBlt(ABitmap.Canvas.Handle, 0, 0, ABitmap.Width,
           ABitmap.Height,DC, 0, 0, SRCCOPY);
  finally
    ReleaseDC (GetDesktopWindow, DC);
  end;
Result:=ABitmap;
end;

طریقه اجرای خودبخود برنامه در هنگام بالا آمدن-شروع- ویندوز

procedure RunOnStartup( sProgTitle,  sCmdLine    : string;  bRunOnce    : boolean );
var
  sKey : string;
  reg  : TRegIniFile;
begin
  if( bRunOnce )then
    sKey := 'Once'
  else
    sKey := '';

  reg := TRegIniFile.Create( '' );
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.WriteString( 'SoftwareMicrosoft'+ 'WindowsCurrentVersionRun' + sKey + #0,
    sProgTitle,sCmdLine );
  reg.Free;
end;

طريقه تغییر زبان صفحه کلید(به ویژه فارسی به انگلیسی و بالعکس)

برای این کار کافی در رویداد onshow فرم اصلی یا هر فرم دیگر دستورات زیر را به کار ببرید:

برای فارسی :

  LoadKeyboardLayout('00000429',KLF_ACTIVATE);

برای انگلیسی :

  LoadKeyboardLayout('00000409',KLF_ACTIVATE);

موفق باشید.

نوشتن يک متن روی تصوير پيش زمينه ويندوز ِDESKTOP

برای نوشتن یک متن روی تصویر پیش زمینه ویندوز Desktop wallpaper می توان از کد زیر استفاده کرد :

procedure DrawTextOnDesktop(TextToDraw: string) ;
var
   Handle: HWND;
   Dc: HDC;
   ACanvas: TCanvas;
begin
   Handle := GetDesktopWindow;
   Dc := GetWindowDC(Handle) ;
   ACanvas := TCanvas.Create;
   try
     ACanvas.Handle := DC;
     BeginPath(ACanvas.Handle) ;
     ACanvas.Font.Color := clRed;
     ACanvas.Font.Name := 'Tahoma';
     ACanvas.Font.Size := 30;
     SetBkMode(ACanvas.Handle, TRANSPARENT) ;
     EndPath(ACanvas.Handle) ;
     ACanvas.TextOut(0, 0, TextToDraw) ;
   finally
     ReleaseDC(Handle, ACanvas.Handle) ;
     ACanvas.Free;
   end;
end;

حال پروسیجر بالا را به صورت ذیل فراخوانی کنید :

DrawTextOnDesktop('salam'):

نحوه مرتب کردن اطلاعات درون DBGrid با کلیک بر روی عنوان Title هر ستون آن :

کافی است در رويداد TitleClick مربوط به شی DBGrid کد زیر را بنويسيد :

procedure TSherkatListF.DBGrid1TitleClick(Column: TColumn);
begin
  ADOTable1.Sort:=Column.FieldName;
end;

كتاب مرجع كامل آموزش ASP بخش دهم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش نهم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش هفتم  به زبان فارسي.

دانلود

 

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش هشتم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش پنجم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش ششم  به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش سوم  به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش چهارم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش اول به زبان فارسي.

دانلود

 

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش ASP بخش دوم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

آموزش نكات اوليه C++  به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش   Hackبخش پنجم به زبان فارسي

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش   Hackبخش چهارم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش   Hackبخش دوم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش   Hackبخش سوم به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش   Hackبخش اول  به زبان فارسي

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش نصب کامپونت در دلفی به زبان فارسي

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش مقدماتي Delphi به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب مرجع كامل آموزش PHP به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب  آموزش  SQL به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

كتاب آموزش BDE به زبان فارسي.

دانلود

تذکر:

این کتاب متعلق به وبلاگ http://miladprogramer.blogfa.com/  بوده واستفاده از لینک آن فقط با ذکر منبع ( نام وبلاگ ) مجاز می باشد

مجموعه کتابهای موبایل

کتاب " نزد سلماني "

کتاب " شوخي کوچولو "

کتاب " چند داستان کوتاه "

کتاب " ترجمه کتيبه هاي تخت جمشيد "

کتاب " کوروش کبیر (ذوالقرنین) "

کتاب " خانه اهریمنی "

 با کمک از وبلاگ آریانا

 

مجموعه کتابهای موبایل

کتاب " 150 درس زندگی "

کتاب " مهدی فروغ تابان ولایت "

کتاب " مثلث برمودا "

کتاب " فضيلت بسم الله و ثواب عظيم ان "

کتاب " حکايت تاريخي "

کتاب " مردي تنها در جزيره متروک "

کتاب " موجودات فضایی 2 "

کتاب "عبور از ديوار"

کتاب " داستان هاي شگفت " کامل !!!

سرمشق از سخنان حضرت علی

 

با کمک از وبلاگ آریانا