تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

آموزش VB.NET - بخش دوم

ساختارهای شرطی در Visual Basic.NET در این گفتار برآنیم تا ساختارهای شرطی در ویژوال بیسیک دات نت را بررسی کنیم. این ساختارها If..Then و Select..Case می باشند .

ساختار If..Then
ابتدائی ترین ساختار شرطی در ویژوال بیسیک دات نت ساختار If..Then می باشد. با استفاده از این ساختار هنگامی که شرط مورد نظر برقرار باشد، می توان دستور یا دستورات متعددی را اجرا نمود .


بعنوان مثال در برنامه زیر اگر زمان سیستم بعد از ظهر را نشان دهد، جمله "Good Evening IranASP.NET" بر روی صفحه نمایش داده می شود .

<%
Dim myTime As DateTime
myTime = Now

if Hour(myTime) >= 12 then
Response.write ("Good Evening IranASP.NET !")
end if
%>

همچنین ساختار If..Then عبارت Else را هم پشتیبانی می کند. اگر شرط مربوط به If برقرار نباشد، دستورات موجود در قسمت Else اجرا می شوند. به مثال زیر توجه فرمائید .

<%
Dim myTime As DateTime
myTime = Now

if Hour(myTime) >= 12 then
Response.write ("Good Evening IranASP.NET !")
else
Response.write ("Good Morning IranASP.NET !")
end if
%>

 

ساختار Select..Case در ساختار Select..Case می توان مقداری را با مقادیر مختلفی مقایسه کرده و دستورات مربوط به مقدار یافت شده را اجرا نمود. بعنوان مثال قطعه برنامه زیر پیامهای مختلفی را برحسب نوع مرورگر نمایش می دهد .

<%
Dim strBrowser As String

strBrowser = Request.Browser.Browser
Select Case strBrowser
Case "IE"
Response.Write( "You are using Internet Explorer!" )
Case "Netscape"
Response.WRite( "You are using Netscape!" )
Case Else
Response.Write( "What browser are you using?" )
End Select
%>

دقت داشته باشید که ساختار Select..Case در برنامه فوق دارای یک قسمت Case Else می باشد. هرگاه هیچ یک از حالات مقایسه ای برقرار نبود، دستورات موجود در قسمت Case Else اجرا می گردند. استفاده از Case Else اختیاری است .

متغیرهای ایستا در ASP.NET در ASP همواره از شئ Application برای ذخیره متغیرهای سراسری استفاده می شد. این عمل از لحاظ اختصاص فضای حافظه چندان مناسب نبود. در دات نت می توانیم با سود بردن از خواص متغیرهای ایستا در اکثر موارد نتیجه بهتری بدست آوریم. این روش در اکثر موارد سریعتر از استفاده از شئ Application خواهد بود . در دات نت اکثر اشیاء به صورت کلاس در نظر گرفته می شوند که فایل global.asax نیز از این قائده پیروی می کند. برای استفاده از این روش در ابتدا باید به این فایل نام یک کلا س را اختصاص دهیم. دقت کنید که همیشه سعی می کنیم در نامگذاری از اسامی که راهنمای ما باشند استفاده کنیم. برای مثال در اینجا از نام myglobal استفاده می کنیم. به منظور انجام این کار از کد زیر استفاده می شود .

< %@ Application Classname="MyGlobals" %>

سپس با استفاده از تگ Script متغیرهای خود را تعریف می نماییم. دقت کنید که باید از کلمات کلیدی Public و Shared هم استفاده نمایید .

< Script language="vb" runat="server ">
Public Shared sAli as String = "This is just a test"
< /Script>

با کد بالا ما متغیر خود را به نام sAli تعریف نمودیم. حال با استفاده از نام کلاس و این نام می توا نیم آن را در تمام صفحات خود به صورت مستقیم صدا کنیم .

x = MyGlobals.sAli

کدهای نمونه را می توانید مشاهده کنید .

< %@ Application Classname="MyGlobals" %>
< Script language="vb" runat="server" >
Public Shared sGreeting as String = " This is just a test"
< /Script >
< % @Page Language="VB" % >

< HEAD >
< script Language='vb' runat=server >
Private Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load
Label1.Text = MyGlobals.sGreeting
End Sub
< /script >
< /HEAD >

< asp:label runat=server id=Label1 >< /asp:label >
< / body>
< /HTML >

 

بررسی اعتبار داده ها توسط VB.NET در فرم های وب
فریم ورک دات نت ، شامل مجموعه ای از کنترل های لازم بمنظور بررسی اعتبار و صحت داده های ورودی است که با استفاده از آنان در فرم های وب و ASP.NET ، می توان داده ورودی توسط کاربر در هر یک از فیلدهای موجود بر روی یک فرم وب را بررسی و در صورت عدم رعایت شرایط لازم ، پیام خطاء مناسبی را ارائه نمود. در این مقاله به تشریح نحوه استفاده از کنترل های صحت داده ، خواهیم پرداخت .

کنترل های سرویس دهنده اعتبار داده
کنترل های سرویس دهنده اعتبار داده ، امکان بررسی صحت داده مرتبط با یک کنترل سرویس دهنده ورودی نظیر یک TextBox را فراهم و در صورتیکه ماحصل بررسی بعمل آمده ، مثبت نباشد ، یک پیام خطاء نمایش داده خواهد شد. هر یک از کنترل های اعتبار داده ، عملیات خاصی را در ارتباط با بررسی صحت داده ها انجام خواهند داد . مثلا" می توان با استفاده از CompareValidator ، عملیات بررسی صحت داده ها را در ارتباط با یک مقدار خاص انجام و یا با استفاده از کنترل RangeValidator یک محدوده قابل قبول از مقادیر مورد نظر در ارتباط با یک فیلد ورود اطلاعات را انجام داد. در چنین مواردی ، حتی می توان با استفادده از کنترل CustomValidator ، شرایط خاص مورد نظر خود برای بررسی صحت داده ، تعریف و ایجاد نمود. با توجه به اینکه ، پیام خطاء در کنترل اعتبار داده نمایش داده می شود، می توان مکان مورد نظر برای نمایش پیام خطاء را نیز مشخص کرد . در این راستا ، همچنین می توان با استفاده از کنترل ValidationSummery ، خلاصه ای از نتایج تمامی کنترل های بررسی صحت داده ها را نمایش داد . عملیات بررسی صحت داده در یک صفحه زمانی محقق خواهد شد که یک کنترل Button نظیر Button ، ImageButton و یا LinkButton کلیک گردد . در این رابطه می توان با مقدار دهی False به خصلت CausesValidation ، باعث ممانعت در رابطه با بررسی صحت داده گردید . روش فوق ، در مواردی نظیر فشردن یک دکمه Cancel و یا Clear استفاده می گردد ( در چنین مواردی عملا" ما قصد بررسی صحت داده را نخواهیم داشت ) . مقدار خصلت فوق ، بصورت پیش فرض در ارتباط با یک Button از نوع Cancel و یا Clear مقدار False در نظر گرفته خواهد شد .

در نمونه مثالی که در ادامه تشریح و به بررسی آن خواهیم پرداخت از چهار کنترل اعتبار داده استفاده شده است که لازم است در ابتدا مختصرا" با عملکرد هر یک از آنان آشنا شویم

RequiredFieldValidator کنترل فوق ، مقدار یک کنترل ورودی را بمنظور حصول اطمینان از درج داده در فیلد مورد نظر توسط کاربر ، بررسی می نماید . در صورتیکه مقدار مشخص شده در فیلد مورد نظر نسبت به مقدار اولیه خود تغییر نکرده باشد ،بمنزله عدم صحت و اعتبار داده بوده و نشان دهنده این موضوع است که کاربر در فیلد مربوطه داده مورد نظر را وارد ننموده است . در حقیقت در چنین شرایطی الزامی برای درج داده در ارتباط با یک کنترل ورودی بوجود آمده و کاربر نمی تواند فیلد مربوطه را بدون اعمال تغییرات ( درج داده ) رها نموده و نسبت به آن بی تفاوت باشد . مقدار پیش فرض، یک رشته خالی ( "" ) بوده و نشاندهنده این واقعیت است که می بایست مقداری در آن درج تا در آزمون بررسی صحت داده موفقیت حاصل گردد . در این رابطه فضاء خالی اضافه شده در ابتدا و انتهای کنترل ورودی حذف و در ادامه عملیات بررسی صحت داده انجام خواهد شد . بدین ترتیب از درج فضای خالی در کنترل ورودی برای بررسی صحت داده ممانعت بعمل می آید . در برخی موارد لازم است که در مقابل مقدار پیش فرض (رشته خالی) برای یک کنترل ورودی از مقدار اولیه مورد نظر خود استفاده نمائیم ( با توجه به سیاست های طراحی بخش رابط کاربر ) . استفاده از روش فوق ، در مواردیکه دارای یک مقدار پیش فرض در ارتباط با یک کنترل ورودی بوده و قصد داریم که کاربر را ملزم به انتخاب یک مقدار دیگر نمائیم ، توصیه می گردد . مثلا" می توان از یک کنترل ListBox بهمراه یک Entry انتخاب شده بصورت پیش فرض که شامل دستورالعمل هائی برای کاربر بمنظور انتخاب یک آیتم از لیست است ، استفاده نمود . در چنین مواردی لازم است که کاربر یک آیتم دیگر موجود در لیست را از طریق کنترل انتخاب و در این رابطه نمی بایست کاربر آیتمی را انتخاب نماید که شامل دستورالعمل است . بدین ترتیب در صورتیکه کاربر همان مقدار اولیه پیش فرض را انتخاب نماید ، کنترل RequiredFieldValidator ، پیام خطاء مورد نظر خود را نمایش خواهد داد . بمنظور مشخص نمودن مقدار اولیه یک کنترل ورودی، می توان از خصلت InitialValue استفاده کرد .

با توجه به سیاست های طراحی رابط کاربر ، می توان از چندین Validator در ارتباط با یک کنترل ورودی مشابه و یکسان استفاده نمود. مثلا " می توان از یک کنترل RequiredFieldValidator ، بمنظور حصول اطمینان از درج داده در کنترل مورد نظر استفاده و در همان حال از کنترل دیگری نظیر RangeValidator نیز استفاده تا این اطمینان ایجاد گردد که ورودی درج شده در کنترل مورد نظر در محدوده قابل قبول و مجاز می باشد .

کنترل  ValidationSummary کنترل فوق ، امکان ارائه اطلاعات مختصر در رابطه با تمامی کنترل های بررسی صحت داده موجود در یک صفحه وب و در یک موفقعیت ( مکان ) را فراهم می نماید. خلاصه اطلاعات موردنظر را می توان با استفاده از روش های متفاوتی نظیر : یک پاراگراف ، یک لیست و یا یک Bulleted list . ارائه نمود. نحوه نمایش اطلاعات با استفاده از خصلت DisplayMode مشخص خواهد شد .پیام خطاء نمایش داده شده در کنترل ValidationSummary برای هر یک از کنترل های بررسی صحت داده موجود در صفحه ، توسط خصلت ErrorMessage مربوط به هر یک از کنترل ها ، مشخص می گردد . در صورتیکه خصلت ErrorMessage مربوط به کنترل بررسی صحت داده ، مقداردهی نگردد، هیچگونه پیام خطائی در ارتباط با آن کنترل خاص توسط کنترل ValidationSummary نمایش داده نخواهد شد. برای مشخص نمودن عنوان گزارش خطاء، می توان از خصلت HeaderText استفاده کرد. بمنظور کنترل نمایش اطلاعات کنترل ValidationSummary ، می توان از خصلت ShowSummary استفاده نمود . برای نمایش خلاصه اطلاعات مورد نظر در یک Message Box می توان مقدار خصلت ShowMessageBox را True در نظر گرفت .

کنترل RegularExpressinoValidator کنترل فوق ، بمنظور تطبیق داده ورودی در یک کنترل ورودی با یک الگوی تعریف شده توسط یک عبارت ، استفاده می گردد . کنترل فوق ، امکان بررسی لازم در خصوص دنباله کاراکترهای مورد انتظار نظیر آدرس های پست الکترونیکی ، شماره های تلفن و یا کد پستی را فراهم می نماید . با استفاده از خصلت ValidationExpression ، عبارت مورد نظر بمنظور بررسی صحت داده کنترل ورودی، تعریف و مشخص می گردد . گرامر عبارت بررسی صحت داده بر روی سرویس گیرنده و سرویس دهنده با یکدیگر متفاوت است . در سرویس گیرنده ، بمنظور مشخص نمودن عبارت مورد نظر از گرامر Jscript و بر روی سرویس دهنده از گرامر Regex استفاده می گردد . با توجه به اینکه، گرامرعبارات Jscript زیر مجموعه ای از گرامر Regex می باشد ، توصیه می گردد از گرامر Jscript برای تعریف عبارت مورد نظر خود استفاده تا شاهد نتایج یکسانی بر روی سرویس گیرنده و سرویس دهنده باشیم .

کنترل CompareValidator کنترل فوق، مقدار ورودی در یک کنترل ورودی را با مقدار دیگر مقایسه می نماید . از خصلت ControlToValidate برای مشخص نمودن کنترل ورودی اول و از خصلت ControlToCompare برای مشخص نمودن کنترل ورودی دوم که می بایست با یکدیگر مقایسه گردند ، استفاده می شود .درصورتیکه ماحصل مقایسه یکسان باشد، از مقدار مشخص شده توسط خصلت ControlToCompare ، استفاده می گردد .

استفاده از کنترل های اعتبار داده ASP.NET توسط ویژوال استودیو دات نت
بررسی صحت داده ورودی توسط کاربر در بخش رابط کاربر هر نرم افزار ، از جمله عملیاتی است که اولا" وقت زیادی را بخود اختصاص و ثانیا" در برخی موارد چالش های خاص خود را بدنبال خواهد داشت . فریمورک دات نت در این رابطه مجموعه ای از کنترل های بررسی صحت داده را ارائه که با استفاده از آنان می توان اقدام به بررسی داده در کنترل های ورودی موجود بر روی یک فرم وب و ارائه پیام خطاء مورد نظر در صورت عدم رعایت ضوابط و شرایط موجود توسط کاربر بمنظور ورود اطلاعات نمود . در ادامه به بررسی مثالی خواهیم پرداخت که با ارائه یک فرم از کاربر درخواست تکمیل و ارسال اطلاعات خواهد شد. در این رابطه از کاربر درخواست نام ، آدرس پست الکترونیکی و رمز عبور می گردد . پس از ارسال اطلاعات توسط کاربر ، کنترل های بررسی صحت و اعتبار داده موجود بر روی فرم ، عملیات تائید داده ورودی توسط کاربر را انجام و درصورت عدم رعایت ضوابط تعریف شده در ارتباط با هر یک از کنترل های ورودی ، پیام خطائی ،بصورت مختصر و در قسمت انتهائی صفحه نمایش داده خواهد شد .

ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET بمنظور ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET مراحل زیر را دنبال می نمائیم :

اجرای برنامه ویژوال استودیو دات نت

از طریق منوی File ، گزینه New و در ادامه Project را انتخاب نمائید .

در جعبه محاوره ای New Project ، در بخش Project Types گزینه Visual Bacic Projects را انتخاب ( کلیک ) و در ادامه ASP.NET Web Application را انتخاب نمائید .

در فیلد Location ، بجای نام پیش فرض #WebApplication ، نام ValidationData را در نظر می گیریم . در صورتیکه از یک سرویس دهنده محلی استفاده می گردد ، می توان نام سرویس دهنده را http://localhost در نظر گرفت . بدین ترتیب در فیلد Location ، آدرس مربوطه بصورت زیر نشان داده خواهد شد : http://localhost/ValidationData ایجاد یک فرم وب نمونه بمنظور ایجاد یک فرم وب در پروژه ایجاد شده در مرحله قبل ، مراحل زیر را دنبال می نمائیم :

اضافه نمودن یک فرم جدید با نام ValidUser.aspx به برنامه وب ASP.NET در ویژوال استودیو دات نت . بمنظور انجام خواسته فوق ، دو مرحله زیر را دنبال می نمائیم :

مرحله یک : در Solution Explorer ، بر روی گره Project کلیک سمت راست نموده و گزینه Add و در ادامه گزینه Add Web Form انتخاب گردد . مرحله دو : درفیلد Name ، نام ValidUser.aspx را درج و در ادامه گزینه Open انتخاب گردد .

در ادامه، کدهای زیر را پس از استقرار در پنجره نمایش HTML مربوط به ValidUser.aspx ، بین تگ های شروع و پایان مستقر می نمائیم .

تگ های HTML درج شده در ValidUser.aspx

< table >
< tr width = " 100 " >
نام
< /td >
< td > < input id= " txtUserName" type = " text" size = "20" maxlength =" 15" runat= " server" NAME = "txtUserName " > *
< /td >
< /tr >
< tr width= "100" >
< td >
آدرس پست الکترونیکی
< td > < input id= "txtEmail" type= "text" size ="35" maxlength= "30" runat= "server" NAME= " txtEmail" >
( < A > Ino@Srco.ir < /A > )
< /td >
< /tr>
< tr width= "100" >
< td > رمز عبور < /td >
< td > < input id= "txtPassword" type= "password" size ="15" maxlength= "10" runat= "server" NAM E="txtPassword" > *
< /td >
< /tr >
< tr width="100" >
< td > تایپ مجدد رمز عبور < /td >
< td > < input id= "txtConfirmPassword" type= "password" size= "15" maxlength= "10" runat= "server" NAME= "txtConfirmPassword" > *
< /td >
< / tr >
< / table >

کنترل های RequiredFieldValidator ، بررسی لازم در خصوص داده ورودی برای هر یک از فیلدهای موردنظر در ارتباط با کنترل های مشخص شده را انجام خواهد داد . در این رابطه کنترل های RequiredFieldValidator را در ارتباط با فیلدهای UserName و Password به فرم اضافه می نمائیم . در ValidUser.aspx ، و پنجره HTML مستقر و کد زیر را بعد از تگ < Table/ > اضافه می نمائیم .

< asp :RequiredFieldValidator id= valUserNameRequired
ControlToValidate =txtUserName ErrorMessage = "نام کاربر می بایست وارد شود " EnableClientScript =true Display= None Runat= server/ >
< asp:RequiredFieldValidator id= valPasswordRequired
ControlToValidate=txtPassword ErrorMessage="رمز عبور می بایست وارد شود " EnableClientScript=true Display =None Runat= server/ >
< asp :RequiredFieldValidator id= valConfirmPasswordRequired
ControlToValidate= txtConfirmPassword ErrorMessage= "تائید مجدد رمز عبور می بایست وارد شود "
EnableClientScript= true Display= None Runat =server/ >

فیلدهای رمز عبور تاکید مضاعفی است که کاربر دومرتبه و بدرستی رمز عبور خود را وارد نماید. کنترل CompareValidator محتویات دو فیلد را با یکدیگر مقایسه و در صورت عدم یکسان بودن آنان ، پیام خطائی نمایش داده خواهد شد . در این رابطه از یک کنترل CompareValidator بمنظور بررسی صحت ( یکسان بودن ) فیلدهای رمز عبور استفاده شده است . بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از کنترل های اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .

< asp :CompareValidator id= valComparePassword
ControlToValidate =txtConfirmPassword ErrorMessage =" فیلدهای رمز عبور می بایست یکسان باشند " ControlToCompare =txtPassword Display =None
EnableClientScript =true Runat =server/ >

در برخی موارد لازم است از نوع خاصی بررسی صحت و اعتبار داده استفاده گردد . فیلد آدرس پست الکترونیکی در مثال فوق ، نمونه ای در این زمینه است . در این رابطه از کنترل RegularExpressionValidator استفاده تا این اطمینان حاصل گردد که کاربران فرمت اولیه برای درج یک آدرس پست الکترونیکی را رعایت نموده اند . محتویات فیلد فوق مجددا" بر اساس یک عبارت ( تعریف یک الگو ) بررسی شده و در صورتیکه محتویات مورد نظر با عبارت تعریف شده مطابقت نداشته باشد ، یک پیام خطاء نمایش داده خواهد شد . در این رابطه لازم است که یک کنترل RegularExpressionValidator بر روی فرم اضافه تا فرمت داده آدرس پست الکترونیکی ورودی توسط کاربر را بررسی و از صحت و رعایت فرمت مورد نظر اطمینان حاصل گردد . بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از کنترل های اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .

< asp :RegularExpressionValidator ID= valEmailAddress
ControlToValidate= txtEmail ValidationExpression = ".* @.* .. *" ErrorMessage = "آدرس پست الکترونیکی درست نمی باشد "
Display =None EnableClientScript =true Runat= server/ >

در ادامه ، بر روی فرم ValidUser.aspx ، یک دکمه "ارسال" را اضافه می نمائیم .بدین ترتیب به کاربر اجازه داده خواهد شد تا صفحه مورد نظر را برای سرویس دهنده ارسال و عملیات بررسی صحت و اعتبار داده درج شده در هر یک از فیلدهای موجود بر روی فرم ، انجام شود. بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser. aspx ، کد زیر را پس از کنترل های اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .

< br >
< input type = submit id = cmdSumbit value = submit runat =server / >

در نهایت ، از یک کنترل ValidationSummary بمنظور نمایش تمامی خطاهای بوجود آمده در یک ناحیه خاص بر روی فرم استفاده می شود. بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از دکمه "ارسال" اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .

< br >
< asp :ValidationSummary id= ValSummary HeaderText= " The following
errors were found :" ShowSummary=True DisplayMode=List Runat=server / >

پس از اتمام مراحل فوق ، با اتتخاب گزینه Save ، فرم وب ایجاد شده ذخیره و در ادامه می توان با استفاده از منوی Debug و گزینه Start ، امکان ایجاد و اجرای برنامه وب را فراهم نمود .

 

اجرای برنامه
در صورتیکه کاربر دکمه "ارسال" را بدون درج هیچگونه اطلاعاتی در فیلدهای مربوطه ، فعال نماید ، سه پیام خطاء بصورت زیر نمایش داده خواهد شد . در صورتیکه کاربر، دو رمز عبور را وارد که با یکدیگر یکسان نمی باشند ، پیام خطاء زیر ارائه خواهد شد . در صورتیکه کاربر یک آدرس پست الکترونیکی را وارد که دارای فرمت مناسب نباشد ، ، پیام خطاء زیر نمایش داده خواهد شد


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

آموزش VB.NET - بخش سوم

دستیابی به بانک اطلاعاتی Access با استفاده از VB.NET در این مقاله قصد داریم به نحوه بازیابی و نمایش اطلاعات موجود در یک بانک اطلاعاتی Access اشاره نمائیم . هدف از مقاله فوق ، پرداختن به تمامی رویکردهای موجود در این زمینه نبوده و صرفا" به معرفی یکی از گزینه های موجود در این زمینه اشاره خواهد شد. در این راستا از تکنولوژی های ASP.NET ، ADO.NET و VB.NET استفاده خواهد شد . از کلاس های OleDbConnection ، OleDbCommand و OleDbDataReader مربوط به ADO.NET بمنظور انجام عملیات لازم در ارتباط با بانک اطلاعاتی ، از ASP.NET بمنظور ایجاد فرم وب و ارائه داده با استفاده از کنترل سرویس دهنده Table و از زبان VB.NET بمنظور نوشتن دستورالعمل های مورد نظر استفاده می گردد .

در ابتدا لازم است با سه کلاس ADO.NET که در ادامه از آنان استفاده خواهد شد ، بیشتر آشنا شویم :

کلاس  OleDbConnection :شی فوق ، یک اتصال منحصر بفرد با یک منبع داده را ایجاد می نماید. در رابطه با یک بانک اطلاعاتی سرویس گیرنده / سرویس دهنده ، این امر معادل یک اتصال شبکه به سرویس دهنده است . با توجه به قابلیت های حمایت شده توسط native OLE DB Provider ، برخی از متدها و یا خصلت ها مربوط به شی OleDbConnection ممکن است در دسترس و قابل استفاده نباشد . زمانیکه نمونه ای از OleDbConnection ایجاد می گردد ، تمامی خصلت های مربوطه ، مقدار اولیه خود را دارا خواهند بود . پس از اتمام عملیات موردنظر در ارتباط با بانک اطلاعاتی ، می بایست با فراخوانی Close و یا Dispose اقدام به غیر فعال نمودن اتصال ایجاد شده با بانک اطلاعاتی مربوطه نمود .

کلاس OleDbCommand : یک عبارت SQL و یا Stored procedure را بمنظور اجراء در رابطه با یک منبع داده ارائه می نماید. کلاس فوق از متدهای زیر بمنظور اجرای دستورات در رابطه با یک منبع داده استفاده می نماید .
ExecuteReader : متد فوق ، دستوراتی را اجراء می نماید که خروجی آنان شامل سطرهائی خواهد بود .
ExecuteNonQuery : باعث اجرای دستوراتی نظیر SQL INSERT,DELETE,UPDATE و SET خواهد شد .
ExecuteScalar : بازیابی صرفا" یک مقدار از یک بانک اطلاعاتی

کلاس  OleDbDataReader : متد فوق ، امکان خواندن سطرهائی از داده موجود در یک منبع داده را فراهم می نماید( فقط بسمت جلو) . بمنظور ایجاد یک OleDbDataReader ، می بایست متد ExecuteReader مربوط به شی OleDbCommand فراخوانده شود. مادامیکه OleDbDataReader در حال استفاده است (اتصال مرتبط OleDbConnection ) ، عملیات دیگری را در ارتباط با OleDbConnection نمی توان انجام داد .

امکانات مورد نیاز
برای دنبال نمودن این مقاله و اجرای نمونه مثالی که در ادامه بررسی می گردد ، به امکانات زیر نیاز خواهد بود :
نصب یکی از نسخه های ویندوز 2003
نصب IIS
نصب فریمورک دات نت نسخه 1.0 ,یا نسخه 1.1
یک بانک اطلاعاتی نمونه اکسس نظیر Northwind

ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET بمنظور ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET مراحل زیر را دنبال می نمائیم :
اجرای برنامه ویژوال استودیو دات نت
از طریق منوی File ، گزینه New و در ادامه Project را انتخاب نمائید .
در جعبه محاوره ای New Project ، در بخش Project Types گزینه Visual Bacic Projects را انتخاب ( کلیک ) و در ادامه ASP.NET Web Application را انتخاب نمائید .
در فیلد Location ، بجای نام پیش فرض #WebApplication ، نام TestAccessDB را انتخاب نمائید . در صورتیکه از یک سرویس دهنده محلی استفاده میگردد ، می توان نام سرویس دهنده را http://localhost در نظر گرفت . بدین ترتیب در فیلد Location ، آدرس مربوطه بصورت زیر نشان داده خواهد شد : http://localhost/TestAccessDB

ایجاد یک فرم وب نمونه
در نمونه کد نوشته شده از کنترل سرویس دهنده Table مربوط به ASP.NET استفاده شده که بصورت پویا یک نمایش ساده از داده بازیابی شده را نشان خواهد داد. ASP.NET  مجموعه متنوعی از کنترل های انعطاف پذیر را ارائه که می توان از آنان با توجه به رویکردهای متفاوت در رابطه با نمایش داده استفاده نمود. بمنظور ایجاد یک فرم وب در پروژه ایجاد شده در مرحله قبل ، مراحل زیر را دنبال می نمائیم :

اضافه نمودن یک فرم جدید با نام DataSample.aspx به برنامه وب ASP.NET در ویژوال استودیو دات نت . بمنظور انجام خواسته فوق ، دو مرحله زیر را دنبال می نمائیم : مرحله یک : در Solution Explorer ، بر روی گره Project کلیک سمت راست نموده و گزینه Add و در ادامه گزینه Add Web Form انتخاب گردد . مرحله دو : درفیلد Name ، نام DataSample.aspx را درج و در ادامه گزینه Open انتخاب گردد .

از طریق Toolbox مربوط به Web Forms Tab ، یک Table ASP.NET Server Control را انتخاب ( Drag ) و بر روی صفحه aspx . مستقر نمائید ( در حالت Design view )
در Properties نام ID را به DisplayTable تغییر دهید .
در Solution Explorer ، بر روی صفحه aspx   ، کلیک سمت راست نموده و گزینه View Code را انتخاب نمائید .
مرجع namespace زیر را در بالاترین قسمت فایل کلاس code-behind وارد نمائید .
Imports System.Data.OleDb

کد زیر را در ارتباط با رویداد Page_load در نظر می گیریم :

Page_Load Event handler
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
استفاده از یک متغیر رشته ای بمنظور ذخیره سازی Connectionstring'

Dim connectString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=C:MyDBNWIND.MDB"
ایجاد یک شی OleDbConnection و ارسال مقدار متغیر ConnectionString '

Dim cn As OleDbConnection = New OleDbConnection(connectString)
فعال نمودن Connection'
cn.Open()
استفاده از یک متغیر بمنظور ذخیره عبارت SQL'

Dim selectString As String = "SELECT CustomerID, ContactName, Phone FROM Customers"
ایجاد یک شی OledbCommand'
در این خط متغیر عبارت SQL و شی OleDbConnection ، ارسال می گردد '
Dim cmd As OleDbCommand = New OleDbCommand(selectString, cn)
ارسال CommandText به Connection و ایجاد یک OleDbDataReader '
OleDbDataReader از نوع " فقط بسمت جلو " خواهد بود '
Dim reader As OleDbDataReader = cmd.ExecuteReader()
تنظیم عرض جدول '
DisplayTable.Width = Unit.Percentage(90.0)
ایجاد یک سطر جدید برای اضافه نمودن عنوان جدول '
Dim tableHeading As TableRow = New TableRow()
ایجاد و اضافه نمودن سلول های شامل ستون Customer ID '
Dim customerIDHeading As TableHeaderCell = New TableHeaderCell()
customerIDHeading.Text = "Customer ID"
customerIDHeading.HorizontalAlign = HorizontalAlign.Left
tableHeading.Cells.Add(customerIDHeading)
ایجاد و اضافه نمودن سلول های شامل ستون Contact Name '
Dim contactNameHeading As TableHeaderCell = New TableHeaderCell()
contactNameHeading.Text = "Contact Name"
contactNameHeading.HorizontalAlign = HorizontalAlign.Left
tableHeading.Cells.Add(contactNameHeading)
ایجاد و اضافه نمودن سلول های شامل ستون Phone '
Dim phoneHeading As TableHeaderCell = New TableHeaderCell()
phoneHeading.Text = "Phone"
phoneHeading.HorizontalAlign = HorizontalAlign.Left
tableHeading.Cells.Add(phoneHeading)
DisplayTable.Rows.Add(tableHeading)
تکرار در بین داده انتخابی نتایج و افزودن داده برای هر یک از ستون های مورد نظر در جدول '
While(reader.Read())
Dim detailsRow As TableRow = New TableRow()
Dim customerIDCell As TableCell = New TableCell()
customerIDCell.Text = reader("CustomerID").ToString()
detailsRow.Cells.Add(customerIDCell)
Dim contactNameCell As TableCell = New TableCell()
contactNameCell.Text = reader("ContactName").ToString()
detailsRow.Cells.Add(contactNameCell)
Dim phoneCell As TableCell = New TableCell()
phoneCell.Text = reader("Phone").ToString()
detailsRow.Cells.Add(phoneCell)
DisplayTable.Rows.Add(detailsRow)
End While
بستن Connection'
reader.Close()
cn.Close()
End Sub

مقدار متغیر ConnectString در ابتدای کد نوشته شده فوق را تغییر و آن را به محلی که بانک اطلاعاتی موجود است ، اشاره دهید .
از طریق منوی File ، گزینه Save All را انتخاب تا فرم وب و سایر فایل های مرتبط با پروژه ، ذخیره گردد .
از طریق منوی Build ، گزینه Build Solution را بمنظور ایجاد پروژه ، فعال نمائید .
در Solution Explorer ، بر روی DataSample.aspx کلیک سمت راست و در ادامه گزینه View in Browser را انتخاب نمائید . در ادامه صفحه در مرورگر نمایش و شامل داده موجود در بانک اطلاعاتی مربوطه است .

اشکالات و خطاهای احتمالی
درزمان اجراء ، ممکن است با خطائی مانند زیر مواجه شویم :

The Microsoft Jet database engine cannot open the file 'C:MyDBNWIND.MDB'.
It is already opened exclusively by another user, or you need permission to view its data.

خطای فوق ، اغلب بدلیل عدم داشتن مجوز لازم بمنظور دستیابی به فایل ( فایل بانک اطلاعاتی با انشعاب mdb ) می باشد . بصورت پیش فرض ، ASP.NET تحت ASPNET account در فریمورک دات نت نسخه یک و یا NetworkService در فریمورک دات نت نسخه 1،1 اجراء می گردد.در این رابطه لازم است تغییرات لازم در رابطه با مجوز دستیابی به فایل mdb . و فولدری که شامل فایل است ، اعمال گردد .

از نصب عناصر مورد نیاز Microsoft Jet database بر روی سیستم ، مطمئن گردید. در صورتیکه MDAC 2.6 نصب شده باشد ( Microsoft Data Access Components 2.6) ، عناصر Jet را شامل نمی گردد . در چنین مواردی می بایست آخرین نسخه Jet 4.0 Service Pack ، بر روی سیستم نصب گردد .


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

در این مقاله به معرفی افزونه‌های مفید در ویژوال استودیو می پردازیم.

مایكروسافت ویژوال‌استودیو، بدون شك بزرگ‌ترین، ساده‌ترین و در عین حال، مفیدترین محیط تولید كد ویژوال است. یكی از ویژگی‌های هوشمندانه این ویرایشگر كد، وجود سیستم افزونه‌ها (همانند فایرفاكس) برای برنامه‌نویسان است. برنامه‌نویسان می‌توانند با نصب افزونه‌های مفید، قدرت كدنویسی خود را بالا ببرند و از اشتباهات خود بكاهند، در این‌جا، تعدادی افزونه كه وجودشان كمابیش ضروری به‌نظر می‌رسد را معرفی خواهیم كرد: (لینك‌های دریافت در پی‌نوشت درج شده است.)

 

1. AnkhSVN، كسانی كه با SVN كار می‌كنند، حتما از این افزونه استفاده كنند. اتصال به SVN و عملیات مرتبط با آن، با عنخ‌ از این ساده‌تر نمی‌شود.

2. C# SortCode Macro، این ماكروی كوچك و جمع و جور، اعضای كلاس‌ها و متدها را بر اساس حروف الفبا مرتب و گروه‌بندی می‌كند. این ماكرو در ویژوال استودیو 2005 اجرا می‌شود و گفته می‌شود حتی نسخه‌های 2003 هم می‌توانند آن را اجرا كنند. كافی است وقتی این ماكرو را لود می‌كنید، انجام عملیات را تایید كنید.

3. CodeKeep Add-in، این افزونه برای سایت CodeKeep.net است كه به‌شما اجازه می‌دهد كدهای كوچكی كه نوشته‌اید را به وب‌سایت Codekeep بفرستید و با دیگران به اشتراك بگذارید. بعد از نصب حتما فایل Readme.txt را مطالعه كنید، چرا كه سه فایل باید به‌صورت دستی در سیستم كپی شوند.

4. Code Style Enforcer، آیا شما كدهای بدون غلط می‌نویسید؟ مسلما پاسخ به این سوال منفی است، اما با كمك این افزونه، می‌توانید به‌صورت در جا كدهای خود را بر اساس كدهای استاندارد تصحیح كنید. این افزونه این عملیات را بر اساس یك سری قواعد از پیش تعیین شده انجام می‌دهد و خود شما حتی می‌توانید قواعد جدیدی برای كدنویسی خود به این افزونه تحمیل كنید. قبل از نصب این افزونه باید DXCore را از سایت زیر دریافت كنید:

http://www.devexpress.com/Products/NET/DXCore/

5. CopySourceAsHtml، اگر بلاگر هستید، یا اصلا می‌خواهید كدهای خود را در یك وب‌سایت به‌نمایش بگذارید، با كمك این افزونه می‌توانید خروجی HTML كدهای خود را دریافت كنید و با همان شكل و رنگ‌بندی، به وب‌سایت خود اضافه كنید.

6. ماكروEncapsulateAllNonPriveFelds، این ماكرو كه هنر Reflection IT‌ است، فیلدهای خصوصی و ویژگی‌های عمومی را برای شما تولید می‌كند. تنها كافی است كه یك متغیر را به‌صورت عمومی تعریف كنید و آن‌را انتخاب كنید و ماكرو را اجرا كنید. بدین ترتیب، به‌ازای هر فیلد عمومی‌ای كه ایجاد كرده‌اید، یك فیلد خصوصی و یك ویژگی عمومی خواهید داشت، یادتان باشد كه اگر SortCode هم نصب است، اول آن را ببندید، بعد این ماكرو را اجرا كنید كه با همدیگر تداخل نداشته باشند.

7. Modeling Power Toys، اگر شما در شركت محل كارتان، نقش طراح كلاس‌ها را دارید، در این صورت پیشنهاد اكید این است كه این افزونه را نصب كنید، در زیر بخشی از امكانات این افزونه را به‌اختصار بیان می‌كنیم:

جستجوی دیاگرام‌ها، جدول شناور، پنجره با قابلیت زوم، ایجاد كامنت برای كلاس‌ها، خروجی برای وب، مرور سریع، دستورات كوچك برای ایجاد و یا مدیریت كلاس‌ها و ...

8. Pinvoke.Net، این افزونه را ساایت Pinvoke.net تولید كرده است. این افزونه شبیه به CodeKeep‌ است با این تفاوت كه به توسعه‌دهندگان این امکان را می‌دهد انواع داده‌های تعریف شده و اطلاعاتی دیگر در مورد فراخوانی‌های Win32 را پیدا کرده، ویرایش کنند و به کدهای خود اضافه کنند.

9. Regions، این افزونه امکان ساختن و مدیریت مناطق کد را به سادگی برای شما فراهم می‌کند.اگر تابه‌حال هرگز از مناطق‌ كد استفاده نكرده‌اید، حتما این پست را مطالعه كنید:

http://trackerrealm.com/blogs/2007/04/make-use-of-regions-when-developing-c.html

10. SonicFileFinder، وقتی تعداد فایل‌های Solution بالا می‌رود، پیدا كردن آن كاملا زمان‌بر خواهد شد. به‌كمك این راه حل، می‌توانید كلاس‌های خود را بیابید. جستجوی ان ساده است، مثلا اگر شما كلاسی با عنوان MyClass.cs دارید، با جستجوی *Class، و یا حتی MC می‌توانید آن را پیدا كنید.

11. Regionerate، این افزونه یک برنامه رایگان است و به‌سرعت قواعد آرایشی کدهای شما را رعایت می‌كند. با دو کلیک ساده کدهای شما مرتب شده و فیلدها و سازنده‌ها و ویژگی‌ها را در مناطق کد مربوط به خود قرار می‌دهد. می‌توانید این افزونه را هم مطابق میل خود، سفارشی كنید. همچنین، امکان مرتب‌سازی متدها را بر اساس حروف الفبا، و اعضای عمومی و خصوصی را در Region‌های مخصوص به‌خود از دیگر ویژگی‌های این افزونه بسیار مفید است.

12. DPack، یک مجموعه رایگان از ابزارهای ویژوال استودی 2003 و 2005 است که بهره‌وری‌های توسعه دهندگان را افزایش می‌دهد. این بسته شامل مرورگر كد، مرورگر فایل، مرورگر Solution، مرورگر Framework، بوك‌مارك‌های شمارشی، جستجوی كد، آمارگیری از Solution و پشتیبان‌گیری از آن است.

13. BlogMyCode، برنامه‌نویسان بلاگ‌نویس به‌هوش، این افزونه این امکان را می‌دهد که کدهای خود را از داخل ویژوال استودیو در وبلاگ قرار دهیم، این کار با یک کلیک ساده انجام می‌پذیرد، کافیست کد موردنظر را انتخاب کرده، سپس با کلیک راست گزینه Blog This را انتخاب نمایید.

14. Clipboard Manager، افزونه‌ای ساده در عین حال مفید برای مدیریت کلیپ‌بورد، این افزونه 10 تا از آخرین ورودی‌های کلیپ‌بورد را به شما نشان می‌دهد.  یک نکته که در استفاده از این افزونه باید به آن توجه داشت، این است که مقدار پیش‌فرض کلید میانبر CTRL+ALT+V را باید برای استفاده از این افزونه تغییر داد. برای این کار از منو Tools->Options را انتخاب كرده و در پنجره باز شده گزینه Enviroment را انتخاب كرده (اگر این گزینه وجود ندارد، در گوشه سمت چپ پایین گزینه Show all settings را انتخاب کنید)، سپس گزینه Keyboard و در نهایت در سمت راست مقدار Show commands containing را برابر DisplayClipboardPopupList قرار دهید.

 15. Resource Refactoring Tool، این افزونه راه ساده‌ای برای استخراج کردن عبارات رشته‌ای و قراردادن آنها در فایل منبع را پیش پای می‌گذارد.

16. Code Project Browser، از روی اسم این افزونه هم می‌‌توان حدس زد که چه کاری انجام می‌دهد، با استفاده از این افزونه می‌توان به سادگی به مقالات و مطالب مفید در سایت Codeproject مراجعه كرد. بعد از نصب این افزونه در منوی Tools گزینه‌ای با عنوانThe Codeproject  درست می‌شود که شامل دو زیرمنو است: اولی برای جستجو در مقالات که با زدن کلمه کلیدی به سادگی انجام می‌شود، و دیگری تنظیمات مربوط به این افزونه. این افزونه امکان جستجو در MSDN و Live را نیز در خود دارد.

17. Oracle Developer Tools for VS، ابزاری برای توسعه دهندگان اوراکل در محیط ویژوال استودیو است.

18. TestDriven.Net، این افزونه اجرای ساده آزمون‌های واحد را با یک کلیک در هر جایی از Solutionهای ویژوال استودیو را امكان‌پذیر كرده است. در یك كلام، می‌توانید با كمك این افزونه، برنامه‌های خود را تست كنید.

19. VS 2005 Cache Visualizer، حافظه‌های نهان پروژه‌های ASP.NET خود را به‌سادگی و به‌طور مصور ببینید. 

پیوندها برای دریافت:

1. http://ankhsvn.open.collab.net/

2. http://www.reflectionit.nl/

3. http://www.codekeep.net/addins.aspx

4. http://joel.fjorden.se/

5. http://www.jtleigh.com/people/colin/software/CopySourceAsHtml/

6. http://www.reflectionit.nl/

7. http://www.codeplex.com/modeling

8. http://www.pinvoke.net

9. http://janyou.bokee.com/index.html

11. http://www.codeproject.com/KB/macros/RegionsAddIn.aspx

12. http://www.usysware.com/DPack/Default.aspx

13. http://tinyurl.com/mbzkc3

14. http://tinyurl.com/ndnerz

15. http://www.codeplex.com/ResourceRefactoring

16. http://tinyurl.com/lls3dx

18. http://www.testdriven.net/

19. http://blog.bretts.net/?p=11


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

Net . پلتفرم آینده مایکروسافت برای نسل آینده نرم ازارها است که جهان آکنده از اطلاعات و مردم آن را در یک قالب واحد متصل میکند..NET ما را قادر می سازد تا بتوانیم برنامه های کاربردی و سرویس های اینترنتی خود را بر اساس XML طراحی کرده و به این وسیله اطلاعات خود را به اشتراک گذاشته و مدیریت کنیم.

در نمودار بالا مهمترین لایه های Microsoft .NET را از سیستم عامل تا زبان های برنامه نویسی مشاهده می کنید.در پایین ترین لایه سیتم عامل(Win32) را می بینید وسپس CLR.

CLR و فواید آن:

CLR کدها را در زمان اجرا مدیریت میکند(مانند مدیریت حافظه و thread ها و همچنین کنترل سازگاری انواع Type های بکاررفته در کد).به کدهایی که برای اجرا در CLR نوشته شده اند Managed Code و در غیر این صورت Unmanaged Code گفته می شود.

1)امنیت:هر Managed Component  درجه ای از مجوزها را داراست به این معنی که آیا این Component می تواند به فایل دسترسی پیدا کند یا خیر/می تواندبه رجیستری دسترسی پیدا کند یا خیر/...

برای مثال کاربران میتوانند مطمئن باشند که فایل اجرایی که در یک صفحه Web قرار داده شده غیر از اجرا کردن یک موسیقی یا تصویر متحرک هیچ حق دیگری ندارد.

2)Common Type System (CTS) :compiler های زبان های مختلف که برای .NET طراحی شده اند با CTS مطابقت دارند.این امر در سازگاری زبان های برنامه نویسی تحت .NET  با یکدیگر تاثیر بسزایی دارد.(منظور از این سازگاری این است که با استفاده از هر زبان برنامه نویسی تحت .NET میتوانیم به سایر component های نوشته شده توسط این زبان ها دسترسی پیدا کنیم)

3)مستقل از پلتفرم(Platform Independence):وقتی شما با یکی از زبان های .NET یک فایل exe یا DLL تولید می کنید.این فیل در فرمت Executable نیست در عوض در فرمت MSIL

(Microsoft Intermediate Language)  میباشد.این فایل در زمان اجرا یا در زمانی که  برنامه برای اولین بار نصب میشود به فرمت ذاتی سیتم عامل (OS Native Code) کامپایل می شود.این خاصیت علاوه بر دارا بودن مزیت Platform Independence سبب افزایش کارایی نیز میشود.

عملیات کامپایل توسطJIT Compiler(Just In Time)  انجام میشود.

از دیگر فواید تبدیل Code ها به Microsoft Intermediate Language سازگاری بین زبان های تحت .NET با یکدیگر(Language Interoperability) می باشد.

XML (eXtensible Markup Language):

XML یک زبان استاندارد شده برای انتقال اطلاعات می باشد این اطلاعات می توانند ازهر برنامه به برنامه دیگر یا از یک کامپیوتربه کامپیوتر دیگر انتقال یابند.

XML چیزی جز متن ساده در یک قالب مشخص نیست (XML از نوع Binary نمی باشد) بنابراین میتوان آن را به سادگی از طریق هر پروتکلی (مانند http و email ) و بدون مزاحمت Firewall ها انتقال داد.

XML Web Service:

فرض کنید برنامه شما باید از component هایی استفاده کند که روی اینترنت یا یک انترانت محلی قرار داده شده است.در واقع قسمتی از برنامه روی شبکه ای قرار داده شده که دسترسی به آن از طریق پروتکل http ممکن است.XML Web Service این نیاز شما را پاسخ می دهد.توسط XML Web Service شما پارامترهای مورد نظر را در قالب SOAP (Simple Access Object Protocol) که خود نوعی بسط از XML می باشد به Service Provider فرستاده و جواب را در همین قالب دریافت می کنید.

ADO.NET (Activex Data Object .NET :

کار کردن با پایگاه های داده مدت هاست که بر اساس مدل Connection Base می باشد.این در حالی است که این مدل در بسیاری از موارد نمی تواند برطرف کننده نیازهای برنامه های کاربردی وسرویس های امروزی باشد.

ADO.NET براساس مدل Disconnect طراحی شده است.برای رسیدن به این مدل ADO.NET از قدرت XML استفاده میکند. Component های مربوط به ADO.NET و XML در .NET Framework بطورکامل یکپارچه هستند.در این ساختار ADO.NET و XML هر دو به شی Dataset ختم می شوند. Dataset یک شی مقیم در حافظه (memory-resident) می باشد که یک مدل برنامه نویسی کامل را برای مدیریت اطلاعات بدون ارتباط با Data source ارایه می کند.قالب اصلی Dataset ، XML میباشد و می تواند از هر منبع XML پر شود.عنصر مورد استفاده در .NET برای اینکه ما بتوانیم Dataset را از بانک های اطلاعاتی مختلف پر کنیم DataProvider می باشد.

چون قالب Dataset ، XML می باشد بنابراین می تواند یک انتخاب بهینه برای فرستادن به و مصرف اطلاعات از یک XML Web Service باشد.


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

عملگرها نمادهایی هستند که برای انجام اعمال خاصی مورداستفاده قرارمیگیرند. عملگرها در زبان C از تنوع زیادی برخوردارند . در C چهار دسته عملگر به نامهای ( محاسباتی ، رابطه ای ، منطقی و دستکاری بیت ها ) وجود دارند که آنها را بررسی می کنیم .


عملگرهای محاسباتی:
عملگرهای محاسباتی که در C مورد استفاده قرار می گیرند در جدول (۱) فهرستشده اند .


ردیف |      عملگر     |      نام     |       مثال     |

 


 

۱   |   -   |      تفریق و منهای یکانی |   x-y

 


 

2   |   +  |      جمع |      x+y

 


 

3   |  *  |       ضرب |      x*y

 


 

4   |   /  |       تقسیم |  x/y

 


 

5   |   %  |       باقیمانده تقسیم |    x%y

 


 

6  |   - -  |       کاهش یک واحد * | - -x یا x

 


 

۷   |  ++   |       افزایش یک واحد * | x+ + یا | + +xا

 


 

* decrement ** increment

 جدول (۱) . عملگرهای محاسباتی

عملگرهای ردیف ۱تا ۴ در جدول (۱) تقریبا” در همه زبانهای برنامه سازی وجود دارند. عملگر % که در بقیه زبانها با علامت دیگری ( مثلا” در بیسیک به صورت MOD) وجود دارد باقیمانده تقسیم دو عدد را محاسبه می کند :


 
 

اگر سه دستور فوق را توسط ماشین اجرا کنیم مقدار۳ که باقیمانده تقسیم ۱۳ بر ۵ است در z قرار می گیرد .

عملگر کاهش ، یک واحد از عملوند مربوط کم می کند .
 

x= 10 ;
- - x ;

دستور x - - از x یک واحد کم می کند و نتیجه را در x قرار می دهد که معادل دستور x = x-1  است .

عملگر افزایش ، یک واحد به عملوند مربوطه اضافه می کند :


x= 40 ;
x ++ ;

دستور ++x معادل دستور x = x + 1 است که موجب افزودن یک واحد به x می شود .
عملگرهای افزایش و کاهش یک واحد را می توان بعداز عملوند مربوطه نیز به کار برد مثل : x + + و - - x .
اگر در یک عبارت از عملگرهای افزایش و کاهش یک واحد ، استفاده کنیم به کار بردن این عملگرها در قبل و بعد از عملوند مربوطه ، با یکدیگر متفاوت است . بدین معنی که اگر این عملگرها قبل از عملوند باشند مقدار فعلی عملوند مورد استفاده قرار گرفته و سپس عملگرها بر روی آن عمل میکنند، ولی اگر بعد از عملوند مربوطه باشند پس از انجام عمل افزایش و کاهش یک واحد به آنها مقادیر جدید ، در عبارت مورد استفاده قرار می گیرند. استفاده ازعملگرهای افزایش و کاهش یک واحد ، سرعت محاسباتی را بالا می برد .
اگر در یک عبارت از چند عملگر محاسباتی استفاده شود ، مساله تقدم عملگرها مطرح می شود . ( جدول (۲) ) .


بالاترین تقدم - - | + + |
تفریق یکانی - | | * / % |
پایین ترین تقدم - | +

 

 

جدول (۲) . تقدم عملگرهای محاسباتی

 همان طور که در جدول (۲) مشاهده می شود ، عملگرهای افزایش و کاهش یک واحد دارای بالاترین تقدم و عملگرهای جمع و تفریق دارای کمترین تقدم هستند و منهای یکانی ، دارای دومین تقدم است . عملگرهایی که در یک سطر آمده اند ، مثل - و +
بدین معنی است که دارای تقدم مکانی نسبت به یکدیگر هستند. در این صورت هر کدام از غملگرها که اول ظاهر شود ، زودتر انجام خواهد شد .

عملگرهای رابطه ای :
عملگرهای رابطه ای برای تشخیص ارتباط بین عملوندها یا مقایسه آنها مورد استفاده قرار می گیرند ( جدول (۳) ) .

 نکته قابل ذک درمورد عملگرهای رابطه ای این است که عملگر== برای تشخیص مساوی بودن دو عبارت مورد استفاده قرار می گیرد. این عملگر با عملگر= که برای انتساب یک عبارت به یک متغیر استفاده می شود متفاوت است .

عملگرهای منطقی
عملگرهای منطقی ( جدول (۴) ) بر روی عملوندهای منطقی عمل میکنند. عملوندهای منطقی دارای دو ارزش درستی و نادرستی هستند .

 ارزش نادرستی درزبان C با مقدار صفر و ارزش درستی با مقادیر غیراز صفر مشخص میشود. عملگر منطقی ! دارای بالاترین تقدم و عملگر || دارای کمترین تقدم در بین عملگرهای منطقی هستند . چون عملگرهای منطقی رابطه نزدیکی با عملگرهای رابطه ای
دارند می توان تقدم آنها را نسبت به یکدیگر بیان کرد ( جدول (۵) ) .


بالاترین تقدم: |  ! |
> >= < <= |
| == != |
| && |
|
پایین ترین تقدم :  ||

 

 

جدول (۵) . تقدم عملگرهای منطقی و رابطه ای

 عملگرهای محاسباتی و رابطه ای با یکدیگر ترکیب شده و عملگرهای دیگری را بنام عملگرهای محاسباتی رابطه ای ایجاد می کنند ( جدول (۶) ) . تقدم این عملگرها از سایر عملگرها پایین تر است .


عملگر | نام | مثال |

 

 

+= | + انتساب جمع | x+=y |

 

 

= | انتساب تفریق | x-=y |

 

 

*= | * انتساب ضرب | x*=y |

 

 

/= | / انتساب تقسیم | x/=y |

 

 

%= | % انتساب باقیمانده تقسیم | x%=y |

 

 

جدول (۶) . عملگرهای محاسباتی و رابطه ای

 

در جدول (۶) ، عبارت x + = y معادل با x = x + y است .

 int a=10 ;
int b=20 ;
a+= b ;
 

با اجرای دستورات فوق متغیر a برابر۳۰ خواهد بود. زیرا دستور a + = b معادل دستور a = a + b است .

عملگر دستکاری بیت ها:
ازآنجایی که زبان C طوری طراحی شده است که بتواند دربسیاری ازموارد جایگزین زبان اسمبلی گردد. باید قادر باشد کلیه اعمال ( یا حداقل بسیاری از اعمال ) که در زبان اسمبلی قابل انجام هستند را انجام دهد . یکی از اعمالی که در زبان اسمبلی براحتی انجام پذیر است . انجام اعمالی بر روی بیت های یک بایت یا یک کلمه از حافظه است که در زبان C برای انجام این منظور از عملگرهایی استفاده می شود که به عملگرهای بیتی معروفند ( جدول (۷) ) . این عملگرها انجام اعمال تست ، مقدار دادن و یا انتقال (shift) بیت ها را در یک بایت یا کلمه حافظه امکان پذیر می نمایند. عملگرهای بیتی فقط بر روی متغیرهایی از نوع charیا intا
عمل می کنند و بر روی متغیرهایی از نوع float، double،، long double،، void، و یا سایر متغیرها قابل اجرا نیستند .

 عملگرهای بیتی &، |،و ~و(AND(، OR،و NOTو) مشابه عملگرهای منطقی AND، OR،و NOTو عمل می کنند با این تفاوت که عمل آنها بر روی یک بیت است . با فرض این که pو qو دو بیت مختلف باشند ، نحوه عمل عملگر ^ را در ذیل مشاهده می نمایید .

p  |  q | p^q |

0   |  0   |   0 |

1   |  0   |   1 |

1   |  1   |   0 |

عملگرهای بیتی در جدول (۷) مشاهده می شوند .

عملگر  | نوع عمل |
&  | AND ( و ) |
|  | OR ( یا ) |
^ | XOR ( یا انحصاری ) |
~ | NOT ( نقیض یا متمم یک ) |
>> | انتقال به سمت راست (shift right) |
<< | انتقال به سمت چپ (shift left) |

جدول (۷) . عملگرهای بیتی

همان طور که مشاهده شد ، نتیجه عملگر بیتی ^ وقتی یک (۱) است که یکی از عملوندهای آن صفر و دیگری یک باشد . به عبارت دیگر ، نتیجه عملگر بیتی ^ وقتی صفر است که هر دو عملوند آن صفر و یا هر دو یک باشند .
عملگرهای &، |،و ^و و << ، >> بر روی دو عملوند عمل می کنند.  هر انتقال به چپ ، معادل با تقسیم کردن مقدار متغیر به ۲ و هر انتقال به راست ، معادل ضرب کردن در ۲ است .

مثال ۱ :
تعداد عددی متغیر | x مقدار بیتی متغیر | x دستورات زبان | C

char x ;

| x=7 ; | 00000111 | 7 |

| x<<1 ; | 00001110 | 14 |

| x<<3 ; | 01110000 | 112 |

| x<<2 ; | 11000000 | 192 |

| x>>1 ; | 01100000 | 96 |

| x>>2 ; | 00011000 | 24 |

همان طور که مشاهده می کنید پس از اجرای دستور ۲<< x< اطلاعات واقعی از بین می روند و مساله ضرب در ۲ شدن ، در اینجا صدق نمی کند .
عملگر ~ در یک بایت یا کلمه حافظه ( یک متغیر ) کلیه بیت ها را نقیض میکند. یعنی بیت صفر را به بیت یک و بیت یک را به بیت صفر تبدیل می نماید . لذا اگر این عملگر دو بار بر روی یک متغیر عمل کند وضعیت بیت های متغیر به حالت اول برمی گردند .

مثال ۲ : x :00101100

~x :11010011
~x :00101100

همان طور که مشاهده می شود بیت های ردیف اول و ردیف آخر دارای یک وضعیت میباشند ( بیت های ردیف آخر نتیجه دوبار اجرای عملگر نقیض بر روی متغیر است ).
نکته ای که در مورد عملگرهای بیتی باید در نظر داشت این است که این عملگرها معمولا” در مبدل های دستگاهها (device drivers) مورد استفاده قرار می گیرند .
مثل برنامه هایی که برای کار با modem و با چاپگر نوشته می شوند . زیرا در این گونه موارد معمولا” تست کردن بیت های یک متغیر مد نظر خواهد بود .

عملگر ?
عملگر ? با تست یک شرط ، مقداری را به یک متغیر نسبت می دهد .
نحوه عمل ? به این صورت است که : ابتدا عبارت اول (exp1) ارزیابی می شود چنانچه این عبارت دارای ارزش true ( ارزش درستی ) باشد مقدار exp2 پس از ارزیابی ، در متغیر ذکر شده قرار می گیرد وگرنه عبارت سوم (exp3) ارزیابی شده و نتیجه آن به متغیر ذکر شده منتقل می شود .

x= 10;
y= x>9 ? 100 : 200 ;

نحوه عمل در دو دستور فوق به این صورت است که عبارت ۹> x> ارزیابی می شود . چون این عبارت یک ارزش منطقی true دارد
( ۹> x> است ) لذا عدد ۱۰۰ در متغیر y  قرار می گیرد .

عملگرهای &و *
عملگر & یک عملگر یکانی است که آدرس عملوند خود را مشخص می کند و به صورت زیر به کار می رود :

نام عملوند &
مثال :

 int num ;
p= &num ;
 

با اجرای دستورات فوق آدرس متغیر num در متغیر p قرار می گیرد. لذا عملگر & به معنی ” آدرس ” است . عملگر * همانند عملگر & یک عملگر یکانی است که محتویات یک آدرس حافظه را مشخص می کند و به صورت زیر به کار می رود .

نام عملوند *
مثل :

p= &num ;
m= *p ;
 

دستور اول ، آدرس متغیر num را در p قرار میدهد و دستور دوم ، محتویات محلی را که آدرس آن در p قرار دارد ( محتویات num ) ، را در m قرار میدهد. بنابراین مفهوم ” * محتویات آدرس ” می باشد . دو دستور فوق معادل دستور m = num; است که موجب انتقال محتویات متغیر num به متغیر m می شود .

عملگر کاما (,)
عملگر کاما برای انجام چند عمل در یک دستور ، به کار رفته و به صورت زیر استفاده می شود :
( عبارت ۲ و عبارت ۱) =) متغیر
عملگر کاما موجب می شود تا ” عبارت ” ۱ ارزیابی شده و سپس نتیجه ارزیابی ”عبارت ” ۲ با یکدیگر ارتباط دارند .

x =( y = 3 , y + 5) ;

ابتدا y باربر با ۳ قرار می گیرد و نتیجه عبارت y + 5 که برابر ۸ است در x قرار خواهد گرفت .

عملگر sizeof
این عملگر که عملگر زمان ترجمه نامیده می شود، برای محاسبه طول یک نوع و یا یک متغیر به کار رفته و به صورت زیر استفاده می شود .
; (نوع) sizeof
; متغیر sizeof
اگر بخواهیم با استفاده از این عملگرها، طول یک نوع مثل int، double و غیره را محاسبه کنیم باید آن را در داخل پرانتز قرار دهیم : اما اگر بخواهیم طول یک متغیر را محاسبه کنیم نیازی به استفاده از پرانتز نیست . به عنوان مثال :

  int a, b, c ;
a= sizeof( int) ;
b= sizeof c ;
 

تقدم عملگرها در حالت کلی
وقتی که در یک عبارت چندین عملگر مورد استفاده قرار می گیرند تقدم عملگر به صورت جدول (۸) خواهد بود .


بالاترین تقدم:   () | | ! ~ + + - - * & sizeof |
| * / % |
| + - |
| << >> |
| << = >> = |
| == =! |
| & |
| ^ |
| | |
| && |
| || |
| ? |
| = +=- = *= /= %= |
| , |

 


جدول (۸) . تقدم عملگرها در حالت کلی

اگر در یک عبارت چندین عملگر وجود داشته باشد و درآن از پرانتز نیز استفاده شود ، تقدم پرانتز از سایر عملگرها بیشتر بوده و عبارت داخل پرانتز زودتر ارزیابی می شوند .

مثال ۳ :

int x=5/ y=10/ k=4 ;
int s ;
s= x*((x+y-)3)/k ;

 

درنتیجه اجرای چند دستور فوق مقداری که درs قرار می گیرد برابر با ۱۵ خواهد بود . سپس عدد ۳ از ۱۵ کم می شود که ۱۲ حاصل می گردد و بعداز آن عمل ضرب انجام برابر با ۶۰ ( ۵ * ۱۲ ) می باشد و عملگر تقسیم (/) آخرین است.

|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

متغیر، نامی برای یک محل حافظه است که محتویات آن در طول اجرای برنامه ممکن است تغییر کند . اسم هر متغیر شامل حروف
aتا zا  ، Aتا Zا ، ارقام ۰تا ۹ا و خط ربط(آندرلاین) است . به طوری که با یکی از حروف و یا خط ربط شروع شده باشند . طول نام هر
متغیر بستگی به نوع کامپایلر دارد که معمولا” از ۱ز تا ۳۱ کاراکتر قابل استفاده است .


اسامی مجاز برای متغیرها | اسامی غیرمجاز برای متغیرها |

 


 

| ۱count |    count       |
| high! there | test123 |
| grad.1 |     high        |

 


 

تعریف نوع متغیر
برای استفاده از متغیرها درC باید ابتدا آنها را تعریف کنیم . تعریف متغیرها شامل نامگذاری و تعیین نوع آنها است که به صورت زیر انجام می شود :
<نوع> <اسامی متغیرها>
 برای تعریف چند متغیر در یک دستور باید اسامی با کاما از یکدیگر جدا گردد : 

int  var1, var2 ;

دستور فوق دو متغیر به اسامی var2و var1 را از نوع int تعریف می کند .

float  flovar1, flovar2 ;

دستور فوق ، دو متغیر به نام های flovar2و flovar1و را از نوع float تعریف می کند .

double d1 ;
char ch ;

اولین دستور ، d1 را از نوع double و دستور دوم متغیر ch را از نوع char تعریف می کند .

مقدار دادن به متغیرها

برای مقدار دادن به متغیرها می توان به دو طریق عمل کرد:
۱ به هنگام تعریف متغیر .
۲ پس از تعریف متغیر .
به عنوان مثال :

دستور اول ضمن تعریف a از نوع int مقدار آن را برابر با ۰ قرار می دهد . دستور دوم چهار متغیرb، c،، d،و eو را از نوع int تعریف کرده وفقط مقدار متغیر ch را از نوع کاراکتری تعریف کرده و مقدار آن را برابر با حرف a قرار می دهد . دستور چهارم مقدار متغیر b را برابر با ۰ قرار می دهد . دستور پنجم مقدار دو متغیر cو dو را برابر صفر قرار می دهد و این دستور ، انتساب چندتایی را مشخص می کند .
همان طور که قبلا”گفته شد مقدار متغیرها ممکن است در طول اجرای برنامه تغییر کند . با استفاده از کلمه کلیدی const می توانیم متغیرهایی را تعریف کنیم که مقدار آنها در طول اجرای برنامه ثابت باشد . برای تعریف این نوع متغیرها بصورت زیر عمل می شود :

<نوع> <اسامی متغیرها>const

نوع ، یکی از نوع هایی است که قبلا” ذکر شده و اسامی متغیرها ، مشخص کننده متغیرهایی است که باید به صورت ثابت تعریف شوند :

const int a = 10 , b = 20   ;

دستور فوق دو متغیر aو bو را از نوع int تعریف کرده و مقادیر آنها را برابر می دهد . این مقادیر در طول اجرای برنامه قابل تغییر هستند .


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

همان طور که قبلا” گفته شد در هر زبان برنامه سازی تعدادی از نوع های داده وجود دارند که بازه ای را شامل بوده و اعمال خاصی روی آنها انجام پذیر است و در C پنج نوع داده اصلی وجود دارد که عبارتند از : char، int،، float،، double، و void .



در این زبان اندازه و محدوده ای که هر نوع داده اختیار می کند بستگی به نوع پردازشگر (Processor) و نحوه پیاده سازی کامپایلر دارد. شناسه هایی ( متغیر برچسب ، اسامی توابع و … ) که از نوع char باشند برای ذخیره کردن مقادیری که توسط کاراکترهای اسکی تعریف شده اند به کار می روند. شناسه هایی از نوع int برای ذخیره کردن مقادیر صحیح ، و از نوع floatو doubleو برای ذخیره کردن اطلاعات عددی اعشاری به کار میروند که محدوده آنها توسط تعداد ارقام و دقت آنها مشخص میشود. نوع void در مورد توابع به کار می رود .
نوعهای داده اصلی ( به جز void ) می توانند با عباراتی مثل signed، long، unsigned و short و ترکیب شده و نوع های دیگری را به وجود آورند . ( جدول (۱) ).

 


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

زبان C در سال ۱۹۷۰ توسط دنیس ریچی طراحی گردید. این زبان تکامل یافته زبان BCPL میباشد که طراح آن مارتین ریچاردز است ،و زبان BCPL از زبان B که طراح آن کن تامپسون می باشد ، نتیجه شده است .


زبان C معمولا” یک زبان میانی نامیده می شود . این بدان معنی نیست که آموزش این زبان مشکل است ، یا قدرت آن از زبان های برنامه سازی مثل پاسکال و بیسیک کمتر است و یا این که مشکلاتی مشابه زبان اسمبلی برای برنامه نویس ایجاد می کند.
علت میانی بودن زبان C این است که عناصر زبان های سطح بالا را با خصیصه تابعی زبان اسمبلی درهم آمیخته است .برای پی بردن به جایگاه زبان C درمقایسه با سایر زبان های برنامه سازی به جدول (۱) مراجعه نمایید .

جدول (۱) . سطوح زبان های برنامه سازی

زبان C همانند سایر زبانهای میانی با مفاهیم بیت ، بایت و آدرس که از عناصر ابتدایی ماشین هستند سر و کار دارد . یعنی در این زبان می توان محتویات بیت ها و بایت ها را تیز تغییر داد .
برنامه های نوشته شده به زبان C براحتی از ماشینی به ماشین دیگر قابل انتقال می باشند . مثلا” برنامه نوشته شده برای کامپیوتر APPL در کامپیوترهای IBM قابل اجرا است . این خصیصه را قابل حمل بودن (Portability) زبان می گویند .
کلیه زبان های برنامه سازی سطح بالا و میانی دارای نوعهای داده (data types) هستند . هر نوع داده ، مجموعه ای از مقادیر را مشخص می کند که اعمال خاصی روی آنها قابل انجام است . نوع داده ای که در اکثر زبانها وجود دارد عبارتند از :
اعداد صحیح ، کاراکتری و اعداد اعشاری .
C دارای ۵ نوع داده اصلی است که در آن تقریبا” تبدیل هر نوع داده به نوع دیگر امکان پذیر است . مثلا” در یک عبارت می توان نوع کاراکتری را با نوع عددی صحیح و یا اعشاری ترکیب کرد .
زبان C خطای زمان اجرا مثل boundray checking را چک نمی کند . منظور از boundray checking این است که در آرایه ها تجاوز از حدود مشخص شده ، به راحتی امکان پذیر بوده و از نظر کامپایلر با خطایی مواجه نمیشود. این مساله برمیگردد به این که در زبان C آرایه یک اشاره گر (pointer) است . در این راستا ، نوع پارامترها و آرگومان های توابع نیز در گونه های قدیمی C با یکدیگر مطابقت نشده و از نظر کامپایلر با خطا مواجه نمی شد ولی در گونه های جدید C با معرفی الگوی تابع (Function prototype) این مشکل رفع شده است .
C همانند زبان های ALGOL، PASCAL، و… یک زبان ساخت یافته است . یک زبان برنامه سازی ساخت یافته امکانات زیادی ، از جمله استفاده از چند ساختار حلقه سازی مثل while، do-while،و forو را فراهم می کند . در این گونه زبان ها از goto به ندرت استفاده می شود و نوشتن دستورات برنامه در هر ستونی از خط و در هر جای فایل امکان پذیر بوده ، مثل زبان فرترن مقید به ستون های خاصی نیستند. استفاده از زیربرنامه ها و بلاک ها نیز از خصیصه های این نوع زبان ها هستند . ذکر اسامی چند زبان ساخت یافته و غیر ساخت یافته ، در انتخاب زبان برنامه سازی جهت برنامه نویسی مفید است . ( جدول (۲) ) .

جدول (۲) . بعضی از زبانهای ساخت یافته و غیرساخت یافته

هر برنامه در زبان C دارای خصیصه هایی است که بعضی از آنها عبارتند از :
۱-در زبان C هر دستور برنامه به یک ; ختم می شود .
۲-هر دستور میتواند درچند خط ادامه داشته و یک خط ممکن است شامل چند دستورباشد .
۳-حداکثر طول یک خط برنامه ۲۵۴ کاراکتر است .
۴-در زبان C برنامه نویس می تواند در هر نقطه از برنامه ، بااستفاده از علائم {و }و یک بلاک را مشخص کرده و هر متغیری را که می خواهد در آنجا تعریف نماید .
این متغیرها فقط در آن بلاک معنی خواهند داشت . توجه داریم که هر بلاک مجموعه ای از دستورات وابسته به یکدیگر خواهد بود :

۵-برای داشتن توضیحات در برنامه کافی است آنها را دربین /*و */ قرار داد:

*/ توضیحات /*

یک زبان ساخت یافته بلاکی نیست . این بدان معنی است که تعریف یک زیربرنامه ( در اینجا تابع ) در زیربرنامه دیگر ( همانند پاسکال ) امکان پذیر نیست و این امر از مساله coupling می کاهد .
Cزبان برنامه نویسی سیستم است . منظور از برنامه های سیستم عبارتند از :

 -1سیستم عامل (Operating system)
 -2مفسر (Interpreter)
 -3ویراستار (Editor)
 -4اسمبلر (Assrmbler)
 -5کامپایلر (Compiler)
 -6مدیریت بانکهای اطلاعاتی (Database management)

امروزه C در اکثر امور برنامه نویسی مورد استفاده قرار می گیرد . زیرا این زبان هم دارای خصیصه ” قابل حمل بودن ” است و هم دارای کارآیی خوبی می باشد و سرعت زیاد C بر محبوبیت آن افزوده است . مساله قابل حمل بودن ، یک مساله بسیار مهم است زیرا هم موجب صرفه جویی در وقت شده و هم باعث صرفه جویی در هزینه ها می گردد .
زبان C فقط دارای ۳۲ کلمه کلیدی است ( جدول (۳) ) که ۲۷ کلمه کلیدی آن توسط ریچی ( طراح زبان ) معرفی شده و ۵ کلمه کلیدی دیگر توسط موسسه استاندارد سازی زبان به آن اضافه شده است . این تعداد در مقایسه با ۱۵۹ کلمه کلیدی که در زبان بیسیک وجود دارد قابل توجه است .

 

اضافه شدن توسط موسسه استاندارد سازی زبان
جدول (۳) . کلمات کلیدی زبان C

 بعضی از کامپایلرها علاوه بر ۳۲ کلمه کلیدی جدول (۳) کلمات کلیدی دیگری به زبان اضافه نموده اند . ( جدول (۴) ) .

 

جدول (۴) . کلمات کلیدی زبان C که بعضی از کامپایلرها اضافه کرده اند

 

کلیه کلمات کلیدی در زبان C به حروف کوچک نوشته می شوند . چون در این زبان بین حروف کوچک و بزرگ تفاوت است ، به عنوان مثال کلمه else یک کلمه کلیدی است.

 

 

{
;مجموعه دستورات بلاک

|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : پنج‌شنبه 26 مرداد 1391
نویسنده : hamidrezakhouri

مقدمه ای بر زبان C

پس از نوشتن یک الگوریتم باید آن را با استفاده از یک زبان برنامه نویسی تبدیل به یک برنامه قابل اجرا برای کامپیوتر نماییم. این زبانها به سه دسته کلی تقسیم میگردند :



۱- زبان ماشین (سطح پایین) :
این زبان مستقیما با صفر و یک نوشته می شود و بدون هیچ واسطه ای برروی کامپیوتر قابل اجرا است. طراحان سخت افزار هر کامپیوتر، زبان ماشین خاص خود را برای آن ماشین طراحی می نمایند. به همین دلیل هر برنامه ای که به زبان ماشین نوشته شود، فقط برروی همان ماشین خاص کار می کند، بهمین دلیل برنامه های نوشته شده به زبان ماشین را غیر قابل حمل می نامند. از طرف دیگر یادگیری این زبان بسیار مشکل بوده و برنامه نویسی با آن نیز بسیار سخت است و همچنین احتمال بروز خطا نیز در آن زیاد است.
۲- زبان اسمبلی :
این زبان شکل ساده تر زبان ماشین است، بدین صورت که برای هر دستورالعمل زبان ماشین، یک اسم نمادین انتخاب شده است (مانند دستور ADD بجای کد دودویی دستورالعمل جمع) که بخاطر سپردن و برنامه نویسی با آنها برای انسانها ساده تر است. اما این برنامه ها برای ماشین قابل فهم نیست و باید قبل از اجرا شدن توسط برنامه مترجمی بنام اسمبلر به زبان ماشین تبدیل شود. توجه کنید که از آنجا که هر دستور زبان اسمبلی معادل یک دستور زبان ماشین است، این زبان نیز وابسته به ماشین می باشد و برنامه های نوشته شده به این زبان فقط برروی همان کامپیوتری که برای آن نوشته شده اند قابل اجرا است. علاوه براین کار با این زبانها هنوز هم نسبتا مشکل بود و فقط متخصصین کامپیوتر قادر به استفاده از آنها بودند.
۳- زبانهای سطح بالا :
دستورالعملهای این زبانها بسیار نزدیک به زبان انسانها (بطور مشخص زبان انگلیسی) می باشد و بهمین دلیل برنامه نویسی به آنها بسیار ساده تر بوده و می توان الگوریتمها را به راحتی به این زبانها تبدیل کرد. از آنجا که این زبانها به هیچ ماشین خاصی وابسته نیستند، برنامه های نوشته شده با این زبانها (تا حد زیادی) قابل حمل می باشند. مثالهایی از این زبانها عبارتند از :
- بیسیک (Basic): برای کاربردهای آموزشی
- فرترن (Fortran) : برای کاربردهای علمی و مهندسی
- پاسکال (Pascal) : برای کاربردهای آموزشی و علمی
و بالاخره زبان برنامه نویسی C که درمورد آن بیشتر صحبت خواهیم کرد. البته برنامه های نوشته شده به این زبانها ابتدا باید به زبان ماشین ترجمه شوند تا برروی کامپیوتر قابل اجرا باشند. برای ترجمه این زبانها از کامپایلرها و یا مفسرها  مراجعه  استفاده می شود….

تاریخچه C:

برای بررسی تاریخچه زبان C باید به سال ۱۹۶۷ بازگردیم که مارتین ریچاردز زبان BCPL را برای نوشتن نرم افزارهای سیستم عامل و کامپایلر در دانشگاه کمبریج ابداع کرد. سپس در سال ۱۹۷۰ کن تامپسون زبان B را بر مبنای ویژگیهای زبان BCPL نوشت و از آن برای ایجاد اولین نسخه های سیستم عامل Unix در آزمایشگاههای بل استفاده کرد. زبان C در سال ۱۹۷۲ توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد و ویژگیهای جدیدی همچون نظارت بر نوع داده ها نیز به آن اضافه شد. ریچی از این زبان برای ایجاد سیستم عامل Unix استفاده کرد اما بعدها اکثر سیستم عاملهای دیگر نیز با همین زبان نوشته شدند. این زبان با سرعت بسیاری گسترش یافت و چاپ کتاب “The C Programming Language” در سال ۱۹۷۸ توسط کرنیگان و ریچی باعث رشد روزافزون این زبان در جهان شد.
متاسفانه استفاده گسترده این زبان در انواع کامپیوترها و سخت افزارهای مختلف باعث شد که نسخه های مختلفی از این زبان بوجود آید که با یکدیگر ناسازگار بودند. در سال ۱۹۸۳ انستیتوی ملی استاندارد آمریکا (ANSI) کمیته ای موسوم به X3J11 را را مامور کرد تا یک تعریف فاقد ابهام و مستقل از ماشین را از این زبان تدوین نماید.در سال ۱۹۸۹ این استاندارد تحت عنوان ANSI C به تصویب رسید و سپس در سال ۱۹۹۰، سازمان استانداردهای بین المللی (ISO) نیز این استاندارد را پذیرفت و مستندات مشترک آنها تحت عنوان ANSI/ISO C منتشر گردید.
در سالهای بعد و با ظهور روشهای برنامه نویسی شی گرا نسخه جدیدی از زبان C بنام C++ توسط بیارنه استراوستروپ در اوایل ۱۹۸۰ در آزمایشگاه بل توسعه یافت. در C++ علاوه بر امکانات جدیدی که به زبان C اضافه شده است، خاصیت شی گرایی را نیز به آن اضافه کرده است.
با گسترش شبکه و اینترنت، نیاز به زبانی احساس شد که برنامه های آن بتوانند برروی هر ماشین و هر سیستم عامل دلخواهی اجرا گردد. شرکت سان مایکروسیستمز در سال ۱۹۹۵ میلادی زبان Java را برمبنای C و C++ ایجاد کرد که هم اکنون از آن در سطح وسیعی استفاده می شود و برنامه های نوشته شده به آن برروی هر کامپیوتری که از Java پشتیبانی کند(تقریبا تمام سیستمهای شناخته شده) قابل اجرا می باشد. شرکت مایکروسافت در رقابت با شرکت سان، در سال ۲۰۰۲ زبان جدیدی بنام C# (سی شارپ) را ارائه داد که رقیبی برای Java بشمار می رود.
برنامه نویسی ساخت یافته:
در دهه ۱۹۶۰ میلادی توسعه نرم افزار دچار مشکلات عدیده ای شد. در آن زمان سبک خاصی برای برنامه نویسی وجود نداشت و برنامه ها بدون هیچگونه ساختار خاصی نوشته می شدند. وجود دستور پرش (goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد می کرد، چرا که جریان اجرای برنامه مرتبا دچار تغییر جهت شده و دنبال کردن آن دشوار می گردید. لذا نوشتن برنامه ها عملی بسیار زمان بر و پرهزینه شده بود و معمولا اشکال زدایی, اعمال تغییرات و گسترش برنامه ها بسیار مشکل بود. فعالیتهای پژوهشی در این دهه باعث بوجود آمدن سبک جدیدی از برنامه نویسی بنام روش ساختیافته گردید؛ روش منظمی که باعث ایجاد برنامه هایی کاملا واضح و خوانا گردید که اشکال زدایی و خطایابی آنها نیز بسیار ساده تر بود.
اصلی ترین نکته در این روش عدم استفاده از دستور پرش (goto) است. تحقیقات بوهم و ژاکوپینی نشان داد که می توان هر برنامه ای را بدون دستور پرش و فقط با استفاده از ۳ ساختار کنترلی ترتیب، انتخاب و تکرار نوشت.
ساختار ترتیب، همان اجرای دستورات بصورت متوالی (یکی پس از دیگری) است که کلیه زبانهای برنامه نویسی در حالت عادی بهمان صورت عمل می کنند.
ساختار انتخاب به برنامه نویس اجازه می دهد که براساس درستی یا نادرستی یک شرط، تصمیم بگیرد کدام مجموعه از دستورات اجرا شود.
ساختار تکرار نیز به برنامه نویسان اجازه می دهد مجموعه خاصی از دستورات را تا زمانیکه شرط خاصی برقرار باشد، تکرار نماید.
هر برنامه ساختیافته از تعدادی بلوک تشکیل می شود که این بلوکها به ترتیب اجرا می شوند تا برنامه خاتمه یابد(ساختار ترتیب). هر بلوک می تواند یک دستورساده مانند خواندن، نوشتن یا تخصیص مقدار به یک متغیر باشد و یا اینکه شامل دستوراتی باشد که یکی از ۳ ساختار فوق را پیاده سازی کنند. نکته مهم اینجاست که درمورد دستورات داخل هر بلوک نیز همین قوانین برقرار است و این دستورات می توانند از تعدادی بلوک به شرح فوق ایجاد شوند و تشکیل ساختارهایی مانند حلقه های تودرتو را دهند.
نکته مهم اینجاست که طبق قوانین فوق یک حلقه تکرار یا بطور کامل داخل حلقه تکرار دیگر است و یا بطور کامل خارج آن قرار می گیرد و هیچگاه حلقه های روی هم افتاده نخواهیم داشت.
از جمله اولین تلاشها در زمینه ساخت زبانهای برنامه نویسی ساختیافته، زبان پاسکال بود که توسط پروفسور نیکلاس ویرث در سال ۱۹۷۱ برای آموزش برنامه نویسی ساختیافته در محیطهای آموزشی ساخته شد و بسرعت در دانشگاهها رواج یافت. اما بدلیل نداشتن بسیاری از ویژگیهای مورد نیاز مراکز صنعتی و تجاری در بیرون دانشگاهها موفقیتی نیافت.
کمی بعد زبان C ارائه گردید که علاوه بر دارا بودن ویژگیهای برنامه نویسی ساختیافته بدلیل سرعت و کارایی بالا مقبولیتی همه گیر یافت و هم اکنون سالهاست که بعنوان بزرگترین زبان برنامه نویسی دنیا شناخته شده است.
مراحل اجرای یک برنامه C
برای اجرای یک برنامه C ابتدا باید آن را نوشت. برای اینکار می توان از هر ویرایشگر متنی موجود استفاده کرد و سپس فایل حاصل را با پسوند .C ذخیره نمود (فایلهای C++ با پسوند .CPP ذخیره می گردند). به این فایل، کد مبدا (source code) گفته می شود. مرحله بعدی تبدیل کد مبدا به زبان ماشین است که به آن کد مقصد (object code) گفته می شود. همانطورکه قبلا نیز گفته شد برای اینکار از یک برنامه مترجم بنام کامپایلر استفاده می شود. کامپایلرهای متعددی برای زبان C توسط شرکتهای مختلف و برای سیستم عاملهای مختلف نوشته شده است که می توانید برحسب نیاز از هریک از آنها استفاده نمایید. اما هنوز برنامه برای اجرا آماده نیست. معمولا برنامه نویسان از در برنامه های خود از یک سری از کدهای از پیش آماده شده برای انجام عملیات متداول (مانند محاسبه جذر و یا سینوس) استفاده می کنند که برنامه آنها قبلا نوشته و ترجمه شده است. این برنامه ها یا در قالب کتابخانه های استاندارد توسط شرکتهای ارائه کننده نرم افزار عرضه شده است و یا توسط دیگر همکاران برنامه نویس اصلی نوشته و در اختیار وی قرار داده شده است. در این مرحله باید کد مقصد برنامه اصلی با کدهای مربوط به این برنامه های کمکی پیوند زده شود. برای اینکار نیاز به یک پیوند زننده (Linker) داریم و نتیجه این عمل یک فایل قابل اجرا خواهد بود (در ویندوز این فایل پسوند .EXE خواهد داشت). مرحله بعدی اجرای برنامه و دادن ورودیهای لازم به آن و اخذ خروجیها می باشد. در شکل زیر این مراحل نشان داده شده اند.
مسلما طی مراحل بالا برای اجرای هر برنامه زمانبر می باشد، بهمین دلیل اکثر تولید کنندگان کامپایلرها، محیطهایی را برای برنامه نویسی ارائه کرده اند که کلیه مراحل بالا را بطور اتوماتیک انجام می دهند.
به این محیطها IDE (Integrated Development Environment) یا محیط مجتمع توسعه نرم افزار گفته می شود. این محیطها دارای یک ویرایشگر متن می باشند که معمولا دارای خواص جالبی همچون استفاده از رنگهای مختلف برای نشان دادن اجزای مختلف برنامه مانند کلمات کلیدی، و یا قابلیت تکمیل اتوماتیک قسمتهای مختلف برنامه می باشد. پس از نوشتن برنامه و با انتخاب گزینه ای مانند Run کلیه عملیات فوق بطور اتوماتیک انجام شده و برنامه اجرا می گردد. علاوه براین، این محیطها معمولا دارای امکانات اشکالزدایی برنامه (Debug) نیز می باشند که شامل مواردی همچون اجرای خط به خط برنامه و یا دیدن محتویات متغیرها در زمان اجرا است. چند محیط معروف برنامه نویسی عبارتند از :
Borland C++ 3.1 برای محیط DOS
Borland C++ از نسخه ۴ به بالا برای Windows
Microsoft Visual C++ برای محیط Windows
Borland C++ Builder برای محیط Windows
برای شروع ما از محیط Borland C++ 3.1 تحت Dos که نحوه کار ساده تری نسبت به سایرین دارد استفاده می کنیم.
پس از نصب این نرم افزار، برنامه BC.exe را اجرا کنید تا وارد محیط borland c شوید

 

همانطور که می بینید، این محیط از ۳ قسمت اصلی تشکیل شده است :

- بخش ویرایش برنامه :
بخش آبی رنگ وسط می باشد که در حقیقت یک ویرایشگر است که برنامه در آن تایپ می شود. همانطور که می بینید در این ویرایشگر از رنگهای مختلف برای نشان دادن قسمتهای مختلف برنامه استفاده می شود. مثلا برای کلمات کلیدی از رنگ سفید استفاده شده است.
- بخش منوهای کاری :
این بخش که در قسمت بالا واقع شده است،- حاوی تعدادی منو (گزینه) برای انجام وظایف مختلف است. خلاصه این عملیات عبارتند از :
o منوی File : عملیاتی مانند باز کردن و یا ذخیره یک برنامه
o منوی Edit : عملیات ویرایش مانند حذف،o کپی و یا چسباندن یک قسمت از برنامه
o منوی Search : جستجوی و یا تعویض یک متن در برنامه
o منوی Run : اجرای برنامه بصورت کامل یا دستور به دستور
o منوی Compile : عملیات مربوط به کامپایل و پیوند برنامه
o منوی Debug : عملیات مربوط به اشکالزدایی مانند دیدن مقادیر متغیرها در زمان اجرا
o منوی Project : عملیات مربوط به مدیریت برنامه هایی که شامل چندین فایل مستقل هستند (پروژه)
o منوی Options : عملیات مربوط به تنظیمات سیستم مانند نحوه کامپایل و یا رنگ پیش فرض محیط
o منوی Windows : عملیات مربوط به پنجره های باز فعلی (مربوط به چندین برنامه یا نمایش متغیرها و … )
خطاهای برنامه نویسی
بنظر می رسد خطاها جزء جداناپذیر برنامه ها هستند. بندرت می توان برنامه ای نوشت که در همان بار اول بدرستی و بدون هیچگونه خطایی اجرا شود. اما خطاها از لحاظ تاثیری که بر اجرای برنامه ها می گذارند، متفاوتند. گروهی ممکن است باعث شوند که از همان ابتدا برنامه اصلا کامپایل نشود و گروه دیگر ممکن است پس از گذشت مدتها و در اثر دادن یک ورودی خاص به برنامه، باعث یک خروجی نامناسب و یا یک رفتار دور از انتظار (مانند قفل شدن برنامه) شوند. بطور کلی خطاها به دو دسته تقسیم می شوند:
خطاهای نحوی (خطاهای زمان کامپایل): این خطاها در اثر رعایت نکردن قواعد دستورات زبان C و یا تایپ اشتباه یک دستور بوجود می آیند و در همان ابتدا توسط کامپایلر به برنامه نویس اعلام می گردد. برنامه نویس باید این خطا را رفع کرده و سپس برنامه را مجددا کامپایل نماید. لذا معمولا این قبیل خطاها خطر کمتری را در بردارند.
خطاهای منطقی (خطاهای زمان اجرا): این دسته خطاها در اثر اشتباه برنامه نویس در طراحی الگوریتم درست برای برنامه و یا گاهی در اثر درنظر نگرفتن بعضی شرایط خاص در برنامه ایجاد می شوند. متاسفانه این دسته خطاها در زمان کامپایل اعلام نمی شوند و در زمان اجرای برنامه خود را نشان می دهند. بنابراین، این خود برنامه نویس است که پس از نوشتن برنامه باید آن را تست کرده و خطاهای منطقی آن را پیدا کرده و رفع نماید. متاسفانه ممکن است یک برنامه نویس خطای منطقی برنامه خود را تشخیص ندهد و این خطا پس از مدتها و تحت یک شرایط خاص توسط کاربر برنامه کشف شود. بهمین دلیل این دسته از خطاها خطرناکتر هستند. خود این خطاها به دو دسته تقسیم می گردند:
a. خطاهای مهلک:
در این دسته خطاها کامپیوتر بلافاصله اجرای برنامه را متوقف کرده و خطا را به کاربر گزارش می کند. مثال معروف این خطاها،b. خطای تقسیم بر صفر می باشد.
b. خطاهای غیرمهلک:
در این دسته خطا،d. اجرای برنامه ادامه می یابد ولی برنامه نتایج اشتباه تولید می نماید. بعنوان مثال ممکن است دراثر وجود یک خطای منطقی در یک برنامه حقوق و دستمزد،e. حقوق کارمندان اشتباه محاسبه شود و تا مدتها نیز کسی متوجه این خطا نشود!
با توجه به آنچه گفته شد، در می یابیم که رفع اشکال برنامه ها بخصوص خطاهای منطقی از مهمترین و مشکلترین وظایف یک برنامه نویس بوده و گاهی حتی سخت تر از خود برنامه نویسی است! بهمین دلیل است که بسیاری از شرکتها(همانند مایکروسافت) ابتدا نسخه اولیه نرم افزار خود را در اختیار کاربران قرار می دهند تا اشکالات آن گزارش شده و رفع گردد. بسیار مهم است که در ابتدا سعی کنید برنامه ای بنویسید که حداقل خطاها را داشته باشد، در گام دوم با آزمایش دقیق برنامه خود هرگونه خطای احتمالی را پیدا کنید و در گام سوم بتوانید دلیل بروز خطا را پیدا کرده و آنرا رفع نمایید. هر سه عمل فوق کار سختی بوده و نیاز به تجربه و مهارت دارد.
آخرین نکته اینکه در اصطلاح برنامه نویسی به هر گونه خطا، bug و به رفع خطا debug گفته می شود.

|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ : چهارشنبه 25 مرداد 1391
نویسنده : hamidrezakhouri

اکشن اسکریپت - Fscommand

چگونه در فلش فایل exe بسازیم ؟
همانطور که اکثرا میدانید برای ساخت فایل های اجرایی با فلش بعد از ساخت فایل swf به منوی فایل رفته و سپس روی گزینه publish setting کلیک میکنیم . در پنجره ای که باز میشود گزینه windows projector  را تیک میزنیم . حالا برای ساخت فایل exe دکمه publish را میزنیم . فایل exe ما آماده است . اما این فایل یک فیلم فلش است که همیشه در پنجره flash player اجرا میشود . با این فرق که اجراگر فلش همراه فایل ، ضمیمه شده است و در دستگاه هایی که این player را ندارند اجرا میشود . در ضمن برای اینکه کاربر فلش شما را ببندد باید flash player آن را ببندد . حال برای اینکه یک دکمه خروج در برنامه بگذاریم  چه میکنیم ؟

اکشن اسکریپت fscommand
یک دکمه روی فیلم خود بگذارید . حال آنرا انتخاب کنید و  با زدن دکمه F9 پنجره Actions را باز کنید . کتاب Actions و سپس کتاب Browser/network را باز کنید و روی fscommand را دوبل کلیک کنید . حالا از منوی بازشوی سمت راست ، گزینهquit  را انتخاب کنید . حال زدن این دکمه توسط کاربر در برنامه باعث بسته شدن فیلم فلش میشود ! .

اکشن اسکریپت برای full screen شدن
یک دکمه روی فیلم خود بگذارید . باز هم fscommand را دوبل کلیک کنید و اینبار از منوی سمت راست آن fullscreen را برگزینید. میبینید که در جعبه متنی بالای آن نام fullscreen و در قسمت پارامتر  true  نوشته شده است .این هم کد کامل آن که فلش برای شما ساخته است .

on (release) {
            fscommand("fullscreen", "true");
}

اگر خواستید فیلم با زدن دکمه از حالت فوق خارج شود خودتان پارامتر true را به false تغییر دهید .

تغییر سایز فلش با سایز صفحه شما
اگر بخواهید فیلم فلش شما هنگامی که کاربر سایز FLASH PLAYER  را عوض میکند ثابت بماند باید در منوی بازشوی fscommand گزینه allowscale را مساوی false قرار دهید . این هم کد کامل آن :

on (release) {
            fscommand("allowscale", "false");
}


|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
آخرین مطالب

/
از این که به وبلاگ من سر زدید خیلی خیلی ممنونم باتشکر حمیدرضاخوری

💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران