المعلمة يقارنيمكن أن تأخذ القيم التالية:
Private Sub Form_Load() Dim arrMyArray() As String Dim strMyString As String strMyString = "مرحبًا! كيف حالك؟"
arrMyArray = Split(strMyString) "إرجاع "مرحبًا!" Debug.Print arrMyArray(0) End Subأنظر أيضا:صفيف
مرحباً بالجميع، في هذه المقالة أريد أن أعرض لكم أكواد مفيدة للبرامج الصغيرة. والتي يمكنك استخدامها لكتابة برامجك الأكثر جدية، أو كنت تبحث عن هذه الوظائف الموضحة هنا بالضبط.
الخروج مع التأكيد
النوع الأول من البرامج أو الوظائف هو الخروج مع رسالة تؤكد الخروج. بشكل عام، افتح بيئة برمجة Visual Basic، وقم بإنشاء مشروع قياسي، ثم ضع زرًا واحدًا في النموذج، وانقر فوق الزر وستفتح نافذة تحرير التعليمات البرمجية، وتحتاج إلى إدخال الكود التالي هناك:" buttonasicons = vbYesNo + vbQuestion response = MsgBox(message, buttonasicons, title) If response = vbYes Then End End If !}
عنوان = "خروج<>كلمة المرور لبدء البرنامج
كلمة المرور المعتمة، كلمة المرور Pword = "12345" Pword = InputBox("أدخل كلمة المرور") إذا كانت كلمة المرور Pword
حيث أن 12345 هي كلمة المرور لبدء البرنامج. ولكن يمكن استخدام هذا الرمز أينما تريد.
رسالة خافتة Beep كسلسلة أزرار خافتة وأيقونات كعنوان خافت صحيح كسلسلة رسالة = "Message" title = "Message)" buttonasicons = vbOKOnly + vbexciamation MsgBox message, buttonsandicons, title !}
Form_MouseDown الفرعي الخاص (زر كعدد صحيح، Shift كعدد صحيح، X كعدد صحيح، Y كفردي) Form1.CurrentX = X Form1.CurrentY = Y End Sub Private Sub Form_MouseMove (زر كعدد صحيح، Shift كعدد صحيح، X كفردي، Y كـ فردي) إذا كان الزر = 1 ثم سطر (Form1.CurrentX، Form1.CurrentY)-(X، Y)، QBColor(0) End If End Sub
يمكنك تغيير اللون باستخدام المعلمة QBColor(0)، أي. بدلا من 0، ضع رقما آخر.
لإعادة تشغيل جهاز الكمبيوتر الخاص بك: ضع الزر والصق الكود التالي:
خافت strComputer كسلسلة strComputer = "."إطلاق البرنامج في نسخة واحدة
المثال التالي سيساعدك على جعل البرنامج يعمل مرة واحدة فقط، أي: إذا تم إعادة تشغيله، فسوف يعرض الرسالة المقابلة. أدخل ما يلي في رمز النموذج:
نهاية النهاية إذا
إيقاف تشغيل الكمبيوتر
خافت strComputer كسلسلة strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "(impersonationLevel=impersonate,(Shutdown))!\\" _ & strComputer & "\root\cimv2") Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") لـ كل ObjOperatingSystem في colOperatingSystems ObjOperatingSystem.ShutDown "لإيقاف تشغيل التالي"
إنهاء أي عملية
شل "Cmd /x/c Taskkill /f /im ICQlite.exe"، vbvhite حيث، بدلا من ICQlite.exe يمكن أن يكون هناك أي عملية.كم من الوقت يستمر الكمبيوتر؟
وظيفة إعلان خاصة GetTickCount Lib "kernel32" () طويلة "وفي رمز الزر: Dim a_hour، a_دقيقة، a_sec a = Format(GetTickCount() / 1000, "0") "إجمالي الثواني a_days = Int(a / 86400) a = a - a_days * 86400 a_hour = Int(a / 3600) a = a - a_hour * 3600 a_دقيقة = Int(a / 60) a_sec = a - a_دقيقة * 60 MsgBox "جهاز الكمبيوتر الخاص بك قيد التشغيل" & Str(a_days) & "أيام" & Str(a_hour) _ & "ساعات" & Str(a_دقيقة) & "دقائق" & Str(a_sec) & "ثواني"
لقد قمنا بمراجعة وظائف بسيطة، والتي يمكن استخدامها في أي مكان تقريبًا. الآن دعونا نلقي نظرة على أمثلة أكثر جدية، ويمكن أن تساعدك بشكل كبير في كتابة مشاريعك الكبيرة.
نضيف حقلين نصيين وزرًا إلى النموذج، اسم حقل النص الأول هو StartText، واسم حقل النص الثاني هو OutText. خاصية الأسطر المتعددة = صحيح، اسم الزر = CmdStart
تشغيل ثابت كـ Boolean Dim AllDirs كمجموعة جديدة Dim next_dir كعدد صحيح Dim dir_name كسلسلة Dim sub_dir كسلسلة Dim i كعدد صحيح Dim txt كسلسلة إذا كان قيد التشغيل ثم قيد التشغيل = False CmdStart.Enabled = False CmdStart.Caption = "Stopping" آخر قيد التشغيل = True MousePointer = vbHourglass CmdStart.Caption = "Stop" OutText.Text = "" DoEvents next_dir = 1 AllDirs.Add StartText.Text Do while next_dir<= AllDirs.Count dir_name = AllDirs(next_dir) next_dir = next_dir + 1 sub_dir = Dir$(dir_name & "\*", vbDirectory) Do While sub_dir <>"" إذا كان UCase$(sub_dir)<>"PAGEFILE.SYS" وsub_dir<>"." و sub_dir<>".." ثم sub_dir = dir_name & "\" & sub_dir عند حدوث خطأ، استأنف التالي إذا كان GetAttr(sub_dir) وvbDirectory ثم AllDirs.Add sub_dir End إذا sub_dir = Dir$(, vbDirectory) قم بتكرار DoEvents إذا لم يكن قيد التشغيل، ثم قم بالخروج من Loop txt = "" For i = 1 To AllDirs.Count txt = txt & AllDirs(i) & vbCrLf التالي i OutText.Text = txt MousePointer = vbDefault unning = False End If
الآن نقوم بتشغيل البرنامج، ونكتب في حقل النص StartText: C:\windows، ثم انقر فوق الزر.
لنفترض أن لدينا ملف اسمه 1.txt في المجلد C:\1\، ونحتاج إلى نسخه إلى C:\2\ للقيام بذلك نكتب الكود التالي:
نسخة الملف "C:\1\1.txt"، "C:\2\1.txt"
ملحوظة! إذا كان الدليل 2 يحتوي بالفعل على ملف يسمى 1.txt، فسيتم استبداله بـ 1.txt من الدليل 1.
إعلان خاص عن وظيفة CopyFile Lib _ "kernel32.dll" الاسم المستعار "CopyFileA" _ (ByVal lpExistingFileName كسلسلة، ByVal lpNewFileName كسلسلة، ByVal bFailIfExists As Long) طالما الأمر الفرعي الخاص1_Click() " انسخ الملف C:\1.txt إلى D :\1.txt. Dim retval As Long "قيمة الإرجاع" انسخ الملف retval = CopyFile("C:\1.txt"، "D:\1.txt"، 1) إذا كان retval = 0 ثم "If" خطأ MsgBox "لا أستطيع النسخ" آخر "إذا كان كل شيء على ما يرام MsgBox "تم نسخ الملف." End If End Sub
على سبيل المثال، نريد حذف الملف 1.txt من جذر محرك الأقراص C:\
قتل("C:\1.txt")
طريقة API
إعلان خاص عن وظيفة حذف الملف Lib _ "kernel32.dll" الاسم المستعار "DeleteFileA" (ByVal lpFileName كسلسلة) كأمر فرعي خاص طويل1_Click() "حذف الملف C:\Samples\anyfile.txt Dim retval As Long "قيمة الإرجاع retval = حذف الملف( "C:\1.txt") إذا كان الإرجاع = 1 ثم MsgBox "تم حذف الملف بنجاح."
تتحرك
يمكنك، على سبيل المثال، تحريكه بهذه الطريقة:
نسخة الملف "C:\1.txt"، "C:\2\1.txt" اقتل ("C:\1.txt")
لكن الأمر أفضل على هذا النحو (عبر واجهة برمجة التطبيقات):
إعادة تسمية
من أجل إعادة تسمية الملف 1.txt الموجود في C:\ إلى 2.txt يمكنك استخدام الكود التالي:
طريقة API
نسخة الملف "C:\1.txt"، "C:\2.txt" اقتل ("C:\1.txt")
تحديد حجم الملف
يمكن تحديد حجم الملف بطريقتين:
إذا كان من الممكن فتح الملف باستخدام وظيفة OPEN، فيمكنك استخدام وظيفة LOF
تعتيم FileFree كعدد صحيح، تعتيم FileSize بطول FileFree = FreeFile، فتح "C:\WIN\GENERAL.TXT" للإدخال كـ FileFree FileSize = LOF(FileFree)، إغلاق FileFree
أو استخدم وظيفة FileLen
إخفاء الساعة برمجيا
خيار إعلان خاص صريح لوظيفة FindWindow Lib _ "user32" الاسم المستعار "FindWindowA" (ByVal lpClassName كسلسلة، ByVal lpWindowName كسلسلة) كوظيفة إعلان خاصة طويلة FindWindowEx Lib _ "user32" الاسم المستعار "FindWindowExA" _ (ByVal hWnd1 As طويل، ByVal hWnd2 طويل، ByVal lpsz1 كسلسلة، ByVal lpsz2 كسلسلة) طويل خاص يعلن عن وظيفة ShowWindow Lib _ "user32" (ByVal hwnd طويل، ByVal nCmdShow طويل) طويل خافت hnd طويل خاص الأمر الفرعي 1_Click() ShowWindow hnd، 0 End Sub Private Sub Command2_Click() ShowWindow hnd، 1 End Sub Private Sub Form_Load() hnd = FindWindow("Shell_TrayWnd"، vbNullString) hnd = FindWindowEx(hnd, 0, "TrayNotifyWnd", vbNullString) hnd = FindWindowEx( هند، 0، "TrayClockWClass"، vbNullString) Command1.Caption = "إخفاء الساعة" Command2.Caption = "إظهار الساعة" End Sub
أضف وحدة نمطية والصق الكود فيها:
قم بتعريف الوظيفة Shell_NotifyIconA Lib _ "SHELL32" (ByVal dwMessage As Long، lpData As NOTIFYICONDATA) كعدد صحيح عدد صحيح NIM_ADD = 0 شكل عام NIM_MODIFY = 1 شكل عام NIM_DELETE = 2 شكل عام NIF_MESSAGE = 1 شكل عام NIF_ICON = 2 شكل عام NIF_TIP = 4 اكتب NOTIFYCONDATA cbSize بطول hWnd وطويل uID طويل uCallbackMessage طويل وhIcon طويل szTip كسلسلة * 64 نوع النهاية للوظيفة العامة SetTrayIcon (الوضع طويل، hWnd طويل، الأيقونة طويلة، الطرف كسلسلة) طويل خافت nidTemp As NOTIFYICONDATA nidTemp.cbSize = Len(nidTemp) nidTemp.hWnd = hWnd nidTemp.uID = 0& nidTemp.uFlags = NIF_ICON أو NIF_TIP nidTemp.uCallbackMessage = 0& nidTemp.hIcon = أيقونة nidTemp.szTip = Tip & Chr$( 0) SetTrayI يخدع = Shell_NotifyIconA(Mode, nidTemp) وظيفة النهاية
للاستخدام، أدخل في رمز النموذج:
Private Sub Form_Load() SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "اختبار" End Sub "لحذف أمر فرعي خاص1_Click() SetTrayIcon NIM_DELETE, Me.hWnd, 0&, "" End Sub
وظيفة التصريح الخاص FindWindow Lib "user32" الاسم المستعار "FindWindowA" _ (ByVal lpClassName كسلسلة، ByVal lpWindowName كسلسلة) وظيفة التصريح الخاص الطويل FindWindowEx Lib "user32" الاسم المستعار "FindWindowExA" _ (ByVal hWnd1 طويل، ByVal hWnd2 طويل، ByVal lpsz1 كسلسلة، ByVal lpsz2 كسلسلة) طويل، إعلان خاص عن الوظيفة EnableWindow Lib "user32" _ (ByVal hwnd طويل، ByVal fEnable طويل) طويل عام، EnableStartButton (اختياري ممكّن كـ Boolean = True) خافت lHwnd As Long " find hWnd lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString) استدعاء EnableWindow(lHwnd&, CLng(Enabled)) End Sub Private Sub Command1_Click() EnableStartButton False "زر START" تم تعطيل End Sub Private Sub Command2_Click() EnableStartButton صحيح "زر START غير معطل End Sub
يتصل البرنامج بـ FTP، ويحتوي ملف INI على المعلمات - الخادم، تسجيل الدخول، المنفذ، كلمة المرور.
أولاً، قم بإنشاء ملف INI:
Servname=server usern=تسجيل الدخول pwd=منفذ كلمة المرور=port
ويجب وضعه في مجلد البرنامج. بعد ذلك، أدخل في الوحدة:
وظيفة الإعلان الخاصة WritePrivateProfileString Lib _ "kernel32" الاسم المستعار "WritePrivateProfileStringA" (ByVal lpApplicationName كسلسلة، ByVal lpKeyName كسلسلة، _ ByVal lpString كسلسلة، ByVal lpFileName كسلسلة) طالما أن وظيفة التصريح الخاص GetPrivateProfileString Lib _ "kernel32" الاسم المستعار "GetP rivateProfileStringA" (ByVal lpApplicationName As String، ByVal lpKeyName As String، _ ByVal lpDefault As String، ByVal lpReturnedString As String، _ ByVal nSize As Long، ByVal lpFileName As String) وظيفة عامة طويلة ReadIni (Razdel As String، Param) كسلسلة ReadIni = GetValue (Razdel، Param، App.Path & "\test.ini"، "0") نهاية الوظيفة الخاصة GetValue (قسم ByVal كسلسلة، _ مفتاح ByVal كسلسلة، ByVal fFileName كسلسلة، ByVal DefaultValue اختياري كسلسلة = vbNullString) كبيانات خافتة كسلسلة كبيانات سلسلة = String$(1000, Chr$(0)) إذا كان GetPrivateProfileString(Section, Key, DefaultValue, Data, 1000, fFileName) > 0 ثم GetValue = Left$(Data, InStr (Data$, Chr $(0)) - 1) Else GetValue = DefaultValue End If Exit Function End Function
ثم الصق في كود النموذج:
إعلان خاص عن وظيفة InternetOpen Lib _ "wininet.dll" الاسم المستعار "InternetOpenA" (ByVal sAgent As String، ByVal nAccessType As Long، ByVal sProxyName As String، _ ByVal sProxyBypass As String، ByVal nFlags As Long) طالما أعلن خاصًا عن وظيفة InternetConnect Lib _ "wininet.dll" الاسم المستعار "InternetConnectA" (ByVal hInternetSession As Long، ByVal sServerName As String، _ ByVal nServerPort كعدد صحيح، ByVal sUserName كسلسلة، ByVal sPassword كسلسلة، ByVal nService As Long، _ ByVal dwFlags As Long ، ByVal dwContext As Long) أعلن عن وظيفة خاصة طويلة FtpPutFile Lib _ "wininet.dll" الاسم المستعار "FtpPutFileA" (ByVal hFtpSession As Long، ByVal lpszLocalFile كسلسلة، _ ByVal lpszRemoteFile كسلسلة، ByVal dwFlags As Long، ByVal dwContext As طويل) كما تعلن وظيفة منطقية خاصة FtpGetFile Lib _ "wininet.dll" الاسم المستعار "FtpGetFileA" (ByVal hFtpSession As Long، ByVal lpszRemoteFile كسلسلة، _ ByVal lpszNewFile كسلسلة، ByVal fFailIfExists كـ Boolean، ByVal dwFlagsAndAttributes كـ Long، _ ByVal dwFlags As Long، ByVal d wContext As Long) كوظيفة إعلان منطقية خاصة InternetCloseHandle Lib _ "wininet.dll" (ByVal hInet As Long) كعدد صحيح Dim rc& Dim rs&
وفي رمز الزر:
rc& = InternetOpen(""، 0, vbNullString, vbNullString, 0) rs& = InternetConnect(rc&, ReadIni("عام"، "servname")، "0"، _ ReadIni("عام"، "usern")، ReadIni( "عام"، "pwd")، 1، 0، 0) إذا كان FtpGetFile(rs&، "Your file.txt"، "path Where"، False، 0، 1، 0) = False ثم قم بإنهاء الاتصال بـ InternetCloseHandle(rs&) InternetCloseHandle(rc&)قم بإضافة Listbox وزر 1، وأدخل الكود التالي:
خيار إعلان خاص صريح لوظيفة CreateToolhelpSnapshot Lib _ الاسم المستعار "Kernel32" "CreateToolhelp32Snapshot" _ (ByVal lFlags As Long، ByVal lProcessID طويل) طويل للإعلان الخاص عن وظيفة ProcessFirst Lib _ "Kernel32" الاسم المستعار "Process32First" _ (ByVal hSnapShot طالما، uProcess باسم PROCESSENTRY32) طالما أعلن خاصًا عن الوظيفة ProcessNext Lib _ "Kernel32" الاسم المستعار "Process32Next" _ (ByVal hSnapShot As Long، uProcess as PROCESSENTRY32) طالما أعلن خاصًا Sub CloseHandle Lib "Kernel32" (ByVal hPass طويل ) خاص Const TH32CS_SNAPPROCESS طويل = 2& Const خاص MAX_PATH كعدد صحيح = 260 نوع خاص PROCESSENTRY32 dwSize طويل cntUsage طويل th32ProcessID طويل th32DefaultHeapID طويل th32ModuleID طويل cntThreads طويل th32ParentProcessID طويل pcPriClassBase طويل dwFlags طويل szExeFile كسلسلة * MAX_PATH نوع النهاية Di m hSnapShot طويل خافت uProcess As PROCESSENTRY32 Dim r طويل خاص Sub Command1_Click() List1.Clear hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&) إذا hSnapShot = 0 ثم اخرج من النهاية الفرعية إذا uProcess.dwSize = Len(uProcess) r = ProcessFirst(hSnapShot, uProcess) Do while r List1.AddItem uProcess.szExeFile r = ProcessNext(hSnapShot, uProcess) حلقة استدعاء CloseHandle(hSnapShot) End Sub
لكي يتم تحميل البرنامج مع نظام التشغيل Windows، مثل بعض البرامج الأخرى، يمكنك استخدام السجل:
أضف زرين والكود التالي:
Private Sub Command1_Click() "إدخال التسجيل Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Name لبرنامجك"، _ "المسار إلى برنامجك" End Sub Private Sub Command2_Click() "حذف من السجل Set Reg = CreateObject("WScript.Shell") Reg.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\اسم برنامجك" End Sub
ولكي يتم تحميل البرنامج مع Windows، حتى في الوضع الآمن، ثم هذا الكود:
أولاً، طريقة أكثر جدية (افعلها فقط في حالة حدوث ذلك). نسخة احتياطيةالتسجيل).
الأمر الفرعي الخاص1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell"، _ "المسار إلى برنامجك" End Sub Private Sub Command2_Click()" هذا مخصص للاسترداد Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell"، _ "Explorer.exe،" End Sub
حسنا، طريقة بسيطة.
الأمر الفرعي الخاص1_Click() Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit"، _ "C:\\WINDOWS\\system32\\userinit.exe ، المسار إلى برنامجك" End Sub Private Sub Command2_Click()" لاستعادة Set Reg = CreateObject("WScript.Shell") Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit"، _ "C : \\WINDOWS\\system32\\userinit.exe،" End Sub
أضف زرين والصق الكود:
مجموعة وظائف الإعلان الخاصWindowPos Lib "user32" (ByVal hwnd As Long، _ ByVal hWndInsertAfter As Long، ByVal x As Long، ByVal y As Long، _ ByVal cx As Long، ByVal cy As Long، ByVal wFlags As Long) طالما أعلن خاص وظيفة FindWindow Lib "user32" الاسم المستعار "FindWindowA" _ (ByVal lpClassName As String، ByVal lpWindowName As String) As Long Const SWP_HIDEWINDOW = &H80 Const SWP_SHOWWINDOW = &H40 "إخفاء الأمر الفرعي الخاص1_Click() hwnd1 = FindWindow("Shell_traywnd", " ") استدعاء SetWindowPos(hwnd1, 0, 0, 0, 0, 0, SWP_HIDEWINDOW) End Sub "يظهر أمر فرعي خاص2_Click() hwnd1 = FindWindow("Shell_traywnd", "") استدعاء SetWindowPos(hwnd1, 0, 0, 0, 0، 0، SWP_SHOWWINDOW) نهاية الفرعية
لفك ضغط أرشيف RAR، يمكنك استخدام الكود التالي:
WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe x -o+" iPath = "C:\" iArhivName = "اسم الملف.rar" adr = WinRarApp & " """ & iPath & iArhivName & """ " "" & iPath & """ " RetVal = Shell(adr, vbHide)
أضف زر واحد وألصق الكود التالي:
إعلان خاص Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer كـ TMemoryStatus) النوع الخاص TMemoryStatus dwLength كـ dwMemoryLoad كـ طويل dwTotalPhys كـ dwAvailPhys كـ طويل dwTotalPageFile كـ dwAvailPageFile كـ طويل dwTotalVirtual كـ dwAvailVirtual كـ طويل نهاية النوع Dim s كأمر فرعي خاص TMemoryStatus1_Click( ) ms.dwLength = Len(ms) استدعاء GlobalMemoryStatus(ms) MsgBox "الإجمالي:" & ms.dwTotalPhys & vbCr & "مجاني:" _ & ms.dwAvailPhys & vbCr & "المستخدم في %:" & ms.dwMemoryLoad End Sub
ويتم ذلك على النحو التالي. أضف زرين وألصق الكود التالي:
وظيفة الإعلان الخاص ShowWindow& Lib "user32" (ByVal hwnd&, ByVal nCmdShow&) وظيفة الإعلان الخاص FindWindow Lib _ "user32" الاسم المستعار "FindWindowA" (ByVal lpClassName كسلسلة، ByVal lpWindowName كسلسلة) طالما Const SW_HIDE = 0 Const SW_NORMAL = 1 أمر فرعي خاص1_Click() Dim hHandle As Long hHandle = FindWindow("progman", vbNullString) استدعاء ShowWindow(hHandle, SW_HIDE) End Sub أمر فرعي خاص2_Click() Dim hHandle As Long hHandle = FindWindow("progman", vbNullString) استدعاء ShowWindow (hHandle، SW_NORMAL) نهاية الفرعية
باستخدام الزر Command1، تكون الرموز مخفية، Command2 - تظهر.
هذا كل شيء بالنسبة لي، وآمل أن تكون الأمثلة المذكورة أعلاه مفيدة لك، وداعا!
يقدم هذا الفصل "الترسانة" الأساسية لـ VB.NET. معظم المواد تأتي إلى نظرة عامة مختصرةالمفاهيم المشتركة بين جميع لغات البرمجة (مثل المتغيرات والتعليمات الحلقية)، ووصف لأنواع البيانات الأساسية، وخاصة الأرقام والسلاسل المختلفة. قد يرغب القراء المطلعون على VB6 في قراءة هذا الفصل.
تحتوي بعض الأمثلة فقط في هذا الفصل على تعليمات برمجية فعلية يمكن استخدامها في برامج VB.NET الجادة. والحقيقة هي أنه لا يوجد برنامج VB.NET جاد يمكنه الاستغناء عن كائنات قائمة على القالب تسمى الفئات، وهو موضوع سنغطيه في الفصل الرابع. سنبدأ بالبنيات الأساسية للغة، لأنه بخلاف ذلك سيتعين علينا أن نقتصر على البدائية الطبقات التي ليس لها أي قيمة عملية. لا يغطي هذا الفصل الفئات المعرفة من قبل المستخدم ويعرض فقط الأمثلة الأساسية لكيفية استخدام الفئات المضمنة في .NET Framework، والتي تعتبر قوية للغاية.
ماذا يتبع من هذا؟ ومن الغريب أن البرامج المكتوبة في هذا الفصل قريبة جدًا من حيث الأسلوب من البرمجة التقليدية لعصر BASIC المبكر وحتى عصر Fortran و COBOL الذي سبقه (باستثناء بعض التركيبات النحوية الغريبة ولكنها ضرورية). على وجه الخصوص، على عكس البرامج في الفصول اللاحقة، يكون لها دائمًا بداية ونهاية محددة بوضوح، ويتم نقل التحكم من البداية إلى النهاية (على الرغم من أنه يمكن نقل التحكم بواسطة أوامر خاصة).
كما ذكرنا في المقدمة، سنحاول تقديم برامج مكتوبة بأسلوب .NET العادي، مع تجنب التوافق الاصطناعي مع VB6 كلما أمكن ذلك.
يجب أن يكون لكل تطبيق VB.NET نقطة دخول. تحتوي نقطة الإدخال على كود يتم تنفيذه تلقائيًا عند بدء التشغيل، وبعد ذلك يتم نقل التحكم إلى بقية كود البرنامج. في تطبيقات الرسومات البسيطة نسبيًا، قد ترتبط نقطة الإدخال بالنموذج الأولي، كما هو الحال في VB6. ولكن كما رأينا في الفصل الأول، فإن التعليمات البرمجية لـ Windows Forms معقدة للغاية وقد يكون العثور على نقطة الإدخال أمرًا صعبًا. يغطي هذا الفصل فقط تطبيقات وحدة التحكم التي تعمل في نافذة وحدة التحكم (مثل نافذة جلسة DOS). نعم، VB.NET يجعل من السهل إنشاء تطبيقات وحدة التحكم التقليدية المستخدمة غالبًا في برمجة البرمجة النصية من جانب الخادم.
نقطة الدخول لتطبيق وحدة التحكم هي الإجراء الفرعية الرئيسيةالوحدة النمطية (مماثلة للإجراء الفرعية الرئيسيةفي VB6). إذا قمت بتحديد رمز تطبيق وحدة التحكم ( تطبيق وحدة التحكم)، يقوم VB.NET تلقائيًا بإنشاء تطبيق "هيكل عظمي" بنقطة إدخال - وهو إجراء الفرعية الرئيسية:
الوحدة النمطية Module1 Sub Main() End Sub End Module
على عكس VB6، يحدد السطر الأول اسم الوحدة النمطية (الأمر مكتوب بالخط العريض). في في هذا المثاليتم استخدام الاسم الافتراضي Modul el. وفقا للقواعد، يجب أن يتطابق اسم الوحدة مع اسم الملف. لنفترض أنك قمت بتغيير اسم الوحدة في السطر الأول: Module Test1. عند محاولة البدء تطبيق وحدة التحكميتم عرض رسالة خطأ:
تم تحديد رمز بدء التشغيل "Sub Main" في "Test.Modulel". ولكن لم يتم العثور على "Test.Modulel".
تتم إعادة تسمية الوحدة النمطية بعد إنشائها كما يلي:
قياسًا على VB6، يمكن أن يتكون برنامج (حل) VB.NET من عدة وحدات، ولكن وجود إجراء الفرعية الرئيسيةمسموح به فقط في وحدة واحدة. ينتهي التطبيق عند الوصول إلى الأمر نهاية الفرعيةإجراءات الفرعية الرئيسية. على سبيل المثال، يبدو البرنامج الأسطوري "Hello World" كما يلي:
الوحدة النمطية Modul el Sub Main() Console.WriteLine("Hello World") End Sub End Module
إذا قمت بتشغيل هذا البرنامج في IDE، فستومض نافذة DOS بسرعة كبيرة على الشاشة بالكلمات "Hello World" (وتختفي على الفور). يتم إغلاق النافذة عند معالجة الأمر نهاية الفرعية.
باستخدام وظيفة الانقسام في فبا اكسلوبناء الجملة والمعلمات. القيم التي يتم إرجاعها بواسطة الدالة سبليت. أمثلة على الاستخدام.
تم تصميم وظيفة التقسيم في VBA Excel لتقسيم سلسلة إلى سلاسل فرعية باستخدام علامات فاصلة خاصة. يمكن أن يكون الفاصل حرفًا واحدًا أو سلسلة من عدة أحرف. الدالة سبليت هي عكس الدالة، التي تقوم بإنشاء سلسلة واحدة من مجموعة من السلاسل الفرعية.
انقسام (التعبير،،،)
المعلمة المطلوبة لوظيفة Split هي Expression - إذا لم يتم تحديد المعلمات الأخرى بشكل صريح، فسيتم استخدام قيمها الافتراضية.
*إذا تم استخدام المقارنة الثنائية (0 أو CompareMethod.Binary)، فستكون الدالة حساسة لحالة الأحرف. إذا تم استخدام مقارنة نصية (1 أو CompareMethod.Text)، فإن الدالة ليست حساسة لحالة الأحرف.
تقوم الدالة سبليت بإرجاع مصفوفة أحادية البعد، مفهرسة من الصفر، تحتوي على المعلمة المحددة حدعدد السلاسل الفرعية. في أغلب الأحيان، يتم استخدام الدالة Split مع قيمة المعلمة حدبشكل افتراضي، يساوي -1، عندما يتم إرجاع كافة السلاسل الفرعية الموجودة في السلسلة المصدر.
يستخدم المثال الأول محددو حدبشكل افتراضي.
في المثال الثاني محدد= "-"، أ حد = 2.
تقوم الدالة Split بتعيين النتائج باستخدام نص محدد مسبقًا، والذي يمكن استخدامه في سطر المهمة مع أو بدون أقواس فارغة. في الأمثلة أعلاه، تم تحديد المصفوفة بدون أقواس.
يمكنك نسخ الرموز من الأمثلة المذكورة إلى وحدة VBA في مصنف Excel الخاص بك ومعرفة كيفية عملها. قم بتجربة استبدال بياناتك للحصول على فكرة عملية عن ميزة التقسيم.