تبليغاتX
آموزش ، برنامه نویسی
طراحی و اجرای انواع پروژه های برنامه نویسی (شبکه ، بانک اطلاعات ، سیستمی ، کاربردی)
در این برنامه میخوام درباره استفاده از توابع مربوط به زمان و تاریخ بهتون یه چیزایی بگم. برای تفهیم بیشتر این مطالب همه ی این توابع رو در یک مثال کاربردی براتون بیان می کنم که امیدورم براتون مفید واقع بشه .

برای این مثال بعد از ایجاد فرم در ویژوال بیسیک چند Label و یک Timer به فرم اضافه کنید , ابتدا با تابع Format شروع می کنیم . این تابع برای فرمت بندی خروجی به کار می رود و ما در اینجا از آن برای فرمت بندی زمان و تاریخ استفاده می کنیم . شکل کلی این تابع بصورت زیر است :

کد:

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

:: برای فرمت بندی زمان و تاریخ در تابع بالا می توان ار فرمت های زیر استفاده کرد :

مقادیری پارامتر format

Format Description

General نمایش زمان و تاریخ با هم
Long Date نمایش تاریخ به طور کامل
Medium Date نمایش تاریخ بصورت خلاصه
Short Date نمایش تاریخ
Long Time نمایش زمان بصورت ساعت , دقیقه , ثانیه و AM/PM
Medium Time نمایش زمان بصورت ساعت , دقیقه و ثانیه
Short Time نمایش زمان بصورت ساعت و دقیقه


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

http://www.takclick.com/modules.php?name=News&file=article&sid=370&mode=&order=0&thold=0

خوب حالا لازمه که در مورد توابع به کار رفته در مثال بالا توضیحات بدم :

1. تابع Format : در بالا به این تابع اشاره شد .

2. تایع Day : این تابع بخش روز از یک تاریخ را بر می گرداند و بصورت مقابل به کار می رود :

Day(Date) و یا به اینصورت نیز به کار میرود Day(Now)

3. تابع Month : این تابع بخش ماه را از یک تاریخ بر می گرداند و بصورت مقابل به کار می رود :

Month(Date) و یا به اینصورت نیز به کار میرود Month(Now)

4. تابع Year : این تابع بخش سال از یک تاریخ را بر می گرداند و به صورت مقابل به کار میرود :

Year(Date) و یا به اینصورت نیز به کار میرود Year(Now)

5 . تابع MonthName : این تابع بخش نام ماه را از یک تاریخ بر می گرداند و بصورت مقابل به کار می رود :

MonthName(Date) و یا به اینصورت نیز به کار میرود MonthName(Now)

6. تابع Hour : این تابع بخش ساعت را از یک زمان بر می گرداند و بصورت مقابل به کار می رود :

Hour(Time) و یا به اینصورت نیز به کار میرود Hour(Now)

7. تابع Minute : این تابع بخش دقیقه را از یک زمان بر می گرداند و بصورت مقابل به کار می رود :

Minute(Time) و یا به اینصورت نیز به کار میرود Minute(Now)

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

Second(Time) و یا به اینصورت نیز به کار میرود Second(Now)



:: در اینجا می خواهم چندتا تابع دیگه برای کار با تاریخ و زمان بهتون بگم چون فکر مکنم که بکارتون میاد :

تابع DataPart : این تابع بخش خاصی از یک تاریخ را بر می گرداند و بصورت زیر می باشد ( اگر یادتون باشه قبلا گفته بودم که مواردی که در دستور العمل استفاده از تابع در داخل [ ] قرار دارند استفاده از آنها اجباری نیست ) :

DatePart( interval , Date )

مواردی که می توان برای پارامتر Interval از آنها استفاده کرد به قرار زیر است :

مقادیر پارامتر interval
Interval Description

"d" روز
"y" روز از سال
"m" ماه
"q" فصلی از سال
"yyyy" سال
"ww" هفته
"w" روز هفته
"s" ثانیه
"n" دقیقه
"h" ساعت



فکر کنم با این مثال حساب کار دستون بیاد ( اگر تاریخ جاری 2004/12/20 باشد ) :

DatePart("d" , now) ===============> 20


توابع TimeSerial و DateSerial : این توابع به ترتیب سه عدد صحیح را به نوع زمان و تاریخ تبدیل می کنند و شکل کلی آنها بصورت زیر می باشد :

TimeSerial ( Hour , Minute , Second )

DateSerial ( Year , Month , Day )

فکر کنم دیگر نیازی به تو ضیح بشتر نباشه .

تابع DateDiff : این تابع اختلاف بین دو تاریخ را بر می گرداند و بصورت زیر استفاده می شود :

DateDiff( Interval , Date1 , Date2 )

لازم به ذکر است که مقادیری که پارامتر Interval می پذیرد همان مقادیری است که در جدول بالا برای تابع DatePart به آنها اشاره شد . در زیر با یک مثال کار با این تایع را به پایان می بریم :

DateDiff ( "d" , #20/11/2004# , #20/12/2004# ) ======Output=====> 30

تابع CVDate : این تابع یک رشته را به تاریخ تبدیل می کند .
_________________
امام باقر علیه السلام : دانشمندی که مردم از علم او استفاده کنند از هفتاد هزار عابد برتر است .
+ نوشته شده در  جمعه 24 آذر1385ساعت 1:12 بعد از ظهر  توسط محمد امیری  | 

سلام دوستان
میخوام یه مطلب ساده اما خیلی با حال و پرکاربرد رو آموزش بدم.
ممکنه خیلی هاتون اینو بدونید اینو برای اونایی می گم که نمی دونن.
شاید بعضی اوقات نیاز داشته باشین به شبیه سازی فشرده شدن کلیدهای کیبرد مثلا میخواید یه متن رو به Clipboard بفرستید یا هر کار دیگه ای که فکرش رو بکنید حتی در غیر برنامه خودتون.تابع  SendKeys این کار رو به راحتی براتون انجام میده شکل کلی فانکشن به صورت زیره:
کد:

SendKeys string[, wait]

پارامتر اول مشخص کننده همون کلیدی است که میخواید شبیه سازی بشه.
پارامتر دوم هم که یه متغییر بولی هست و به صورت پیش فرض False هست اگه True بشه تا زمانی که کلید فرستاده شده پردازش نشه کنترل رو به روال در حال اجرا بر نمی گردونه اما اگر False بشه کنترل بلافاصله برگشت داده میشه.
کد زیر مثال MSDN برای این فانکشنه (البته با کمی تغییر):
کد:

Private Sub Command1_Click()
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)   ' Run Calculator.
For I = 1 To 50   ' Set up counting loop.
   SendKeys I & "{+}", True   ' Send keystrokes to Calculator
Next I   ' to add each value of I.
SendKeys "=", True   ' Get grand total.
SendKeys "%{F4}", True   ' Send ALT+F4 to close Calculator.
AppActivate "Form1"
End Sub

اینم لیست کلیدها
کد:

BACKSPACE = {BACKSPACE}, {BS}, or {BKSP}
BREAK = {BREAK}
CAPS LOCK = {CAPSLOCK}
DEL or DELETE  = {DELETE} or {DEL}
DOWN ARROW  = {DOWN}
END = {END}
ENTER  = {ENTER}or ~
ESC = {ESC}
HELP = {HELP}
HOME = {HOME}
INS or INSERT = {INSERT} or {INS}
LEFT ARROW = {LEFT}
NUM LOCK = {NUMLOCK}
PAGE DOWN = {PGDN}
PAGE UP = {PGUP}
PRINT SCREEN = {PRTSC}
RIGHT ARROW = {RIGHT}
SCROLL LOCK = {SCROLLLOCK}
TAB = {TAB}
UP ARROW = {UP}
F1-F16 = {F1}-{F16}

SHIFT  = "+"
CTRL  = "^"
ALT  = "%"

برای اعداد و حروف هم که خودشون رو میزارید.
امیدوارم خوشتون اومده باشهWink

+ نوشته شده در  پنجشنبه 23 آذر1385ساعت 10:46 بعد از ظهر  توسط محمد امیری  | 

سلام!!

Thumbs Up

کد:

Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Const WormW_EXSTYLE = (-20)
Private Const WormW_STYLE = (-16)
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const WS_EX_RIGHT = &H1000

Dim WormSTty As Long
Dim WormW As Long
  
Public Sub WormMaskRTL(ByVal Mhwnd As Long, ByVal Mstyle As Long, ByVal WormST As Boolean, Optional ByVal WormEX As Boolean = False)

   WormW = IIf(WormEX, WormW_EXSTYLE, WormW_STYLE)
   WormSTty = GetWindowLongA(Mhwnd, WormW)

      If (WormST) Then
         WormSTty = WormSTty Or Mstyle
      Else
         WormSTty = WormSTty And Not Mstyle
      End If

  SetWindowLongA Mhwnd, WormW, WormSTty
  
End Sub

Private Sub Command1_Click()

   WormMaskRTL MaskEdBox1.hwnd, WS_EX_RIGHT, True, True
   WormMaskRTL MaskEdBox1.hwnd, WS_EX_LAYOUTRTL, True, True
   MaskEdBox1.SetFocus

End Sub

به امید دیدار.
+ نوشته شده در  پنجشنبه 23 آذر1385ساعت 10:33 بعد از ظهر  توسط محمد امیری  | 

طريقه بدست آوردن اطلاعات مربوط به هارد ديسک - سي دي رام - فلاپي ديسک
اطلاعاتي که روالهاي زير برمي گرداند عبارتست از شماره سريال - نوع سيستم فايل -
پشتيباني از نام فايلهاي طولاني و نام درايو

From The Windows.Pas
--------------------
--------------------

function GetVolumeInformationA(lpRootPathName: PAnsiChar;
lpVolumeNameBuffer: PAnsiChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD;
var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: PAnsiChar; nFileSystemNameSize: DWORD): BOOL; stdcall;

function GetVolumeInformationW(lpRootPathName: PWideChar;
lpVolumeNameBuffer: PWideChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD;
var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: PWideChar; nFileSystemNameSize: DWORD): BOOL; stdcall;

function GetVolumeInformation(lpRootPathName: PChar;
lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD;
var lpMaximumComponentLength, lpFileSystemFlags: DWORD;
lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL; stdcall;

Example
-------
-------

Used Variables
--------------
Path : PChar;
--> String that contains the root directory of the volume to
be described.
VolumeName : PChar;
--> Points to a buffer that receives the name of the specified
volume.
VolumeNameSize : DWord;
--> Specifies the lenght in characters of the buffer that
receives the volume name.
SerialNumber : DWord;
--> Points to a variable that receives the volume's serial
number.
MaxLength : DWord;
--> Receives the maximum length in characters of a filename
supported by the specified file system.
(to indicate if long file names are supported)
- long file names --> value : 255
Flags : DWord;
- FS_CASE_IS_PRESERVED
- FS_CASE_SENSITIVE
- FS_UNICODE_STORED_ON_DISK
- FS_PERSISTENT_ACLS
- FS_FILE_COMPRESSION
- FS_VOL_IS_COMPRESSED
(for more info on the flags look in the help file)
FileSystem : PChar;
--> Points to a buffer that receives the name of the specified
file system.
FileSystemNameSize: DWord;
--> Specifies the lenght in characters of the buffer that
receives the filesytem name.

Code
----
Path := 'C:\';
VolumeNameSize := 256;
FileSystemNameSize := 256;
GetVolumeInformation(Path,VolumeName,VolumeNameSize,
@SerialNumber,MaxLength,Flags,FileSystem,FileSystemNameSize);
+ نوشته شده در  پنجشنبه 23 آذر1385ساعت 9:53 بعد از ظهر  توسط محمد امیری  |