کار با فایل ها

کار با فایل ها
curdir دستور تغیر نام پوشه
curdir دستور تغیر نام پوشه
chdir دستور تغیر فهرست جاری
chdrive دستور تغیر درایو جاری
mddir دستور ایجاد پوشه
e:\ در درایو class مثال ساخت پوشه
Chdrive("e:")
Chdir("\")
Mddir("class")
rmdir دستور حذف پوشه خالی

kill دستور حذف فایل
c:/dos/os2.txt مثال :حذف فایل
Kill("c:\dos\os2.txt")
dir دستور جستجوی فایل
جستجو شده و پیغام با جستجو به نمایش در می آید: readme.txt مثال:در برنامه زیر فایل
A=dir(readme.txt)
If a=" " then
Msgbox("no find file")
Else
Msgbox("find file")
End if
روی کاغذ می شود: txt باعث چاپ فایل های با پسوند command مثال در برنامه زیر فشردن 1
: command1_click در رویداد
a=dir("*.txt")
do while a<>""
printer.print a
a=dir()
loop
printer.enddoc


|+| نوشته شده در چهارشنبه 22 دی1389 ساعت 11:47 توسط صادق و علیرضا_(SARS) |

روش دستیابی به فایل ها
روش دستیابی به فایل ها :
1: دسترسی ترتیبی 2: دستیابی تصادفی 3: دسترسی دودویی
*دسترسی ترتیبی :در این روش اطلاعات در فایل به صورت سطر به سطر خوانده یا نوشته می شوند
و برای دستیابی به یک سطر خاص لازم است تا از اطلاعات قبل آن عبور کرده به اطلاعات مورد نظر
برسیم .خواندن و نوشتن اطلاعات در این روش ممکن نیست
مثال : فایل های متنی
*دستیابی تصادفی : در این روش اطلاعات به صورت رکورد به رکورد خوانده و نوشته می شوند.
و با دانستن شماره هر رکورد میتوان مستقیما به اطلاعات آن رکورد دسترسی پیدا کرد
خواندن و نوشتن همزمان رکوردها امکان پذیر است .مثال فایل های پایگاه داده
*دسترسی دودویی : در این روش اطلاعات به صورت بایت به بایت خوانده یا نوشته می شوند
برای دستیابی به یک بایت دانستن شماره آن بایت کافی است به طور همزمان می توان عملیات
خواندن و نوشتن را روی اطلاعات انجام داد
مثال فایل های صوتی و تصویری.
دستور باز کردن فایل :قبل از استفاده از یک فایل ابتدا باید با دستور زیر آن را باز کرد:
open نام و مسیر فایل For عملیات مورد نظر As شماره فایل

عملیات مورد نظر می تواند یکی از موارد زیر باشد :

41
باز کردن فایل به صورت ترتیبی برای خواندن اطلاعات آن. : Input
باز کردن فایل به صورت ترتیبی برای نوشتن اطلاعات در آن در صورتی که فایل از : Output
قبل موجود باشداطلاعات قبلی آن پاک می شوند .
باز کردن فایل به صورت ترتیبی برای اضافه کردن اطلاعات به انتهای آن. : Append
باز کردن فایل به صورت تصادفی برای نوشتن و خواندن اطلاعات. : Random
باز کردن فایل به صورت دودویی برای نوشتن و خواندن اطلاعات آن .شماره فایل باید : Binary
عددی غیر تکراری باشد مثال:
Open"c:\persian.txt" forinput as 3
Open"e:\vb.dat" for random as 5
را برای خواندن اطلاعات آن به صورت ترتیبی باز کرده و c:\persian.txt دستورات فوق فایل
شماره 3 را به آن اختصاص می دهد.
را به صورت تصادفی برای نوشتن و خواندن رکورد های آن باز کرده و e:\vb.dat دستور دوم فایل
شماره 5 را به آن اختصاص می دهد.
تابع یافتن شماره غیر تکراری برای فایل:
نام فایل =freefile( )
مثال:
A=freefile()

Open"Persian.txt"for append as a

42
Cloce# دستور بستن فایل :در پایان کار با یک فایل آن را با دستور زیر می بندیم . شماره فایل
دستور نوشتن در فایل ترتیبی :
Print# اطلاعات مورد نظر , شمار فایل
باعث ایجاد فایلی به نام command مثال 1: در برنامه زیر عبارت فشردن کلید 1
را درون آن می نویسد: iran شده و 10 بار عبارت d: در درایو persian.txt
command1_click : در رویداد
Open"d:\persian.txt"for output as 9
For i=1 to 10
print#9,"iran"
Next
Close#8
با آن text نام فایلی درخواست شده و اطلاعات درون 1 save مثال 2:در برنامه زیر فشردن کلید
نام ذخیره می شود:
قرار می دهیم. true را برابر با text برای 1 multiline اول خاصیت
: command1_click در رویداد
Commondialog1.showsave
Open commondialog1.filename+".txt"for output as 6
Print#6,text1.text
Close#6

43
(eof ) تابع تشخیص انتهای فایل شماره فایل
می شود. true در صورتی که به انتهای فایل رسیده باشیم تابع و مقدار فوق
درون d:\persian.txt محتویات فایل command مثال :در برنامه زیر با فشردن کلید 1
نمایش داده می شود: text1
قرار می دهیم true را برابر با text برای 1 multiline اول خاصیت
command1_click در رویداد
open"d:\persian.txt" for input as 8
do until eof(8)
input#8,a$
text1.text=text1.text+a$
loop
close
دستور نوشتن در فایل تصادفی :
put# مقدار مورد نظر,شماره رکورد و بایت,شماره فایل
دستورخواندن در فایل تصادفی :
get# متغیر,شماره رکورد و بایت,شماره فایل

44
کپی file فایل یاد دشه به 2 command و فشردن 1 file مثال :در برنامه زیر پس از انتخاب در
می شود:
: drive1_change در رویداد
Drive1.path=dir1.path
: dir1_change در رویداد
File1.path=dir1.path
: drive2_change در رویداد
Dir1.path=drive2.drive
: Dir2_change در رویداد
File2.path=dir2.path
همان دکمه کپی ): ) command1_click در رویداد
Open file1.path+"\"+file1.filename for binary as 1
Open file2.path+"\"+file1.filename for binary as 2
I=0
Form2.show
Form2.label1.caption="copy file"+file1.filename
Do until eof(1)
Get#1,I,a$
Put#2,I,a$
I=i+1

Loop
Form2.hide
close
در مثال بالا فرم 2 نشانه صبر و نشان دادن فایل های که دارند کپی می شود.


|+| نوشته شده در چهارشنبه 22 دی1389 ساعت 11:44 توسط صادق و علیرضا_(SARS) |

برنامه سازی ویژوال بیسیک 6 ( قسمت سوم )

آشنایی با حلقه های تکرار

فرض کنید می خواهیم در ویژوال بیسیک برنامه ای بنویسیم که اعداد 1 تا 5 را روی فرم چاپ کند , شاید فکر کنید که به سادگی و با استفاده از دستور Print می توان این کار را انجام داد و فقط باید بنویسیم :
جهت چاپ اعداد روم فرم باید آن را در روال Form_Activate بنویسیم :
Print 1
Print 2
Print 3
Print 4
Print 5
برنامه بالا درست است که اعداد 1 تا 5 را زیر هم روی فرم چاپ می کند اما واقعاً این دستور منطقی است؟ اگر می خواستید برنامه ای بنویسید که اعداد 1 تا 100 را روی فرم چاپ کند آیا باز هم حوصله می کردید و صد تا دستور Print می نوشتید؟ کاملاً مشخص است که راه حل فوق برای حل این مسئله منطقی نیست. ویژوال بیسیک برای حل این مشکل از حلقه های تکرار استفاده می کند. با استفاده از حلقه های تکرار به راحتی می توانیم اعداد ا تا 5 را تنها با چند خط کد نویسی چاپ کنیم.
حلقه تکرار For … Next :
روش استفاده را با یک مثال شرح می دهم :
For a = 1 To 5
Print a
Next a
بعد از For ما نامی را برای شمارنده در نظر می گیریم . سپس علامت مساوی را قرار می دهیم و تعداد دفعات تکرار را تعریف می کنیم. در خط دوم شمارنده را پرینت میکنیم و خط سوم بدین مفهوم است که حلقه شمارنده مجدداً با مقدار جدید به اول باز می گردد و عملیات مربوطه را تکرار می کند. این حلقه 5 بار تکرار می شود و در پایان اعداد 1 تا 5 را پشت سر هم و روی فرم چاپ می کند.
نکات قابل توجه :
· حلقه های تکرار می تواند گام کاهشی و افزایشی هم داشته باشد که با Step آن را مشخص می کنیم.
· جهت چاپ اعداد روم فرم باید آن را در روال Form_Activate بنویسیم یا خاصیت AutoRedraw در پنجره خصوصیات Form_Load برابر Ture قرار دهیم.
· حلقه تکرار می تواند از هر عددی شروع شود و به هر عددی ختم شود.
· بهتر است شمارنده را همیشه با یک حرف انگلیسی نام گذاری کنیم تا دچار سردرگمی نشویم.
قطعه برنامه زیر اعداد 1 تا 5 را روی فرم و زیر هم چاپ می کند :
For i = 5 To 1 Step – 1
Print i
Next i
سوالات خود را در قسمت نظرات مطرح نمائید. مطمئن باشید بی پاسخ نمی ماند

|+| نوشته شده در جمعه 2 مهر1389 ساعت 19:48 توسط صادق و علیرضا_(SARS) |

برنامه نویسی ویژوال بیسیک 6 ( قسمت سوم)
با سلام . امیدوارم بازدید کنندگان وبلاگ  psscode یک کمی از تنبلی دست بردارن و دنبال برنامه نویسی برن تا من هم امید وار بشوم و برای این بخش بیشتر کار کنم. از آن جایی که معلوم است ظاهراً این بخش طرف دار کمی دارد. من به شما پیشنهاد می کنم که واقعاً اگر همت کنید می توانید ویژوال بیسیک را بیاموزید.

اما بگذریم. در قسمت سوم آموزش برنامه نویسی ویژوال بیسیک 6 – با توجه به مقالات قبلی و آموزش های داده شده – چند برنامه می نویسیم که با توضیح کامل برای شما گذاشته ام.شاهوار دات نت

برنامه 1) چطور میشه در یک فرم یک منو درست کرد که بتوان با فشردن کلید آن را باز نمود؟
چون منو را بدون استفاده از کلیک انجام میدهیم حتما باید به صورت تقلبی انجام داد
ببینید شما منویی به فرمتان اضافه کنید و سپس کلیدی هم اضافه کنید حالا از فرمان popupmenu در ناحیه کدنویسی مربوط به کلید استفاده میکنیم دقیقا به صورت زیر درمیاد:
()Private Sub Command1_Click
PopupMenu mnufile, , 0, 0
End Sub
مختصات 0 و 0 منو را زیر منو اول خواهد برد و شما برای منوهای بعدی باید مختصات را تغیر دهید
یعنی مختصات دقیق x,y زیر منوی مورد نظر را بده خیلی کار سختی نیست چون y همیشه 0 است

البته نام منوی خودتان را به جای mnufile عوض کنید.

برنامه 2) چطوری میشود که کاربر با ورود کردن نام کشور در تکست باکس و فشار دادن کلید،پایتخت اون کشور در تکست باکس دوم  مشخص بشه؟
اول درون فرمت دو تا تکست باکس و یک کامند درست کن

خوب

در ناحیه کد نویسی مربوط به کامند این رو تایپ کن
If Text1.Text = “iran” Then Text2.Text = “TEHRAN”
“If Text1.Text = “germany” Then Text2.Text = “LONDON
حالا  اینجوری میتونی پشت سر هم کشور و پایتخت شون رو برای برنامه درست کنی
تا دلت میخواد کشور و پایتخت بده
البته میتونی فارسی هم بنویسی

البته با این روش میتونی یک  دیکشنری خوب هم درست کنی!

برنامه 3) چطور میشه عکسی از سمتی به سمت دیگر به توسط کلیدی انجام شود؟
در برنامه زیر عکس مورد نظر از سمت چپ به راست حرکت میکند
راهنمایی: با استفاده از تایمر میتونی برنامه خودت رو درست کنی
اول یک متغیر سراسری به نام a درست کن
یک تایمر به فرمت اضافه کن و بعدش خاصیت Enabled اون رو به false تبدیل کن و خاصیت interval تایمرت هم به 1 تبدیل کن چون در حالت پیش فرض این خاصیت مقدارش  0 است. بعدش کدهای زیر رو در تایمرت قرار بده:
a = 1
For a = 1 To 5
Picture1.Left = Picture1.Left + a
Next
بعد یک کنترل picture به فرمت اضافه کن و در سمت چپ فرمت قرارش بده
حالا یک کامند درست کن و کد زیر رو در آن تایپ کن:
Timer1.Enabled = Timer
کد بالا در حقیقت کارش اینه که وقتی کلید کامند زده شد تایمر رو به کار می اندازه
حالا caption کامندت رو به RUN تبدیل کن

به همین سادگی!

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

موفق باشید.

|+| نوشته شده در جمعه 2 مهر1389 ساعت 19:43 توسط صادق و علیرضا_(SARS) |

کتاب آموزش ویژوال بیسیک۶ و کریستال ریپورت
psscode

در این کتاب به آموزش  موارد زیر می پردازیم:

 چگونه در کریستال ریپورت ۱۰ به پایگاه داده اکسس access متصل شویم, چگونه گزارشات ایجاد شده با کریستال ریپورت ۱۰ را در ویژوال بیسیک اجرا کنیم, ارتباط و دستکاری کریستال ریپورت در ویژوال بیسیک, چگونه پایگاه داده رمزگذازی شده را ار طریق ویژوال بیسک به گزارش متصل کنیم و …..

کتاب به زبان فارسی می باشد ودر ۲۱ صفحه با فرمت pdf

دانلود

رمز:www.OnlyDownload.ir

|+| نوشته شده در جمعه 2 مهر1389 ساعت 15:3 توسط صادق و علیرضا_(SARS) |

برنامه نویسی ویژوال بیسیک 6 ( قسمت دوم)

 در قسمت دوم آموزش برنامه نویسی ویژوال بیسیک 6 به ساخت منو می پردازیم. 

منوها : برای قراردادن و طراحی منو برای فرم از منویtools/menu editor را انتخاب میکنیم. 

برای افزودن گزینه ای جدید به منو عنوان آن را در کادر caption و نام آن را در کادر name تایپ میکنیم 

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

برای ترتیب گزینه ها در منو از فلش بالا و پایین استفاده میکنیم و برای آنکه کنار گزینه علامت تیک گذاشته شود از کادر checked برای فعال کردن گزینه از کادر enabled و برای قابل رویت بودن گزینه از کادر vizible استفاده میشود . 

برای استفاده کردن گزینه ای بین گزینه های دیگر از insert و برای حذف یک گزینه از delete استفاده میشود .

psscode

 

برای آنکه بین گزینه های منو خطی قرار گیرد که مثلا بعضی گزینه ها را از بعضی دیگر جدا کند , گزینه ای با caption خط فاصله ایجاد میکنیم و برای قرار دادن خط زیر برای یکی از حروف گزینه به منظور انتخاب گزینه به کمک alt قبل از حرف مورد نظر در caption کاراکتر &را قرار میدهیم : 

مثال: &file 

خاصیت enabled : در حین اجرای برنامه تغیر این خاصیت به true و false باعث غیر فعال شدن گزینه میشود . 

مثال : در برنامه رو به رو گزینه open را غیر فعال میکند : mnuopen.enabeld=false ,که در اینجا mnuopen نام گزینه است 

خاصیت visible : اختصاص مقدار false به این خاصیت گزینه را پنهان میکند . 

خاصیت checked : خاصیت مقدار true به این خاصیت باعث میشود تا کنار گزینه علامت تیک ظاهر شود . 

 

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

|+| نوشته شده در پنجشنبه 1 مهر1389 ساعت 16:15 توسط صادق و علیرضا_(SARS) |

برنامه نویسی ویژوال بیسیک 6 ( قسمت یک)
:هنگام طراحی برنامه پس از انتخاب شی در پنجره properties مشخصه مورد نظر را یافته مقدار آن را تغییر میدهیم
تمرین : تغییر مشخصه caption فرم به iran:
“Form1.caption=”iran
نکته : بعضی از مشخصه ها فقط هنگام طراحی و بعضی دیگر فقط در حین اجرای برنامه قابل تغیرند.
·مشخصه name (برای همه اشیاء) : نام شی در این مشخصه قرار میگیرد , این مشخصه در حین اجرای برنامه قابل تغیر نیست
· ·مشخصه caption (برای اکثر اشیاء) :عنوان شی در این مشخصه قرار میگیرد.
· ·رویداد click (برای همه اشیاء) : با کلیک روی شئ این رویداد رخ می دهد
· ·رویداد dbclick (برای فرم) : دابل کلیک روی فرم باعث رخ دادن این رویداد می شود
تمرین : در برنامه زیر با کلیک روی فرم عنوان آن با کلیک روی فرم عنوان آن به hello و دابل کلیک روی فر عنوان آن به bye تغیر میکند:
: Form1_click
“Form1.caption=”hello
: Form1_dbclick
“Form1.caption=”bye
·مشخصه backcolor (برای فرم) : رنگ زمینه فرم در این مشخصه نگهداری میشود .
· ·شئ text : از این شی برای دریافت یک عبارت از کاربر یا نمایش مقداری به کاربر استفاده میشود .
· ·مشخصه text (برای text) : متن درون شئ text در این مشخصه نگهداری میشود
تمرین:در برنامه زیر با فشردن کلید command1 متن تایپ شده درون شئ text1 در عنوان فرم ظاهر شده و متن درون text
پاک میشود :
ابتدا مشخصه های زیر را تغیر میدهیم :
برای شئ text1 :
“”=text1
برای شئ command1 :
Caption = نمایش
در رویداد command1_click :
Form1.caption=text1.text
“”=Text1.text
رویداد change (برای text) : با هر گونه تغیر در محتویات text این رویداد رخ می دهد .
تمرین : در برنامه زیر پس از تایپ دو عدد درون text1 و text2 وفشردن command1 مجموع آن دو عدد درون text3 ظاهر میشود:
در رویداد command1_click :
(Text3.text=val(text1.text)+val(text2.text
·مشخصه fontsize(برای text) : اندازه فونت متن درون text1 در این مشخصه قرار دارد .
· ·مشخصه Enabled (برای همه اشیاء) : اگر این مشخصه برابر با false قرار داده شود شی غیرفعال میشود .
· ·مشخصه locked (برای همه اشیاء) :اگر این مشخصه را برابر با true قرار دهیم کادر text قفل شده و کاربر نمیتواند محتویات آن را تغیر دهد
· ·مشخصه maxlenght (برای text) : حداکثر تعداد کاراکترهایی که میتوانند درون text تایپ شوند در این مشخصه قرار میگیرند .
· ·شئ option (دکمه رادیویی) : برای انتخاب یک گزینه از میان چند گزینه به کار میرود
· ·مشخصه value (برای option) : اگر شئ option انتخاب شود مشخصه فوق برای true میشود
· ·اشیاء image و picture : از این دو شئ برای نمایش فایل های تصویری در برنامه استفاده میشود .
· ·مشخصه picture (برای image و picture) : نام و مسیر فایل تصویری مورد نظر در این مشخصه قرار میگیرد .
· ·مشخصه loadpicture (برای image): از این مشخصه برای تعویض عکس در موقع اجرای برنامه استفاده میشود .
· ·مشخصه stretch (برای image) : اگر این مشخصه برابر با true قرار داده شود تصویر انتخاب شده به اندازه آن در می آید
· ·مشخصه visible (برای همه اشیاء) : اگر این مشخصه را برابر با false قرار دهیم شئ پنهان میشود
تمرین:در برنامه زیر با هر با فشردن کلید command1 تصویر درون image ظاهر و پنهان میشود :
به مشخصه picture برای image تصویر مورد نظر را اختصاص میدهیم
در رویداد command1_click :
If image1.vizible=true then
Image1.vizible=false
Else
Image1.vizible=true
End if
در صورتی که سوالی داشتید در قسمت نظرات مطرح نمائید. لطفاً سوالات مرتبط با مقاله را مطرح نمائید و از سوال کردن قسمت های مختف ویژوال بیسک خودداری کنید.
|+| نوشته شده در پنجشنبه 1 مهر1389 ساعت 16:11 توسط صادق و علیرضا_(SARS) |

طراحی splash screen

:: امروز می خواهم چگونگی ساخت یک Splash Screen برای برنامه هایی که مینویسیم را براتون شرح بدم . خوب باز هم باید توابع مورد نیاز را فراخوانی کرده و همچنین ثوایت مورد نیاز را تعریف کنیم

Const LWA_COLORKEY = &H1
Const LWA_ALPHA =
&H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED =
&H80000
Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As
Long
Private
Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal _
dwNewLong As Long) As
Long
Private
Declare Function SetLayeredWindowAttributes Lib _
"user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha _
As Byte, ByVal dwFlags As Long) As
Long

نوع نمایش این Splash Screen به گونه ای است که میزان شفافیت فرم آن از 0 به 255 رسیده و دوباره کاهش یافته به صفر می رسد (یا بعبارت دیگر از حالت نامرئی به شفافیت کامل رسیده و دوباره از شفافیت آن کاسته شده و نامرئی می شود ) . خوب تنها Control که برای این برنامه نیاز داریمTimer می باشد . کدی که در Form_Load می بینید باعث می شود که فرم در ابتدای امر نامرئی باشد چون مقدار bAlfa آنرا 0 داده ام


Private Sub Form_Load()
    
    Dim Ret As
Long
    
'Set the window style to 'Layered'
    Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret

   'SetLayeredWindowAttributes Me.hWnd,0,(0-255),LWA_ALPHA
    SetLayeredWindowAttributes Me.hWnd,0,0,LWA_ALPHA

    Timer1.interval = 1
    End
    
End Sub

در مرحله بعد برای اینکه فرم از حالت نامرئی به مرئی برسد (یعنی مقدار آن از 0 به 255 برسد) یک حلقه For نوشتم . حال برای اینکه فرم دوباره از حالت مرئی به نامرئی برشد یک حلقه For دیگر با گام افزایش -1 نوشتم تا مقدار آنرا کاهش دهد .

Private Sub Timer1_Timer()
 
     For i = 1 To
255
       SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
     Next i

     For i = 255 To 1 Step -
1
       SetLayeredWindowAttributes Me.hWnd,0,CByte(i),LWA_ALPHA
     Next i
     
     Timer1.Enabled =
False
  
End Sub

(*) یک نکته : این برنامه در سیستم عاملهای windows 2000 به بعد قابل اجراست , زیرا توابع مورد استفاده در این برنامه در ویندوزهای 98 و 95 وجود ندارد .

 

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

|+| نوشته شده در پنجشنبه 1 مهر1389 ساعت 12:17 توسط صادق و علیرضا_(SARS) |