67 . آشنایی با امکانات file system object (fso) : برای کار بر روی پوشه ها و فایها از قبیل ساختن فایل یا فولدر و یا حذف آنها و یا جابجایی آنها و یا کپی کردن آنها میتوان استفاده کرد . که بصورت زیر میباشد :
1 . copy file و copy folder با این متدها میتوانیم یک چند فیل و یا پوشه را از محلی به محل دیگر کپی کنیم . ساختار کلی و استفاده این دو متد به صورت زیر میباشد :
بهتره با یک مثال ساده شروع کنیم میخواهیم یک عکس بنام اشکان که در درایو d قرار داره رو به داخل درایو f در پوشه ای بنام a کپی کنیم به صورت زیر عمل میکنیم :
یک دکمه داخل یه فرم اضافه کنید و کپشن اون رو بنویسید کپی فایل و نام دکمه رو در قسمت name بزارید cmdcopy حالا روی دکمه دو بار کلیک کرده و دستورات دکمه رو بصورت زیر مینویسیم :
Private Sub cmdcopy_Click()
Set f = CreateObject("scripting . filesystemobject")
F . copyfile "d:\ashkan.jpg" , "f : \a\"
End Sub
برای کپی کردن پوشه بجای copyfile بنویسید copyfolder بصورت زیر :
پوشه ای بنام b در درایو d به داخل پوشه ای بنام a در درایو f کپی میشود.
Private Sub cmdcopy_Click()
Set f = CreateObject("scripting . filesystemobject")
F . copyfolder "d : \b" , "f : \a\"
End Sub
2 . متد createfolder از این متد برای ایجاد یک پوشه استفاده میشود بصورت زیر :
یک پوشه بنام x در داریو f ساخته میشود.
Private Sub cmdcreatefolder_Click()
Set f = CreateObject("scripting . filesystemobject")
F . createfolder "f :\x\"
End Sub
با اضافه کردن یه حلقه for میتونیم پوشه به تعداد زیاد ایجاد کنیم :
Private Sub cmdcreatefolder_Click()
Set f = CreateObject("scripting.filesystemobject")
For i = 1 To 10
F . createfolder "f : \x\" & str( I )
Next i
End Sub
3 . متد createtextfile از این متد برای ساخت فایل استفاده میشود بصورت زیر :
در مثال زیر یک فایل متنی با نام ashkan در پوشه ای بنام a در درایو f ساخته میشود با محتویات متنی Hello - در مثال زیر به طرز استفاده از متد دقت کنید :
Private Sub cmdcreatefile_Click()
Set f = CreateObject("scripting . filesystemobject")
Set x = f.createtextfile( " f:\a\ashkan.txt " , true)
X . writeline ( " Hello ")
x . Close
End Sub
حالا یه حلقه for به برنامه اضافه کنید و بجای writeline بنویسید write ببینید چه اتفاقی رخ میده :
Private Sub cmdcreatefile _ Click()
Set f = CreateObject("scripting.filesystemobject ")
Set x = f . createtextfile( " f :\ a\ ashkan.txt " , True)
For i = 1 To 50
x.write ( " Hello " )
Next i
X . Close
End Sub
4 . متد deletefile و deletefolder برای پاک کردن فایل یا پوشه بکار میرود و ساختار آن بصورت زیر میباشد :
Private Sub cmddeletefile_Click
Set f = CreateObject( " scripting.filesystemobject " )
F . deletefile " f:\a\ashkan.txt "
End Sub
برای استفاده از متد deletefolder بصورت زیر :
Private Sub cmddeletefolder_Click()
Set f = CreateObject( " scripting . filesystemobject " )
F . deletefolder " f:\a\z "
end sub
نظرات ()
66 . برنامه ای بنویسید که از متد TextWidth استفاده شده باشد و توسط آن اندازه فونت متن برای چاپ نوشته بکار رود ؟
روش نوشتن برنامه به این صورت است که : 1 . رنگی برای نوشتمون در نظر میگیریم. 2 . یک متغیر برای ذخیره متن ورودی در نظر میگیریم . 3 . سایز متن را تعیین میکنیم. 4 . مختصات قرار گیری متن مان را روی فرم تعیین میکنیم ( از ارتفاع و عرض فرم ) میخوام درست در وسط فرم چاپ بشه.( میتونید هر کجا دوست دارید تعیین کنید ) 5 . توسط currentx و currenty مختصات افقی و عمودی برای چاپ متن تعیین میکنیم . 6 . چاپ متن. Private Sub Command1_Click () ForeColor = QBColor(13) x = Text1.Text FontSize = Val(Text2.Text) wi = TextWidth(x) / 2 hei = TextHeight(x) / 2 If wi > hei Then l = hei Else l = wi CurrentX = ScaleWidth / 2 - wi CurrentY = ScaleHeight / 2 - hei Print x End Sub
نظرات ()65 . میخواهیم یک برنامه بنویسیم که دایره یا بیضی با سه رنگ اصلی RGB ( قرمز- سبز – آبی ) رسم کند ؟
-- برای این کار باید از متد Scale استفاده کنیم -- هر شیء دارای چندین خصوصیت Scale هست مثل : scalewidth , scaleheight , scale top ) ( scalemode , scaleleft , که برای تعریف سیستم مختصات بکار میروند.
برای درست متوجه شدن موضوع بهتره با کدنویسی و دست کاری در کد های نوشته شده این کار را انجام بدیم تا متوجه کار هر کدام از دستورات بشیم . با یه خورده دقت در کد --- متوجه کار اون در هر خط از کدنویسی میشیم.
دستورات را میتونید در رویداد کلیک فرم و یا مثل من اگه دوست داشته باشید که مثل یک رقص نور ساده عمل کند – دستورات را داخل یک تایمر بنویسید ( من از دو کنترل تایمر استفاده کردم برای زیبایی کار ). Private Sub Timer1_Timer() ScaleMode = 1 x = ScaleWidth / 2 y = ScaleHeight / 2 If x > y Then l = y Else l = x For i = 0 To l Circle (x, y), i, RGB(Rnd * 255, Rnd * 255, Rnd * 255), , , 2 Next i End Sub Private Sub Timer2_Timer() ScaleMode = 1 x = ScaleWidth / 2 y = ScaleHeight / 2 l = x For i = 0 To l Circle (x, y), i, RGB(Rnd * 255, Rnd * 255, Rnd * 255), , , 0.5 Next i End Sub حالا عدد جلوی Scalemode را تا عدد 7 یکی یکی تغییر بدید و نتیجش رو ببینید .اگر اعداد (, , , 2 ) و همچنین عدد (, , , 0.5 ) رو نزاریم شکل ما از بیضی به دایره تبدیل میشه . شما اعداد مختلف رو بزارید و نتیجش رو مشاهده کنید. و با متد Circle میتوان دایره یا بیضی رسم کرد . متغییر های X,Y مرکز دایره را مشخص میکند. و L یک متغییر کمکی است . و متغییر I که در حلقه استفاده شده شعاع دایره را تعیین میکند .
نظرات ()