60
I-Giới thiệu Visual Basic .NET Giới thiệu những đặc điểm cơ bản của Visual Basic .NET 1 - Nguồn gốc Visual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) do Microsoft thiết kế lại từ con số không. Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft 's .NET Framework. Do đó, nó cũng không phải là VB phiên bản 7. Thật sự, đây là ngôn ngữ lập trình mới và rất lợi hại, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn đề khúc mắc khi lập trình. Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong ... hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi. 2 - Download Visual Basic .NET Nếu như bạn không có Visual Basic .NET thì bạn có thể đi mua đĩa về cài. Hoặc bạn có thể tải về ở địa chỉ: http://www.microsoft.com/express/vb/ (Bản trial thôi ) 3 - Khởi động Visual Basic .NET Bạn hãy khởi động Visual Basic .NET hoặc Visual Studio .NET. Khi khởi động, nó sẽ như sau:

Hoc Tap Vb.net Tren Mang

Embed Size (px)

Citation preview

Page 1: Hoc Tap Vb.net Tren Mang

I-Giới thiệu Visual Basic .NETGiới thiệu những đặc điểm cơ bản của Visual Basic .NET1 - Nguồn gốcVisual Basic.NET (VB.NET) là ngôn ngữ lập trình khuynh hướng đối tượng (Object Oriented Programming Language) do Microsoft thiết kế lại từ con số không. Visual Basic.NET (VB.NET) không kế thừa VB6 hay bổ sung, phát triển từ VB6 mà là một ngôn ngữ lập trình hoàn toàn mới trên nền Microsoft 's .NET Framework. Do đó, nó cũng không phải là VB phiên bản 7. Thật sự, đây là ngôn ngữ lập trình mới và rất lợi hại, không những lập nền tảng vững chắc theo kiểu mẫu đối tượng như các ngôn ngữ lập trình hùng mạnh khác đã vang danh C++, Java mà còn dễ học, dễ phát triển và còn tạo mọi cơ hội hoàn hảo để giúp ta giải đáp những vấn đề khúc mắc khi lập trình. Hơn nữa, dù không khó khăn gì khi cần tham khảo, học hỏi hay đào sâu những gì xảy ra bên trong ... hậu trường OS, Visual Basic.NET (VB.NET) giúp ta đối phó với các phức tạp khi lập trình trên nền Windows và do đó, ta chỉ tập trung công sức vào các vấn đề liên quan đến dự án, công việc hay doanh nghiệp mà thôi.

2 - Download Visual Basic .NET

Nếu như bạn không có Visual Basic .NET thì bạn có thể đi mua đĩa về cài.   Hoặc bạn có thể

tải về ở địa chỉ:http://www.microsoft.com/express/vb/ (Bản trial thôi   )

3 - Khởi động Visual Basic .NETBạn hãy khởi động Visual Basic .NET hoặc Visual Studio .NET. Khi khởi động, nó sẽ như sau:

Không có gì cả ở trang start page. Ở phía dưới màn hình có 2 nút: "New Project" and "Open Project".

Bây giờ chúng ta sẽ tạo ra một dự án(project) mới bằng cách nhấn vào "New Project". Khi đó, một hộp thoại sẽ hiện lên:

Page 2: Hoc Tap Vb.net Tren Mang

Khi mới học, bạn hãy lựa chọn "Windows Application" trong "Visual Basic Projects" folder. Đây là môi trường để phát triển chương trình chạy trên hệ điều hành Microsoft Windows.Ở khung phía dưới bạn sẽ thấy được đặt sẵn là "WindowsApplication1". Đây là tên mặc định cho project của bạn. Nếu bạn không muốn lấy tên này thì hãy nhấn vào khung đó và đổi tên thành:

My First Project

Phần Location cũng được đặt mặc định. Nó được đặt ở "My Documents" trong folder "Visual Studio Projects". Một folder mới được tạo ra giống với tên project của bạn. Tất cả các files của project sẽ được lưu vào folder này. Nhấn nút OK, môi trường phát triển của Visual Basic NET được mở ra sẽ như sau:

Bạn sẽ cảm thấy rất lạ với nó   Đừng lo, chúng ta sẽ được học trong các bài sau   

Tên bài viết: II-Tìm hiểu về FormTóm tắt: Tìm hiểu các đặc điểm cơ bản của Form trong Visual Basic .NET

1 - Giới thiệu Form

Page 3: Hoc Tap Vb.net Tren Mang

Trong môi trường phát triển Visual Basic .NET, bạn thấy có một khung mà có những cái chấm

nhỏ trên đó   . Đó chính là form:

Những chấm nhỏ trên form đó giúp bạn canh chỉnh những control trên đó một cách chính xác

hơn. Chúng ta sẽ không thấy gì trên form này khi chạy đúng không? Bạn xem nhé:   - Trên khung menu, nhấn nút Debug

- Từ menu hiện ra, nhấn vào Start

- Cách khác: nhấn F5 trên bàn phím

- Chương trính sẽ được chạy

Nếu thành công   thì chương trình sẽ hiện ra:

Như bạn thấy, các chấm nhỏ đã mất.

Nhấn nút X màu đỏ để kết thúc chương trình.

Bạn đã thấy 2 môi trường khác nhau của form: Design và Debug. Design là khi bạn thiết kế form đó(như thêm các control, chỉnh kích thước....), Debug là khi bạn chạy thử chương trình mà bạn đã thiết kế.

2 - Control và cách sử dụngNhững thứ như button, textbox hay label được gọi là control. Chúng được đưa vào Toolbox để dễ sử dụng

Page 4: Hoc Tap Vb.net Tren Mang

Có 5 tiêu đề của control là Data, Components, Windows Forms, Clipboard Ring, và General. Bạn sẽ sử dụng toolbox Windows Forms.Trong phần đầu tiên này, chúng ta sẽ sử dụng các control: Button, TextBox và Label

Hãy thêm một textbox vào form bằng các bước sau:

- Đưa chuột vào Textbox trên khung Windows Forms

- Nhấn kép chuột lên đó

- Một textbox đã được đưa lên form   

Chú ý những chấm nhỏ xung quanh textbox. Nó giúp bạn điều chỉnh kích thước của textbox. Bạn hãy đưa con trỏ chuột vào nút nhỏ đó, giữ chuột trái và di chuyển chuột, bạn có thể thấy textbox đã được thay đổi kích thước.Để di chuyển textbox đó hãy nhấn vào nó và nhấn chuột trái đưa vào giữa form.

- Tiếp tục thêm 2 textbox bằng cách nhấn kép chuột lên toolbar(hoặc nhấn chuột phải vào textbox chọn copy và nhấn chuột phải lên form chọn Paste)

- Chỉnh kích thước như textbox đầu tiên

- Di chuyển nó thẳng vào nhau

Bây giờ nó sẽ như sau:

Tiếp tục thêm các label lên form

- Đưa con trỏ chuột vào label control trên toolbox

- Nhấn kép vào nó

- Thêm 3 label vào form

- Canh chỉnh như hình vẽ

Khi hoàn thành sẽ như sau:

Page 5: Hoc Tap Vb.net Tren Mang

Hãy Debug nó bằng cách nhấn menu Debug - Start hoặc nhấn F5 trên bàn phím

Để kết thúc Debug bằng 1 trong 3 cách:

- Nhấn nút X ở góc form

- Nhấn Debug > Stop Debugging từ menu

- Nhấn Shift + F5 trên bàn phím

3 – PropertyBên phải của môi trường phát triển có khung Properties:

Bạn có thể thấy có rất nhiều thuộc tính(properties) khác nhau của form như:Name, , BackColor, Font, Image, Text, ... Bên phải là giá trị(value) của chúng. Những value này có thể được thay đổi.

Bây giờ chúng ta hãy thay đổi thuộc tính Text

Để tiện sử dụng hãy nhấn vào nút Alphabetic phía trên:

Page 6: Hoc Tap Vb.net Tren Mang

Nó giúp bạn dễ tìm các thuộc tính hơn.

Để thay đổi thuộc tính text của form:

- Chọn form

- Hãy tìm đến thuộc tính Text của form

- Nhấn vào khung bên cạnh dòng Text, xóa dòng chữ Form1 đi bằng cách nhấn nút backspace trên bàn phím

- Khi form1 được xóa, gõ dòng chữ "My First Form"

- Nhấn Enter

Tương tự như thế thay đổi các properties rất dễ   . Bây giờ chúng ta sẽ thay đổi các thuộc tính của Label và Textbox trên form.Nhấn vào Label1 trên form. Property của Label sẽ như sau:

Page 7: Hoc Tap Vb.net Tren Mang

Bạn có thể thấy Label có rất nhiếu properties khác nhau. Thay đổi thuộc tính Text của label:- Với Label1 đã được chọn, nhấn khung chữ bên cạnh ô "Text", xóa chữ "Label1" bằng cách nhấn nút backspace trên bàn phím

- Gõ vào chữ "First Name"

- Nhấn vào phần trống trên form, hoặc nhấn Enter

- Label1 có thuộc tính text chuyển thành "First Name"

- Nếu bạn gõ sai, hãy gõ lại

Tiếp tục thay đổi thuộc tính text của 2 label còn lại:

Label2: Last Name

Label3: Telephone Number

Khi xong việc nó sẽ như sau:

Bạn hãy thay đổi thuộc tính Text của các textbox:

Textbox1: Enter your First Name

Textbox2: Enter your surname

Textbox3: Enter your Phone Number

Bây giờ bạn có thể thấy form thiết kế này không được đẹp lắm   . Hãy thêm một chút màu mè cho nó.

Để thay đổi màu nền của form1 tìm BackColor trong Property Box. Tiếp theo, nhấn mũi tên bên phải của nó, một khung sẽ xuất hiện:

Page 8: Hoc Tap Vb.net Tren Mang

Chọn các tab Custom, Web và System trong khung đó, bạn hãy chọn màu mà bạn ưa thích.

Để thay đổi màu nền của Label hay Textbox bạn cũng làm tương tự như trên. Nếu bạn muốn thay đổi màu của cả 3 label cũng lúc nhấn 1 label giữ "Ctrl" và nhấn tiếp 2 label còn lại. Sau đó chọn màu BackColor. Cả 3 label sẽ được đổi màu nền.Nếu như bạn muốn đổi Font của Labels và Textbox, chọn control đó. Bắt đầu với Label1:

- Nhấn vào Label1

- Tìm Font trong Property Box

- Nhấn vào Font để đánh dấu nó

- MS Sans Serif là Font mặc định

Nhấn vào dấu + bên trái chữ Font để xem chi tiết hơn:

Hãy thay đổi thuộc tính của cả 3 label thành:

Font: Arial

Font Style: Bold

Font Size: 10 

Page 9: Hoc Tap Vb.net Tren Mang

Thay đổi Font của cả 3 Textbox như Label.

Khi bạn đã làm xong, hãy save(ghi) lại. Chúng ta sẽ học trong bài sau   

Tên bài viết: III-File project Tóm tắt: Tìm hiểu cách ghi và mở project trong Visual Basic .NET

1 - Các file của projectỞ phía trên bên phải của Môi trường Design, bạn có thể thấy một khung là Solution Explorer (nếu như bạn không thấy, vào View > Solution Explorer)

Solution Explorer hiển thị cho bạn thấy tất cả các file trong project của bạn(chú ý rằng tên project nằm ở phải trên cùng - "My First Project"). Khi bạn ghi lại project, rất nhiều file sẽ

được tạo ra   . Nếu bạn mở ra bằng Windows Explorer, bạn có thể thấy rất nhiều files.

Nếu như bạn muốn mở project từ đây, bạn hãy nhấn kép chuột vào file có đuôi là .vbproj (trong hình trên là "First Form.vbproj")

Trong Visual Basic .NET có rất nhiều file được tạo ra cho project khác với Visual Basic 6. Đây

chính là đặc điểm hướng đối tượng của .NET   

2 - Ghi lại projectĐể ghi lại project hãy làm theo một trong các bước sau:- Nhấn File > Save All từ menu

- Nhấn Ctrl + Shift + S từ bàn phím

- Nhấn nút hình cái đĩa trên toolbar

Nếu bạn không ghi lại thường xuyên thì bạn có thể hỏng việc vì các sự cố có thể xảy ra với

máy tính   

3 - Tên Form

Page 10: Hoc Tap Vb.net Tren Mang

Để tiếp tục bạn hãy tạo một project mới.   Nếu như VB NET đang được mở sẵn, hãy thoát project đang được mở bằng cách nhấn File từ menu và chọn Close Solution. Bạn sẽ trở về Start Page. Nhấn vào nút "New Project". Khi hộp thoại hiện ra chọn Windows Application ở trên. Sau đó đổi tên của project thành Variables. Bạn có thể để location mặc định.Khi bạn nhấn vào nút OK một form mới sẽ xuất hiệnNếu bạn nhìn vào Solution Explorer phía trên, bạn có thể thấy tên project đã được đổi như bạn đã đặt.

Tên của Project bây giờ là Variables- Tên của folder cũng được tạo để chứa các file cho project của bạn.

Nhấn chuột lên form để chọn nó. Sau đó thay đổi thuộc tính Name thành frmVariables. Nhấn Enter để tên được đổi hoặc nhấn lại vào form:

Bây giờ nhấn F5 để chạy project, hoặc nhấn Debug > Start từ menu.

Lúc chương trình chạy   , bạn sẽ gặp hộp thoại sau:

Nhấn nút No để trở lại môi trường phát triển. Bạn có thể thấy khung Task List hiển thị lên màn hình.

Lỗi này xảy ra là do VB chạy một form là Form1. Khi bạn thay đổi tên nó, nó vẫn chạy form đó. Nhưng bạn thấy không có form nào tên là Form1, vì vậy VB hiện lên một hộp thoại

error   

Để giải quyết vấn đề này hãy làm như sau:Trong cửa sổ Solution Explorer, nhấn chuột phải lên tên project của bạn(Variables). Một menu hiện ra, chọn Properties:

Page 11: Hoc Tap Vb.net Tren Mang

Chú ý rằng bạn nhấn lên "Variables", không phải là "Solution Variables". Khi bạn nhấn Properties, bạn thấy một hộp thoại hiện ra:

Trong Startup Object, như bạn thấy, được chọn là Form1. Nhấn vào mũi tên nhỏ và chọn như sau:

Tên form mà bạn đưa có trong danh sách. Chọn frmVariables và nhấn nút OK. Bây giờ hãy

chạy chương trính. Bạn thấy không có hộp thoại error  , và form được hiện lên.

Tên bài viết: IV-Viết Code

Page 12: Hoc Tap Vb.net Tren Mang

Tóm tắt: Học những dòng code cơ bản đầu tiên của Visual Basic .NET

1 - Variables(Biến)Variable(Biến) là gì?Với Visual Basic, và hầu hết các ngôn ngữ lập trình khác, bạn muốn chứa điều gì đó vào bộ nhớ của máy tính, và thao tác với chúng. Giả sử bạn đưa vào 2 số và cần "nói" cho VB thực hiện việc đó. Bạn sẽ dùng biến để làm việc này.Các biến được lưu trữ trong bộ nhớ của máy tính. Cứ tưởng tượng như: một biến là một chiếc hộp giấy. Bây giờ bạn ở trong một phòng lớn, và trong phòng này có rất nhiều hộp giấy. Để đưa 2 số vào, viết số vào trong mẩu giấy và cất nó vào trong hộp giấy, viết số thứ hai và lại cất nó vào trong hộp giấy khác.

Bạn lại có hơn 1000 hộp giấy chứa các mẩu giấy có các con số   . Để tiện ghi nhớ chúng, hãy dán các nhãn lên các hộp giấy đó. Dán nhãn "number1" vào hộp 1, "number2" vào hộp 2.

Chúng ta có 2 bộ nhớ (căn phòng và hộp giấy), và đưa cho chúng những con số (2 biến). Ta cũng thêm những tên biến (mẩu giấy dán) vì vậy ta có thể nhớ chúng ở đâu.Hãy khảo sát đoạn mã:MÃ: CHỌN TẤT CẢ

Dim number1 As Integer

Dim number 2 As Integer

 

number1 = 3

number2 = 5

 

Đoạn mã trên là ở trong VB NET. Đây là cách để VB cài đặt(hoặc khai báo) biến.Hãy tìm hiểu cách khai báo một biến

Dim Viết tắt của Dimension. Nó là một dạng của biến. Bạn khai báo(hay "nói" với VB) cài đặt một biến bằng từ khóa này. Chúng ta sẽ học các dạng khác của biến sau. Nhưng hãy nhớ khai báo một biến bằng từ khóa Dim

number1Giống như cái hộp giấy và giấy dán. Đây là tên một biến. Sau từ khóa Dim, VB xem tên của biến là gì. Bạn có thể đặt các tên biến mà bạn muốn, nhưng sẽ bị giới hạn bởi các ký tự. Hãy tập đưa các tên biến khác nhau để thật dễ hiểu.

As Integer 

Chúng ta nói với VB rằng biến này là một con số(nguyên). Ta sẽ gặp lại Integer sau.

Number1 = 3 

Dấu = không phải để so sánh bằng. Dấu bằng để gán giá trị. Nói cách khác, đây là đưa dữ liệu vào biến. Ta nói với VB nhận giá trị 3 cho biến number1. Bạn hãy hình dung như lúc trước là

đưa mẩu giấy vào hộp giấy đó.   

2 - Đưa code vào formĐể dễ hiểu hơn, hãy thực hiện như sau:

- Tạo một project mới, đặt tên tùy ý bạn.

- Thêm 1 Button lên form bằng cách nhấn công cụ Button trên Toolbox sau đó rê chuột lên form và vẽ button.

Bằng cách trên bạn cũng có thể thực hiện với các control khác   

- Thay đổi thuộc tính Text của Button trên thành "Add two numbers"

Tiếp tục thêm một Textbox nữa lên form. Bố trí sao cho form sẽ như sau:

Page 13: Hoc Tap Vb.net Tren Mang

Thay đổi thuộc tính Font của Button thành font chữ mà bạn thích, hãy làm việc này với cả Textbox nhé! 

Để mở cửa sổ viết code, hãy nhấn kép chuột vào Button trên form, cửa sổ code sẽ xuất hiện như sau:

Chúng ta hãy khảo sát đoạn mã:Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

 

End Sub

Hãy chú ý tới kí tự gạch dưới (_), nó được sử dụng để xuống dòng khi một dòng code quá dài. Bạn cũng có thể sử dụng nó để xuống dòng nếu dòng code bạn viết quá dài hoặc để cho dễ nhìn.

Private Private là từ khóa giúp chỉ chương trình của bạn chỉ thấy code của button này.Sub Viết tắt của Subroutine. Từ khóa "Sub" nói với VB rằng có code bên dưới, và nó cần phải được biên dịch

Button1 Đây là tên button của chúng ta. Bạn sẽ nghĩ rằng chúng ta đã xóa "Button1" khi thay đổi thuộc tính Text, thế nhưng tại sao VB vẫn gọi được Button1? Đây là thuộc tính quan trọng nhất của Control gọi là Name. Nếu như bạn thay đổi thuộc tính Name, VB sẽ đổi tên button này cho bạn.

Page 14: Hoc Tap Vb.net Tren Mang

_Click ( ) Đây được gọi là một Event(sự kiện). Nói cách khác, khi button được click, sự kiện Click được xảy ra, và đoạn code mà bạn viết sẽ được thi hành.

End Sub 

Phần kết thúc ở đây. Nó đánh dấu đoạn code được kết thúc.   

Đừng lo nếu bạn không hiểu hết những phần trên. Tiếp tục học bạn sẽ hiểu ra thôi.   Quay trở lại project mà ta đang làm. Hãy nhấn con trỏ vào khoảng trống bên dưới dòng Private Sub Button1_Click(....)

Hãy gõ đoạn mã sau vào:Dim number1 As Integer

Dim number 2 As Integer

Dim answer As Integer

 

number1 = 3

number2 = 5

 

answer = number1 + number2

 

MsgBox answer

 

Sau khi gõ xong, cửa sổ code sẽ như sau:

Hãy ghi project lại và vào Debug > Start hoặc nhấn F5 để chạy thử. Chương trình được chạy. Nhấn vào button, và bạn thấy như sau:

Dừng chương trình lại. Nếu bạn không thấy cửa sổ code đâu cả thì hãy nhấn vào tab Form1.vb phía trên:

Page 15: Hoc Tap Vb.net Tren Mang

Nhấn vào tab "Form1.vb [Design]" để xem form.

Hãy xem lại đoạn code:

- Đầu tiên, chúng ta khai báo từ khóa Dim để nói với VB khai báo biến.

- Tiếp theo chúng ta đưa tên biến(number1)

- Tiếp đến là nói với VB rằng biến là một số nguyên (As Integer)

- Hai biến cũng được làm tương tự là number2 và answer

Sau khi đã khai báo biến, chúng ta lại làm công việc sau:

- Nói với VB biến đầu tiên nhận giá trị 3, và biến thứ hai nhận giá trị 5. Để đưa giá trị vào biến, ta dùng dấu bằng(=). Nhưng đây không phải là so sánh bằng mà là đưa giá trị 3 vào biến number1.number1 = 3

number2 = 5

 

 - Tiếp theo, với toán tử cộng(+) chúng ta cộng 2 biến number1+number2 và đưa kết quả này vào biến answer:answer = number1 + number2

 

- Cuối cùng chúng ta dùng Msgbox để hiển thị kết quả của biến answer.Msgbox giúp bạn có thể hiện lên những câu thông báo tới người dùng, chúng ta sẽ học kĩ hơn trong các bài sau.

Bây giờ hãy thực hành tiếp. Xóa dòng "MsgBox answer" đi. Gõ vào Textbox1 và gõ dấu chấm(.) vào. Bạn có thể thấy một danh sách hiện ra. Đây là danh sách của các thuộc tính và phương thức mà Textbox sử dụng.

Cuộn xuống để tìm trong danh sách từ "Text". Nháy kép chuột lên thuộc tính "Text" đó, danh

sách bị biến mất   Ngoài cách này ra bạn có thể gõ luôn từ Text đằng sau Textbox1 như thế sẽ nhanh hơn.

Để nhận một giá trị cho thuộc tính Text hãy gõ dấu = vào. Ở đây ta muốn hiện kết quả của biến answer lên Textbox. Vì thế ta viết:Textbox1.Text = answer

Chạy thử chương trình, nhấn Button ở trên Form, bạn sẽ thấy số 8 được hiện lên trong

Page 16: Hoc Tap Vb.net Tren Mang

Textbox.

3 - Biến kiểu String(chuỗi)Chúng ta đã được học về biến kiểu Integer(số nguyên) trong phần trên. Bây giờ chúng ta hãy tìm hiểu về biến String(chuỗi)

String là gì? Nó là một dòng chữ.   Để tạo ra một biến kiểu String, hãy thêm As String sau tên biến. Ví dụ muốn tạo ra 2 biến FirstName và LastName kiểu String ta có thể viết như sau:Dim FirstName As String

Dim LastName As String

Để gán cho chúng các giá trị ta cũng sử dụng dấu bằng(=). VD:FirstName = "Only"

LastName = "Nguyen"

 

Để dễ hiểu hơn hãy quay trở lại project vừa rồi. Thêm một Button nữa vào Form và đặt thuộc tính Text là "String Test". Bố trí để form như sau:

Nháy kép chuột vào button mới đó và thêm đoạn code sau vào:MÃ: CHỌN TẤT CẢ

Dim FirstName As String

Dim LastName As String

Dim FullName As String

 

FirstName = "Only"

LastName = "Nguyen"

 

FullName = FirstName & LastName

 

Textbox1.Text = FullName

 

Hãy tìm hiểu dòng code này:FullName = FirstName & LastName

Nó giúp bạn kết hợp 2 biến String lại với nhau. Chúng ta dùng ký tự & để kết hợp chúng lại. Hãy nhớ dùng ký tự & để kết hợp các biến String lại với nhau. Biến chứa sự kết hợp này là biến FullName.

Page 17: Hoc Tap Vb.net Tren Mang

Hãy thử chạy chương trình, Khi bạn nhấn vào Button "String Test" thì Textbox sẽ hiện chữ "OnlyNguyen". Chúng lại được đặt sát nhau mà không có khoảng cách. Để giải quyết vấn đề này hãy sửa dòng FullName = FirstName & LastName thành:FullName = FirstName & " " & LastName

4 - Gán giá trị của Textbox vào biếnBạn có thể lấy giá trị mà người dùng nhập vào Textbox để gán cho biến. Để dễ hiểu hơn hãy mở lại project vừa rồi và làm như sau:

- Thêm 1 Textbox mới vào form

- Bố trí lại sao cho hợp lí

- Tìm thuộc tính Name trong bảng Properties và thay đổi như sau:

+ Textbox1 thành txtFirstName

+ Textbox2 thành txtLastName

Hãy chuyển sang tab Form1.vb hoặc nhấn F7, bạn sẽ thấy dòng mã sau bị gạch chân:

Lỗi này xảy ra là do VB không tìm thấy Textbox1 đâu cả. Hãy sửa dòng mã đó thành:

txtFirstName.Text = FullName

Chạy chương trình, bạn sẽ không thấy lỗi.

Tiếp tục, tìm đến dòng mã:

FirstName = "Bill"

LastName = "Gates"

 

Sửa thành:

FirstName = txtFirstName.Text

LastName = txtLastName.Text

 

Hãy nhớ dấu bằng(=) thực hiện công việc sau: Phần ở bên trái dấu bằng được gán giá trị mà ở bên phải có. Tạo thêm một biến WholeName và gán cho nó với giá trị FirstName & " " & LastName, dùng Msgbox để hiển thị biến WholeName lên. Đoạn code sẽ như sau:

Dim FirstName As String

Dim LastName As String

Dim WholeName As String

 

FirstName = txtFirstName.Text

LastName = txtLastName.Text

 

WholeName = FirstName & " " & LastName

 

MsgBox(WholeName)

 

 

Page 18: Hoc Tap Vb.net Tren Mang

Chạy chương trình, nhập chữ "Bill" vào textbox thứ nhất, "Gates" vào textbox thứ hai bạn sẽ có kết quả sau:

5 - Các kiểu biến khác

Giới hạn của các kiểu biến khác như sau:

Số nguyên

Byte 0 tới 255

Short -32,768 tới 32,768

Integer -2,147,483,648 tới 2,147,483,647

Long -9,223,372,036,854,775,808 tới 9,223,372,036,854,775,808

Số thực 

Single Cho số âm: -3.402823 x 10-38 tới -1.401298 x 10-45.

Cho số dương: 1.401298 x 10-45 tới 3.402823 x 1038

Double Cho số âm: -1.79769313486231 x 10308 tới -4.94065645841247 x 10-324.

Cho số dương: 4.94065645841247 x 10-324 tới 1.79769313486231 x 10308.

Chữ và hàng chữ (hay câu)

Char Dùng lưu trữ từng chữ một.

String

Dùng lưu trữ một hàng chữ hay cả nguyên một cuốn sách.   

Các loại đơn giản khác

Page 19: Hoc Tap Vb.net Tren Mang

BooleanTrue hoặc False

DateTừ ngày 1 tháng Giêng năm 100 tới ngày 31 tháng Chạp năm 9999Loại dữ kiện có khả năng tính toán năm nhuần. Nếu ta cộng 1 ngày vào biến số lưu trữ ngày 28/02/2000, ta sẽ có 29/02/2000 nhưng nếu cộng cho ngày 28/02/2001, ta lại có 01/03/2001.

Bạn nên nhớ hãy sử dụng các kiểu biến cho phù hợp vì các kiểu có giới hạn lớn thường tồn bộ nhớ rất nhiều.

Tên bài viết: Bài tậpTóm tắt: Củng cố và ôn lại các bài đã học trong phần trên

[Bài 1

Hãy viết chương trình hiện lên kết quả của phép tính 958787+222686 bằng cách dùng 2

biến

[Bài 2

Làm chương trình có 1 textbox, 1 Label và 1 buttonYêu cầu:

Khi người dùng nhập tên vào textbox và nhấn nút thì sẽ hiện lên trong Label chữ "Hello" và tên đã nhập trong textbox đó.

Hãy thiết kế thật đẹp vào nhé   

[Bài 3

Hãy thử sử dụng các toán tử +,-,*,/ trong VB để tạo ra một chương trình giúp tính toán đơn giản từ 2 con số nhập từ textbox.

Gợi ý:

- Tạo 2 textbox để nhập số

- Tạo 4 button với 4 phép tính

- Viết code tạo ra các biến để lấy các số từ 2 textbox. Dùng hàm Val để lấy con số. VD:

Val(Textbox1.Text) sẽ trả về giá trị số của Textbox1

- Viết lần lượt 4 button để lấy số rồi tính, hiện kết quả bằng hàm Msgbox()

Tên bài viết: V-Kiểm soát Code

Tóm tắt: Học kiểm soát code trong Visual Basic .NET nhờ các phát biểu điều kiện.

1 - Phát biểu IfIf tiếng việt có nghĩa là Nếu. Giả sử bạn đặt ra tình huống sau:If I play game Then I have a headache

Có nghĩa là:

Nếu tôi chơi game thì tôi sẽ nhức đầu   

Để diễn giải các trường hợp khác nữa ta dùng từ khóa Else

Page 20: Hoc Tap Vb.net Tren Mang

If I play game Then 

I have a headache

Else

I sore eyes

Những ví dụ trên cũng được áp dụng vào việc code. Trong Visual Basic các từ khóa để thực hiện những việc giống như trên là If, Then, Else

Chúng ta hãy xem nhé:   

Tạo một project mới lấy tên tùy ý bạn, thêm 1 Button vào Form, nháy kép chuột lên Button đó để thêm đoạn mã dưới đây vào:

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) _

Handles Button1.Click

 

Dim firstname As String

 

firstname = "Only"

If firstname = "Only" Then MsgBox("firstname is Only")

 

End Sub

 

Chạy chương trình này. Khi bạn nhấn vào Button đó thì có một hộp thoại hiện lên với từ "firstname is Only".

Hãy xem xét đoạn mã:

If firstname = "Only" Then MsgBox("firstname is Only")

Bạn có thể hiểu dòng mã này như sau:

Nếu(If)biến firstname mang giá trị(=) là "Only" thì hãy hiện lên hộp thoại có thông điệp "firstname is Only" MsgBox("firstname is Only")

Bạn có thể thấy nếu chúng ta viết một đoạn mã khá dài như trên sẽ rất khó nhìn. Để dễ nhìn hãy viết như sau:

If firstname = "Only" Then

MsgBox("firstname is Only")

End If

 

Đoạn mã trên được giải thích như sau:

1. Xem biến firstname có giá trị là "Only" không

2. Hiện hộp thoại thông báo nếu đúng

3. Kết thúc phát biểu bằng End If

Bây giờ hãy thử xóa hai dấu ngoặc kép(" ") ở chữ "Only" trong dòng đầu xem sao:

Page 21: Hoc Tap Vb.net Tren Mang

Dim firstname as String

 

firstname = "Only"

 

If firstname = Only Then

MsgBox "firstname is Only"

End If

 

VB.NET sẽ gạch chân chữ Only. Nếu bạn chạy thử đoạn code này, bạn sẽ gặp thông báo

lỗi.   Lý do có lỗi ở đây là do VB sử dụng dấu ngoặc kép(" ") để chứa một dòng chữ. Không có dấu ngoặc kép thì VB sẽ hiểu đây không phải là chuỗi những dòng chữ(có thể là 1 biến).Hãy sửa đoạn code lại thành:

firstname = "gatoi"

 

If firstname = "Only" Then

MsgBox "firstname is Only"

Else

MsgBox "firstname is not Only"

End If

Chạy chương trình, bạn sẽ thấy hộp thông báo với dòng chữ: "firstname is not Only". Đoạn mã này chứa từ khóa Else giúp cho việc thực hiện các trường hợp khác của điều kiện được đặt ra của If....Then bị sai

Sửa đoạn code thành:

firstname = "gatoi"

 

If firstname = "Only" Then

MsgBox("firstname is Only")

ElseIf firstname = "gatoi" Then

MsgBox("firstname is gatoi")

Else

Msgbox("unknow firstname")

End If

Từ khóa ElseIf giúp bạn có thể tiếp tục so sánh điều kiện khác được đặt ra nếu điều kiện ban đầu bị sai.

Hãy nhớ công thức của If....Then

If [điều kiện] Then

Code nếu đúng

ElseIf [điều kiện khác] Then

Code nếu khác

Else

Code nếu không đúng cả 2 điều kiện trên

Page 22: Hoc Tap Vb.net Tren Mang

End If

2 - Phát biểu Select Case   Phát biểu Select Case là một cách khác để kiểm tra các điều kiện được đặt. Giả sử bạn có thể so sánh biến firstname ở bên trên dùng If....Then....ElseIf.... thế nhưng lại có rất nhiều

firstname khác nhau. Trong trường hợp này hãy sử dụng phát biểu Select Case   

Hãy tạo một project mới và tạo một Button trên form, một Textbox trên form. Bố trí sao cho phù hợp. Nhấn kép lên Button và thêm đoạn code sau vào:Dim name As String

Dim DietState As String

name = TextBox1.Text

 

Select Case name

 

Case "Only"

DietState = "This is my friend"

Case "gatoi"

DietState = "It's me"

Case Else

DietState = "Who is this?"

 

End Select

 

MsgBox DietState

 

 Chạy chương trình này. Nháy chuột lên Textbox và gõ Only và nhấn lên Button. Bạn thấy sẽ

hiện lên hộp thoại: "This is my friend"   Tương tự hãy gõ gatoi và các tên khác xem thử.

Vậy Select Case làm việc thế nào?

Trong đoạn code ở trên đây, đầu tiên ta khai báo 2 biến là name và DietState. Tiếp theo ta đưa giá trị của Textbox1 vào biến name. Select Case được sử dụng ở dòng kế tiếp:

Select Case name

Biến name được sử dụng trong phát biểu Select Case này có nghĩa là: "Dùng phát biểu Select Case để kiểm tra xem những giá trị trong biến name"Trong những dòng tiếp theo ta xét xem các giá trị được đưa vào có đùng hay không, nếu đúng ở kết quả nào ta sẽ dừng lại ở kết quả đó và thực hiện tiếp đoạn code phía dưới.Trong dòng Case Else để nhận những giá trị khác của biến name nếu các giá trị trên không đúng.

Cuối cùng End Select để kết thúc phát biểu Select Case

Phát biểu Select Case cũng được sử dụng cho kiểu biến số, và tiện dụng hơn nếu dùng từ khóa To. Nó giúp bạn có thể kiểm tra số từ một số nào đến số nào đó mà không cần nhiều từ Case. Xem ví dụ sau:

Select Case age

Case 16 To 21

Page 23: Hoc Tap Vb.net Tren Mang

MsgBox “Thanh niên”

Case 50 To 64

MsgBox “Già”

End Select

 

Ở đây, biến age được kiểm tra. Giá trị của age được kiểm tra trong một khoảng nào đó nhờ To

Hãy nhớ công thức của Select Case:

Select Case [đối tượng]

Case [giá trị 1]

Code ở đây cho 1

Case [giá trị 2]

Code ở đây cho 2

Case [giá trị x]

Code ở đây cho x

Case Else

Các code khác

 3 - Các toán tử>

Ý nghĩa: Lớn hơn

If number > 10 Then

MsgBox "The Number was Greater Than 10"

End If

<Ý nghĩa: Nhỏ hơn

Ví dụ: 

If number <10 Then

MsgBox "The Number was Less Than 10"

End If

>=Ý nghĩa: Lớn hơn hoặc bằng

If number >= 10 Then

MsgBox "The Number was 10 or Greater"

End If

<=Ý nghĩa: Nhỏ hơn hoặc bằng

Ví dụ: 

If number <= 10 Then

MsgBox "The Number was 10 or Less"

End If

Page 24: Hoc Tap Vb.net Tren Mang

AndÝ nghĩa: Nối 2 phép điều kiện bằng And

MÃ: CHỌN TẤT CẢ

If number > 5 And number < 15 Then

MsgBox "Greater than 5 And Less than 15"

End If

OrÝ nghĩa: Nối 2 phép điều kiện bằng Or

Ví dụ: If number > 5 Or number < 15 Then

MsgBox "Greater than 5 Or Less than 15"

End If

<>Ý nghĩa: Không bằng, khác

Ví dụ: 

If number1 <> number2 Then

MsgBox "number1 is not equal to number2"

End If

Thứ tự ưu tiên toán hạn

Các bạn củng đừng quên cái này nhé   

Trong vb thực hiện các phép toán theo một trình tự thứ tự trước sau nhất định, và hầu hết đều giống với toán học:

1. Dấu ngoặc đơn được thực hiện trước nhất ( nghĩa là có quyền ưu tiên cao nhất) và được thực hiện từ các dấu trong cùng tới các dấu bên ngoài.

2. Kế đến là lũy thừa, và được thực hiện từ trái sang phải nếu trong cùng một lệnh có nhiều phép lũy thừa.

3. Rồi đến dấu âm dương (-,+) được thực hiện và thực hiện từ trái sang với quyền ưu tiên như nhau.

4. Tiếp tục đến dấu nhân * và phép chia thập phân /, thực hiện từ trái sang phải với quyền ưu tiên như nhau.

5. Phép chia lấy phần nguyên \ được thực hiện tiếp theo và cũng cùng quy luật từ trái sang nếu có nhiều phép chia này trong cùng một lệnh.

6. Tiếp theo là phép chia lấy phần dư (mod), nếu có nhiều phép chia cùng loại thì cũng được thực hiện từ trái sang.

7. Các phép cộng và trừ cũng được thực hiện từ trái sang phải, và đây là hai phép tính có độ ưu tiên thấp nhất, thực hiện sau cùng.

Bon chen chút   . cho mình bổ xung thêm 1 chút về các toán tử nha: (nếu có ở phần tiếp theo của các bạn thì xóa giúp )

Page 25: Hoc Tap Vb.net Tren Mang

Toán tử gán: 

= Gán toán hạng thứ hai cho toán hạng thứ nhất

+= Cộng hoặc nối chuỗi toán hạng sau vào toán hạng đầu và gán kết quả cho toán hạng

đầu-= Trừ toán hạng sau khỏi toán hạng đầu và gán hiệu cho toán hạng đầu

*= Nhân hai toán hạng với nhau và gán tích cho toán hạng đầu

/= Chia toán hạng đầu cho toán hạng sau và gán thương cho toán hạng đầu

\= Thực hiện phép toán \ giưã toán hạng đầu và toán hạng sau và gán kết quả cho toán hạng đầu

^= Tính lũy thưà toán hạng đầu với số mũ là toán hạng sau và gán kết quả cho toán hạng đầu

&= Nối chuỗi toán hạng sau vào toán hạng đầu và gán kết quả cho toán hạng đầu

Toán tử so sánh

TypeOf … Is… :So sánh kiểu của biến kiểu tham chiếu thứ nhất có trùng kiểu trên toán hạng thứ hai, nếu trùng trả về True, ngược lại False

Is Toán tử dành cho toán hạng kiểu tham chiếu, trả về True nếu hai toán hạng cùngtham chiếu đến một đối tượng, ngược lại là False)

Like Toán tử dành cho toán hạng kiểu String, trả về True nếu toán hạng thứ nhất trùngvới mẫu (pattern) của toán hạng thứ hai, ngược lại là False.

Toán tử luận lý và Bitwise

Not Trả về giá trị ngược lại của toán hạng

And Trả về True (1) khi và chỉ khi hai toán hạng cùng là True (1)

AndAlso Trả về giá trị như And nhưng khi toán hạng thứ nhất là False (0) sẽ không kiểm tra toán hạng thứ hai và trả về False

Or Trả về False (0) khi và chỉ khi hai toán hạng cùng là False (0)

OrElse Trả về giá trị như Or nhưng khi toán hạng thứ nhất là True (1) sẽ không kiểm tra toán hạng thứ hai và trả về True (1)

Xor Trả về True (1) khi và chỉ khi có 1 toán hạng là True (1)

Tên bài viết: VI-Mảng(Array)Tóm tắt: Tìm hiểu về mảng trong Visual Basic .NET

1 - Mảng(Array) là gì?

Trong những bài học trên bạn đã tìm hiểu khá nhiều về biến   . Bạn đã có thể đưa giá trị các con số hay các dòng chữ vào biến rồi.

Bạn có thể thấy mỗi biến chỉ chứa được một thông tin mà thôi. Một mảng cũng là một biến nhưng nó giúp bạn chứa nhiều giá trị vào nó. 

2 - Cách khai báo mảngHãy xem ví dụ sau đây:

Dim MyNumbers(4) As Integer

MyNumbers(0) = 1

MyNumbers(1) = 2

MyNumbers(2) = 3

Page 26: Hoc Tap Vb.net Tren Mang

MyNumbers(3) = 4

MyNumbers(4) = 5

Để khai báo một mảng bạn cũng khai báo giống biến nhưng đằng sau tên của mảng hãy đóng mở ngoặc ( ) và ở giữa dấu ngoặc là số giá trị của mảng này.Trong ví dụ trên bạn có thể thấy mảng MyNumbers được khai báo với 4. Bạn hãy nhớ rằng một mảng luôn được bắt đầu bằng giá trị 0, và vị trí đầu tiên của mảng cũng là 0.

Chúng ta hãy vào việc thực hành luôn để tìm hiểu về mảng:

- Tạo một project mới.

- Thêm một Button lên form

- Thay đổi giá trị Text của Button thành "Integer Array"

- Nhấn kép chuột lên Button và gõ đoạn code sau vào:

Dim MyNumbers(4) As Integer

 

MyNumbers(0) = 1

MyNumbers(1) = 2

MyNumbers(2) = 3

MyNumbers(3) = 4

MyNumbers(4) = 5

 

MsgBox("First Number is: " & MyNumbers(0))

MsgBox("Second Number is: " & MyNumbers(1))

MsgBox("Third Number is: " & MyNumbers(2))

MsgBox("Fourth Number is: " & MyNumbers(3))

MsgBox("Fifth Number is: " & MyNumbers(4))

Chạy thử chương trình. Khi nhấn vào Button bạn sẽ thấy những hộp thoại hiện lên.Khảo sát đoạn code:

- Đầu tiên ta khai báo là một mảng Integer với 5 giá trị.

- Tiếp đến gán các giá trị cho mảng

- Cuối cùng dùng hàm MsgBox để hiện lên các kết quả.

3 - Khai báo lại mảngGiả sử khi bạn viết code bạn muốn khai báo lại mảng vào một lúc nào đó và nhập các giá trị mới cho nó.

Hãy tìm hiểu việc này qua ví dụ sau:

- Vì không biết số giá trị của mảng nên ta hãy khai báo tên mảng và hai dấu ngoặc thôi:

Dim numbers() As Integer

Tiếp đến để khai báo lại mảng ta sẽ dùng hàm ReDim:

ReDim numbers(count)

Trong đó count là số giá trị của mảng mà bạn cần.Chẳng hạn ta cần có 4 giá trị trong mảng numbers ta khai báo như sau:

Page 27: Hoc Tap Vb.net Tren Mang

ReDim numbers(3)

Hãy khảo sát đoạn code này:

Dim numbers() As Integer 'Khai báo mảng numbers

ReDim numbers(3) 'Khai báo lại mảng với 4 giá trị

'Gán các giá trị cho mảng

numbers(0) = 1

numbers(1) = 2

numbers(2) = 3

numbers(3) = 4

Bạn có thể thấy sau các dấu ngoặc đơn ' là các dòng chú chú thích. Khi bạn viết chú thích cho mã trong VB thì hãy viết dấu ' và viết các chú thích phía sau dấu '. Lúc biên dịch VB sẽ bỏ qua

những chú thích này   

Tương tự như khai báo các mảng Integer các mảng String bạn cũng có thể gán các dòng chữ cho các mảng.

Nhưng bạn muốn gán rất nhiều các giá trị cho mảng bởi các số liền nhau hay xuất các giá trị của mảng ra ngoài form một cách nhanh nhất thì phải làm thế nào? Chúng ta sẽ học trong bài

tiếp theo: Vòng lặp(Loop)   

Tên bài viết: VII-Vòng lặp(Loop)Tóm tắt: Học về các vòng lặp trong Visual Basic .NET để thực hiện viết code.

1 - Giới thiệu về vòng lặp

Vòng lặp là cái mà cứ lặp đi và lặp lại một việc gì đó. Nó rất tiện trong việc lập trình   . Hãy xem ví dụ sau đây:

Giả sử bạn muốn tính kết quả của các số từ 1 đến 4. Bạn có thể làm như sau:

Dim answer As Integer

 

answer = 1 + 2 + 3 + 4

 

MsgBox answer

Đoạn code trên rất đơn giản và cũng không dài lắm. Nhưng bạn thử nghĩ nếu chúng ta muốn cộng một nghìn số liên tiếp thì sao? Nó là công việc rất vất vả nếu cứ gõ từng số(:| . Nhưng công việc này sẽ được đơn giản đi nhờ vòng lặp(Loop).Bạn hãy nhớ là vòng lặp sẽ được lặp lại cho đến khi nào nó được ngừng chứ sẽ không diễn ra liên tục.

Bây giờ chúng ta hãy tìm hiểu vòng lặp For Loop.

2 - For LoopDạng đầu tiên của vòng lặp mà chúng ta tìm hiểu gọi là For Loop. Nó là một dạng cơ bản của

vòng lặp mà bạn sẽ sử dụng trong lập trình. Hãy bắt đầu nghiên cứu nó nào   Tạo một project mới lấy tên tùy ý bạn. Thêm một Button lên Form. Nhấn kép chuột lên button đó và gõ đoạn mã sau vào:

Page 28: Hoc Tap Vb.net Tren Mang

Dim answer As Integer

Dim startNumber As Integer

 

answer = 0

 

For startNumber = 1 To 4

 

answer = answer + startNumber

 

Next startNumber

 

MsgBox answer

Chạy chương trình, nhấn lên button. Số 10 được hiển thị lên một hộp thông báo.Chúng ta hãy khảo sát đoạn code trên:

Đầu tiên khai báo 2 biến và gán biến answer thành 0. Tiếp theo ta viết code cho vòng lặp:

For startNumber = 1 To 4

 

answer = answer + startNumber

 

Next startNumber

Chúng ta bắt đầu vòng lặp bằng cách nói với VB dạng vòng lặp mà ta muốn sử dụng. Trên đây là vòng lặp For:

For startNumber = 1 To 4

Tiếp theo ta cần nói với VB số mà ta muốn vòng lặp bắt đầu:

For startNumber = 1 To 4

Ở đây là ta nói: "Vòng lặp sẽ bắt đầu từ số 1". Biến startNumber có thể sử dụng vào việc mà bạn thích. Một tên biến rất phổ biến để bắt đầu một vòng lặp là kí tự i (i=1).Tiếp đến, ta nói với VB số mà vòng lặp kết thúc:

For startNumber = 1 To 4

Từ To đứng trước một số hoặc một biến để nói với VB số lần mà bạn muốn vòng lặp thực hiện. Ở đây ta nói với VB lặp cho đến khi startNumber bằng 4.Dòng lệnh để nói với VB tiếp tục thực hiện vòng lặp là:

Next startNumber

Khi VB thực hiện dòng lệnh này, nó kiểm tra biến startNumber và cộng thêm cho nó 1. Nói cách khác, lấy số tiếp theo của nó sau khi đã biến đã được kiểm tra.Sau việc làm trên VB sẽ lại quay trở lại For. Việc này là một vòng lặp. Để dừng vòng lặp lại, nó kiểm tra biến startNumber, và xem nó có bằng số kết thúc không. Trong trường hợp này thì số kết thúc là 4. Bởi vì Next startNumber cộng 1 vào startNumber, sau đó startNumber mang giá trị 2. Nếu startNumber mang giá trị 2, VB có thể dừng vòng lặp lại được chưa? Chưa thể bởi vì vòng lặp sẽ kết thúc cho đến khi nhận giá trị 4. Vòng lặp được tiếp tục. Khi startNumber lớn hơn số kết thúc, VB thoát khỏi vòng lặp và thực hiện tiếp các đoạn code đằng sau.

Hãy nhớ rằng tại sao chúng ta lại sử dụng vòng lặp: nó giúp cho việc biên dịch code lặp đi lặp

Page 29: Hoc Tap Vb.net Tren Mang

lại.Để kiểm chứng điều này, hãy sửa đoạn code thành:

Dim startNumber As Integer

 

For startNumber = 1 To 4

 

MsgBox("Start Number = " & startNumber)

 

Next startNumber

 

Chạy chương trình, và nhấn vào button. Có chuyện gì xảy ra? Bạn sẽ thấy có những hộp thoại lần lượt hiện ra với những dòng chữ sau:

Start Number = 1

Start Number = 2

Start Number = 3

Start Number = 4

Mỗi lần thực vòng lặp, một hộp thông báo được thi hành. Bạn sẽ nhấn OK 4 lần - startNumber = 1 to 4

Tóm tắt:

Tổng kết lại ta có:

1. Một vòng lặp For cần một số để bắt đầu và một số kết thúc.2. Một vòng lặp For cũng cần một lệnh để lấy số tiếp theo trong vòng lặp.3. Một vòng lặp có đoạn code như sau:

For i = startNumber To endNumber

 

Next i

Ở đoạn code trên ta sử dụng 2 biến dùng để bắt đầu và để kết thúc vòng lặp. Vòng lặp được bắt đầu với biến i. Khi VB thực hiện lặp, nó sẽ cộng thêm một vào biến i. Bạn có thể hình dung như sau:

Dim startNumber As Integer

Dim endNumber As Integer

Dim i As Integer

 

startNumber = 1

endNumber = 4

 

For i = startNumber To endNumber

Msgbox i

Next i

Đưa code cho button của bạn và thử chạy nó. Học đoạn code trên bạn sẽ hiểu nó hoạt động thế nào. 

Bây giờ việc cộng hơn 1000 số liên tiếp với nhau sẽ không còn là quá khó nữa đúng không   

Page 30: Hoc Tap Vb.net Tren Mang

3 - For Each LoopVòng lặp For Each giúp bạn có thể liệt kê các giá trị trong một mảng một cách nhanh nhất mà không cần phải viết code nhiều.

Ví dụ:

- Tạo một project mới

- Thêm 1 button lên form

- Thêm 1 Listbox lên form

- Nháy kép chuột lên button gõ đoạn code sau vào:

Dim chuoi(4) As String

Dim hien as String

chuoi(0) = "Only Nguyen"

chuoi(1) = "is"

chuoi(2) = "my"

chuoi(3) = "best"

chuoi(4) = "friend"

For Each hien in chuoi

ListBox1.Items.Add(hien)

Next hien

Khảo sát đoạn code trên:

- Đầu tiên ta khai báo mảng chuoi và biến hien.

- Tiếp đến gán các giá trị cho chuoi

- Dùng vòng lặp For Each để gán lần lượt từng giá trị của chuoi vào hien

- Ở giữa vòng lặp là câu lệnh giúp bạn có thể thêm các thành phần vào ListBox1

- Cuối cùng dùng Next để thực hiện tiếp vòng lặp

Dùng For Each bạn sẽ không khó khăn khi liệt kê các giá trị trong mảng nữa đúng không   

4 - Do LoopCũng giống như vòng lặp For, vòng lặp Do cũng dùng để thực hiện lặp đi lặp lại một đoạn code. Tuy nhiên vòng lặp Do có những đặc tính thuận lợi giúp bạn viết code dễ dàng hơn. Trong vòng lặp Do bạn có thể sử dụng các từ khóa While và Until 

Để tìm hiểu kĩ hơn về vòng lặp Do, chúng ta hãy thực hành luôn   Tạo một project mới, thêm 1 button lên form. Nhấn kép chuột lên button và thêm đoạn code sau vào:

Dim number as Integer

 

number = 1

 

Do While number < 5

MsgBox number

number = number + 1

Loop

Chạy thử chương trình. Nhấn chuột lên button, bạn sẽ thấy các hộp thoại hiển thị từ 1 tới 4 lần lượt hiện lên.

Page 31: Hoc Tap Vb.net Tren Mang

Hãy xem xét đoạn code trên. Đầu tiên ta khai báo biến number và gán cho number bằng 1. Tiếp đến khai báo vòng lặp Do While number < 5. Hàm MsgBox giúp bạn hiện lên các câu thông báo. Sau đó biến number sẽ được cộng thêm 1 vào. Khi gặp Loop nó lại quay lại Do và kiểm tra điều kiện. Nếu thấy điều kiện đúng là number < 5, vòng lặp sẽ được thực hiện tiếp. Ngược lại nếu điều kiện sai(number = 5 hoặc number > 5) thì vòng lặp sẽ được dừng lại.

Bạn cũng có thể thêm "While ...." xuống phía dưới đằng sau từ "Loop" như sau:

Do

 

number = number + 1

 

Loop While number < 5

Đoạn code này khác với đoạn code ở phía trên. Đầu tiên nó biên dịch đoạn code ở sau từ "Do" trước. Tiếp đến kiểm tra điều kiện ở phía dưới. Nếu điều kiện đúng thì tiếp tục lặp, nếu sai thì vòng lặp sẽ dừng lại.

Do ... UntilMột dạng khác của vòng lặp Do - Do .... UntilHãy sửa đoạn code trên của bạn thành:

Do Until number >= 5

 

MsgBox number

number = number + 1

 

Loop

Đoạn code dùng vòng lặp Do Until sẽ thực hiện như sau:

- Đầu tiên nó kiểm tra điều kiện, nếu thấy điều kiện sai thì bắt đầu thực hiện code phía dưới.

- Lặp lại ban đầu và kiểm tra điều kiện lại

- Sai tiếp tục thực hiện cho đến khi điều kiện đúng thì thôi.

Vòng lặp Do .... Until trái ngược với Do ....While đúng không.Từ khóa Until cũng có thể cho xuống phía dưới như sau:

Do

 

MsgBox number

number = number + 1

 

Loop Until number >= 5

Đoạn mã ở giữa sẽ được biên dịch trước rồi mới kiểm tra điều kiện bên dưới, nếu điều kiện thì tiếp tục biên dịch lại cho đến khi điều kiện đúng thì ngừng lại.

Tên bài viết: VIII-Debug Code

Page 32: Hoc Tap Vb.net Tren Mang

Tóm tắt: Học về cách debug code trong Visual Basic .NET

1 - Các loại ErrorNếu như bạn viết code mà không được hoàn hảo lắm thì thường xảy ra các error. Trong phần này chúng ta sẽ tìm hiểu các cách để sử lý error trong VB.NET

Trong lập trình có 3 dạng error là: Design-Time, Runtime và Logic error

Một lỗi Design-Time thì cũng như giống lỗi cú pháp. Những lỗi này thường xảy ra khi môi trường phát triển không thể hiểu được code của bạn. Chúng rất dễ xử lí trong VB.NET, bởi vì bạn sẽ thấy những gạch màu xanh vào những chỗ lỗi. Nếu như bạn thử chạy chương trình vào lúc này, bạn sẽ gặp một hội thoại nói với bạn về Build error.

Runtime error khá khó để xử lí. Những lỗi dạng này thường xảy ra khi chương trình được chạy. Chúng cũng xảy ra khi bạn thử chương trình mà nó không hoạt động. Runtime error

thường xảy ra nhiều nhất khi lập trình. Để xử lí lỗi này bạn cần phải bẫy lỗi 

Logic errors cũng xảy ra khi chương trình chạy. Dạng lỗi này là khi code không thực hiện đúng ý định mà bạn muốn. Một lỗi kinh điểm của dạng này là vòng lặp dạng "Do While x > 10". Nhưng nếu x lại luôn lớn hơn 10 thì vòng lặp sẽ lặp mãi mà không có cách để thoát ra. Logic error thường gây ra chương trình bị sụp đổ. 

Các bài tiếp theo bạn sẽ được tìm hiểu cách xử lí các lỗi này   

2 - Design Time ErrorHãy nhớ Design Time Error là những lỗi cú pháp. Đó là khi mà VB.NET không thể hiểu những gì mà bạn viết. Nếu bạn không hiểu thì chúng ta hãy xem qua ví dụ sau đây:

- Tạo một Windows project mới

- Thêm một button và một textbox lên form

- Nhấn kép lên button và gõ đoạn code sau vào:

Textbox2.Text = "Debug"

Khi bạn gõ xong đoạn code trên, VB.NET sẽ hiện ra một dấu gạch chân dưới Textbox2:

Nếu bạn đưa chuột qua chữ Textbox2, bạn sẽ thấy một dòng tip màu vàng hiện lên như sau:

Lỗi này xảy ra bởi vì bạn không có một textbox nào gọi là Textbox2. Bạn cũng thấy lỗi: "Not declared" nếu bạn thử gán giá trị cho một biến mà không khai báo biến đó. Ví dụ sửa đoạn code thành:

strText = "Debug"

TextBox1.Text = strText

Ở đây chúng ta sẽ gặp lỗi ở biến strText. Sau đó ta đưa giá trị của biến vào thuộc tính Text của Textbox1. Tuy nhiên VB.NET không thể tìm thấy biến strText nên sẽ gạch dưới biến strText:

Page 33: Hoc Tap Vb.net Tren Mang

Đưa chuột đến biến strText và bạn sẽ lại thấy chữ "not declared":

Vấn đề này là do bạn chưa khai báo biến strText. Sửa đoạn code thành:

Dim strText As String

 

strText = "Debug"

TextBox1.Text = strText

Bây giờ dấu gạch chân sẽ mất đi. Nhưng nếu chúng ta khai báo biến mà sai chỗ, dấu gạch chân lại xuất hiện. Hãy sửa đoạn code thành:

strText = "Debug"

TextBox1.Text = strText

 

Dim strText As String

Những dấu gạch chân sẽ lại xuất hiện. Đó là bởi vì việc khai báo ở dòng thứ 3. Khi VB.NET gặp hai dòng đầu, nó sẽ không thấy biến strText ở đâu.Nếu bạn thấy cửa sổ Task List được mở, bạn sẽ thấy một báo cáo về error của bạn(nếu không thấy cửa sổ Task List, từ menu bar bạn vào View > Other Windows > Task List hoặc nhấn tổ hợp phím Ctrl+Alt+K)

Mô tả của error là:"Local variable 'strText' cannot be referred to before it is declared". Nếu như bạn nháy kép chuột vào vào biểu tượng bên trái, VB.NET sẽ đánh dấu sáng các error trên code của bạn.

Di chuyển tới dòng "Dim … " và giữ chuột kéo nó lên trên, Task List sẽ trống.

3 - Runtime error

Runtime error khó sửa lỗi hơn rất nhiều Design Time Error   . Các lỗi dạng này thường xảy ra khi chương trình đang được chạy. Runtime Error là một lí do làm cho chương trình của bạn bị sụp đổ. Một lỗi đơn giản nhất là chia cho 0. Sửa code cho button và chạy thử nó:

Dim Num1 As Integer

Dim Num2 As Integer

 

Num1 = 10

Num2 = 0

 

Page 34: Hoc Tap Vb.net Tren Mang

TextBox1.Text = CInt(Num1 / Num2)

Hàm CInt giúp bạn chuyển thành một số nguyên. Khi chạy chương trình, nhấn vào button bạn

gặp một hội thoại error   

Nhấn vào nút Break, chương trình của bạn sẽ ngừng lại.

Khi bạn chia cho 0, VB.NET sẽ đưa thông báo lỗi Overflow - không thể nào chia giá trị một số cho 0 vào biến dạng Integer. Nếu bạn chuyển dạng của biến thành Single hay Double, bạn cũng gặp hộp thoại error như trên.

Một ví dụ khác của dạng lỗi này sẽ được thể hiện qua ví dụ sau:Từ control toolbox, thêm một RichTextBox lên form. Thay đổi thuộc tính Name của RichTextBox1 thành rt1. Một RichTextBox cũng giống một Textbox bình thường nhưng nó nhiều tính năng hơn. Một trong những đặc điểm nổi bật của nó là có thể load một file. Sửa đoạn code trên button thành:

rt1.LoadFile("C:\test10.txt", RichTextBoxStreamType.PlainText)

Dòng trên sẽ Load một file Text tên là "test10.txt" vào trong RichTextBox và dạng file này là PlainText.Chạy chương trình, nhấn vào button. Nếu như không có file nào tên là "test10.txt" trong ổ C, bạn sẽ gặp hộp thoại báo lỗi:

Thông tin của hộp thoại báo lỗi rất có ích vào lúc này. Nó nói rằng file "C:\test10.txt" không

tồn tại. Nếu lỗi này xảy ra trong một chương trình bình thường, chương trình sẽ bị tắt   . Bạn không muốn chương trình của mình lại như thế phải không? Chúng ta hãy tiếp tục học về cách xử lí lỗi.

Page 35: Hoc Tap Vb.net Tren Mang

4 - Try … CatchVB.NET có một class dựng sẵn để xử lí error. Class này gọi là Exception. Khi có một exception error, một Exception object được tạo ra. Cấu trúc của code Exception mà VB.NET sử dụng gọi là cấu trúc Try....Catch

Trong phần code cho button, gõ từ Try và nhấn Enter. VB.NET sẽ giúp bạn hoàn thành cấu trúc cho bạn:

Try

 

Catch ex As Exception

 

End Try

Từ khóa Try có nghĩa là "Thử thi hành đoạn code này". Từ Catch có nghĩa là: "Bắt các lỗi ở đây". ex là một biến, và dạng của biến này là Exception object.Hãy đưa dòng code của bạn vào trong phần Try:

Try

 

rt1.LoadFile("C:\test10.txt", RichTextBoxStreamType.PlainText)

 

Catch ex As Exception

 

End Try

Khi bạn chạy chương trình, VB sẽ Thử thi hành đoạn code trong phần Try. Nếu không có vấn đề gì, nó sẽ bỏ qua phần Catch. Tuy nhiên nếu có lỗi xảy ra, VB.NET sẽ nhảy đến phần Catch. Thêm dòng sau vào phần Catch:

MsgBox(ex.Message)

Code của bạn bây giờ sẽ như sau:

Bởi vì ex là một biến object, bây giờ nó có những thuộc tính và phương thức. Một trong số đó là thuộc tính Message. Chạy chương trình và thử nhấn vào button. Bạn sẽ thấy hộp thoại hiện lên:

Page 36: Hoc Tap Vb.net Tren Mang

Nếu như bạn cần biết dạng của error mà chương trình gặp phải, bạn có thể lấy lấy dạng của nó từ hộp thoại Error.

VD:

Dòng đầu tiên nói cho chúng ta Type của Exception:

System.IO.FileNotFoundException

Ở phần trước, bạn có thể bắt mọi lỗi bằng câu lệnh:

Catch ex As Exception

Nhưng nếu bạn biết một lỗi "file not found" ở đâu, bạn có thể thêm vào phần Catch, thay cho Exception:

Catch ex As System.IO.FileNotFoundException

Bạn có thể có nhiều lệnh để bắt lỗi. Đây là đoạn code bắt các lỗi có thể xảy ra:

Try

 

rt1.LoadFile("C:\test10.txt", RichTextBoxStreamType.PlainText)

 

Catch ex As System.IO.FileNotFoundException

 

MsgBox(ex.Message)

 

Catch ex As Exception

 

MsgBox(ex.Message)

 

End Try

Page 37: Hoc Tap Vb.net Tren Mang

Phần cuối của phương thức Try...Catch mà VB.NET không thêm cho bạn: Finally

Try

 

Catch ex As Exception

 

Finally

 

End Try

Phần Finally luôn được biên dịch, cho dù một lỗi có xảy ra hay không. Ví dụ, bạn có thể mở một file ở đằng trước phát biểu Try...Catch. Nếu có một lỗi xảy ra, file vẫn được mở. Nếu có lỗi xảy ra hay không thì vẫn cần phải đóng file đó lại. Bạn có thể sử dụng trong phần Finally

5 - Logic ErrorPhần thứ 3 của các dạng error là Logic error. Rất phức tạp để xử lí lỗi dạng này. Khi gặp lỗi

dạng này hãy nhớ: "Sao không thế này mà lại là thế kia!   "Hãy thêm một button lên form, và đưa đoạn code sau vào:

Dim x As Integer

Dim y As Integer

Dim answer As Integer

 

x = 10.5

y = 3

answer = x * y

TextBox1.Text = answer

Chạy thử chương trình, nhấn chuột lên button. Câu trả lời là thế nào:

Bạn có thể nghĩ 10.5 * 3 = 31.5 nhưng khi thấy chương trình sẽ hiện lên kết quá là 30   Đây là một logic error: khi bạn thấy kết quả không như mình muốn. Vấn đề ở đây, nếu bạn để ý dạng của biến, thì kết quả có phần thập phân nên biến dạng integer sẽ không thể chứa số dạng này.

Để giải quyết lỗi này hãy thay dạng của các biến thành Single hoặc Double, như vậy kết quá sẽ đúng.

6 - Công cụ Breakpoints và Debugging

BreakpointsMột breakpoint là một phần chú thích để cho VB.NET dừng chương trình lại ở chỗ đã đánh dấu đó. Bạn thêm một breakpoint vào dòng code bằng cách nhấn vào khung bên trái. Một hình tròn màu nâu sẽ xuất hiện, dòng đó sẽ được ngắt. Xem 2 hình sau để biết rõ hơn:

Page 38: Hoc Tap Vb.net Tren Mang

Khi bạn nhấn vào khung bên trái, một hình tròn màu nâu sẽ xuất hiện:

Khi bạn chạy chương trình, lúc thi hành đoạn code được đánh dấu thì VB sẽ quay trở lại cửa sổ code và đánh dầu màu vàng dòng code đang được thực hiện:

Để tiếp tục kiểm tra code, nhấn F10 .

Dòng code tiếp theo sẽ được đánh dấu:

Khi bạn đưa chuột vào dòng code lúc chương trình được thi hành, một dòng tip sẽ xuất hiện cho biết các thông số của nó:

Page 39: Hoc Tap Vb.net Tren Mang

Khi chương trình đang ở chế độ Debug, nhấn Debug > Windows > Locals từ menu. Bạn sẽ thấy khung bên trái của màn hình:

Đây là các thông số của các biến và các phần khác khi chương trình được chạy giúp bạn chữa

lỗi dễ dàng hơn 

Tên bài viết: IX - Thao tác với StringTóm tắt: Tìm hiểu về các thao tác với string trong Visual Basic .NET

1 - Phương thức UpperChúng ta hãy tạo một project mới. Thêm 2 textbox và 1 button lên form.Chuyển thuộc tính Text của Textbox1 thành “string variables”. Nhấn kép chuột lên Button để mớ cửa sổ code và gõ đoạn code sau cho button

Dim strUpper As String

 

strUpper = TextBox1.Text

TextBox2.Text = strUpper.ToUpper( )

Chạy chương trình và nhấn chuột vào Button. Bạn sẽ thấy chữ bên trong Textbox1 được chuyển thành chữ hoa vào Textbox2

Lý do nó được chuyển đổi bởi vì ta đã sử dụng phương thức ToUpper cho biến String. Khi bạn gõ xong tên của biến dạng string bạn sẽ thấy một danh sách hiện ra. Đó là danh sách các phương thức để xử lí cho String. Bạn hãy nhấn kép vào phương thức mà bạn muốn. Trong danh sách này có các tên phương thức rất dễ đoán nếu bạn biết Tiếng anh(như ToLower), nhưng có những phương thức rất khó hiểu(như Substring).

Chúng ta sẽ tiếp tục học tiếp các phương thức trong phần tiếp theo.   

2 - Phương thức TrimPhương thức Trim sẽ giúp bạn cắt bỏ các khoảng trống ở bên trái và bên phải của giá trị trong biến String. Giả sử có string là " gatoi " thì sau khi dùng phương thức Trim sẽ trả về là "gatoi"Hãy mở lại project trong phần trên. Thay đổi thuộc tính Text của Textbox1 thành " gatoi " và sửa đoạn code của button thành như sau:

Dim strTrim As String

 

strTrim = TextBox1.Text

Page 40: Hoc Tap Vb.net Tren Mang

TextBox2.Text = strTrim.Trim( )

Khi bạn chạy chương trình, nhấn vào button thì bạn sẽ được trả về giá trị của strTrim được cắt bỏ khoảng trống trên TextBox2

3 - Char và Chars

CharChar là một kiểu biến. Nó có thể chứa được một kí tự vào một lần. Bạn có thể khai báo nó như sau:

Dim OneCharacter As Char

Đưa giá trị cho nó như sau:

OneCharacter = "A"

Hoặc như sau:

Dim OneCharacter As Char = "a"

Khi bạn đưa cả một dãy kí tự vào biến Char thì nó sẽ nhận kí tự đầu tiên của chuỗi vào biến. VD:

Dim OneCharacter As Char = "apple"

Khai báo như vậy thì OneCharacter sẽ chỉ nhận kí tự a cho biến   

CharsChars là một phương thức của String giúp bạn có thể lấy 1 kí tự trong string. Nó khác với Char, vì Char là một kiểu biến, còn Chars là một phương thức bạn có thể dùng với String.

Chars làm việc như sau:

OneCharacter = FirstName.Chars(i)

Ở trong giữa 2 dấu ngoặc đơn, bạn cần một số. Con số này sẽ chỉ vị trí của kí tự trong string mà bạn muốn lấy. Ví dụ:

Dim SomeString As String

Dim OneCharacter As Char

 

SomeString = "gatoi"

OneCharacter = SomeString.Chars(2)

Biến OneCharacter sẽ nhận giá trị là kí tự thứ 3 của SomeString - "t"

Chú ý là VB.NET luôn bắt đầu bằng kí tự 0 lên khi khai báo là 2 thì sẽ là 3   

Page 41: Hoc Tap Vb.net Tren Mang

4 - Phương thức InStr()  

Phương thức InStr( ) của biến String giúp bạn tìm kiếm một chuỗi bên trong một chuỗi   . Ví dụ nếu ta có string là "[email protected]" và bạn muốn biết xem nó có chứa kí tự @ hay không, bạn có thể sử dụng phương thức InStr(). Đoạn code như sau:

FirstString = "[email protected]"

SecondString = "@"

 

position = InStr(FirstString, SecondString)

Biến FirstString là biến mà ta muốn tìm kiếm, SecondString là chuỗi mà ta cần tìm. Bạn cũng có thể thêm kí tự bắt đầu để tìm kiếm. Nếu bạn không thêm thì mặc định sẽ là từ đầu tiên:

position = InStr(1, FirstString, SecondString)

Trong đoạn mã trên sẽ bắt đầu tìm tự kí tự số 1.(Chú ý: Phương thức InStr() bắt đầu từ 1, không phải từ 0 giống Chars() )Nếu như chuỗi mà bạn tìm kiếm không có, giá trị trả về sẽ được chứa bên trong một biến integer (trong vd thì position là biến integer) là 0. Đoạn code sẽ như sau:

If position = 0 Then

 

MsgBox "Not a Valid email address: There was No @ Sign"

 

End If

Ngược lại nếu có chứa chuỗi đó thì sẽ trả về giá trị lớn hơn 0   

5 - Phương thức Substring()  

Một phương thức tiện dụng khác là Substring. Nó sẽ giúp bạn tách một chuỗi con trong một string.(ví dụ nếu ta muốn tách phần ".com" từ địa chỉ email [email protected]

Trong khoảng giữa 2 dấu ngoặc của Substring( ), bạn cần điền vị trí bắt đầu và số kí tự mà bạn muốn tách. VD:

Dim Email as String

Dim DotCom as String

 

Email = "[email protected]"

DotCom = Email.Substring(14, 4)

 

MsgBox(DotCom)

Một hộp thoại sẽ hiện ra để hiển thị chuỗi đã tách từ string. Trong trường hợp này là " .com" ở đoạn cuối ( bắt đầu ở kí tự 14 và chứa 4 kí tự)

Page 42: Hoc Tap Vb.net Tren Mang

6 - Phương thức Length()   Phương thức Length() sẽ giúp bạn xác định số kí tự chứa trong một string. Ví dụ:

Dim Email As String

Dim length As Integer

Email = "[email protected]"

length = Email.Length

 

MsgBox(length)

Đoạn code trên sẽ hiện lên với giá trị là 18(vì email gồm 18 kí tự)Qua phương thức Substring() đã tìm hiểu ở phần trên ta phải tự tìm kí tự bắt đầu để tách phần

".com". Ta có thể áp dụng phương thức Length() để đơn giản hóa công việc   như sau:

Dim Email As String

Dim DotCom As String

 

Email = "[email protected]"

DotCom = Email.Substring(Email.Length - 4, 4)

Bạn thấy không cần đếm số ký tự mà ta cũng tách được phần ".com" đơn giản hơn không   

7 - Phương thức Equals()  

Để so sánh kí tự có bằng với kí tự nào đó hay không bạn có thể viết code như sau:

If DotCom = ".com" Then

MsgBox("Ends in Dot Com")

Else

MsgBox("Doesn't End in Dot Com")

End If

Ngoài ra bạn cũng có thể sử dụng phương thức Equals() để so sánh kí tự như sau:MÃ: CHỌN TẤT CẢ

If DotCom.Equals(".com") Then

Nếu bằng thì DotCom.Equals(".com") trả về True còn không trả về False.

8 - Phương thức Replace()   Bạn có thể thay thế một chữ nào đó bằng chữ khác bằng phương thức này. Hãy xem ví dụ qua đoạn code sau:

Dim OldText As String

Dim NewText As String

 

OldText = "This is some test"

NewText = OldText.Replace("test", "text")

Page 43: Hoc Tap Vb.net Tren Mang

 

MsgBox(OldText)

MsgBox(NewText)

Khi bạn thi hành đoạn code trên thì đầu tiên sẽ hiện lên dòng chữ "This is some test" tiếp đến sẽ hiện lên "This is some text"

Hàm Replace đã giúp bạn thay đổi chuỗi "test" thành "text"

Hãy nhớ rằng thông số đầu tiên là kí tự cần thay, thông số thứ hai là kí tự sẽ thay thế   

9 - Phương thức Insert()   Bạn cũng có thể chèn thêm một chuỗi vào chuỗi hiện tại. Hãy thử đoạn code sau:

Dim SomeText As String

Dim NewText As String

 

SomeText = "This some text"

NewText = SomeText.Insert(5, "is ")

 

MsgBox(SomeText)

MsgBox(NewText)

Số 5 ở bên trong dấu ngoặc ở phương thức Insert có nghĩa là sẽ chèn vào vị trí thứ 5 (nhớ rằng bắt đầu từ 0) và sau đó là chuỗi muốn chèn vào. 

10 - Phương thức Split()   Giả sử bạn có một string như sau:

"UserName1, Password1, UserName2, Password2, UserName3, Password3"

Vấn đề ở đây là ta muốn tách từng phần của chuỗi này ra một mảng. Ta có thể sử dụng hàm Split().Đoạn code ví dụ:

Dim LineOfText As String

Dim i As Integer

Dim aryTextFile() As String

 

LineOfText = "UserName1, Password1, UserName2, Password2"

 

aryTextFile = LineOfText.Split(",")

 

For i = 0 To UBound(aryTextFile)

MsgBox(aryTextFile(i))

Next i

Ở đoạn code này, mảng aryTextFile() được khai báo sẽ giúp bạn chứa các phần của chuỗi LineOfText. Bến trong thông số Split là kí tự để xác định phần cần tách. Sau hàm này thì aryTextFile() sẽ được lưu giữ từng phần lần lượt vào aryTextFile(0) = "UserName1" ;

Page 44: Hoc Tap Vb.net Tren Mang

aryTextFile(1) = "Password1" .... 

Phần cuối ta dùng vòng lặp For để hiện từng kết quá. Hàm UBound() sẽ giúp bạn xác định số cuối cùng của mảng. 

11 - Phương thức Join()  

Phương thức Join() sẽ giúp bạn kết nối các giá trị của mảng thành một string duy nhất. Đoạn code sau sẽ giúp bạn hiểu hơn:

Dim LineOfText As String

Dim i As Integer

Dim aryTextFile(3) As String

 

aryTextFile(0) = "UserName1"

aryTextFile(1) = "Password1"

aryTextFile(2) = "UserName2"

aryTextFile(3) = "Password2"

 

LineOfText = LineOfText.Join("-", aryTextFile)

 

MsgBox(LineOfText)

Hãy chú ý đến dòng mã:

LineOfText = LineOfText.Join("-", aryTextFile)

Thông số đầu tiên ở bên trong dấu ngoặc là kí tự mà bạn muốn kết nối chúng lại với nhau. Tiếp đến là mảng mà ta muốn kết nối. Khi bạn thi hành, Biến LineOfText sẽ chứa giá trị sau:

"UserName1-Password1-UserName2-Password2"

Khi các mảng được nối lại, bạn có thể ghi nó ra 1 file text. Chúng ta sẽ tìm hiểu trong bài

sau 

Tên bài viết: X - Làm việc với File

Tóm tắt: Tìm hiểu về các thao tác với file và xuất nhập file trong Visual Basic .NET

1 - Text fileCác file trong máy tính thường được kết thúc bởi 3 kí tự ở cuối. VD như file của Word sẽ có phần 3 kí tự đuổi khác với file của Excel. 

Có một object rất tiện dụng trong VB.NET là System.IO (IO là viết tắt của Input và Output). Bạn có thể sử dụng object này để thực hiện việc đọc và ghi file text.

Phần mở rộng được sử dụng để nhận biết dạng file. Text file có phần mở rộng là .txt. Hệ điều hành Windows có sẵn một phần mềm giúp soạn Text file rất tốt - Notepad. Notepad sẽ giúp bạn soạn các file Text và ghi nó có phần mở rộng là .txt. Bạn có thể mở Notepad bằng cách vào start > All Programs > Accessories > Notepad hoặc vào start > Run gõ notepad và nhấn Enter

2 - Open Text file

Page 45: Hoc Tap Vb.net Tren Mang

Để mở một file text, bạn cần tạo một thứ gọi là "StreamReader". Đúng như tên gọi của nó là để đọc file. StreamReader là một object trongSystem.IO.Để bắt đầu thực hành hãy mở Notepad. Soạn một file text có nội dung như sau:

Thisisatext file

Save nó vào C:\test.txt

Mở VB.NET và tạo một project mới. Thêm một textbox và một button lên form, đặt thuộc tính Multiline = True

Tiếp đến viết code cho button như sau:

Dim FILE_NAME As String = "C:\test.txt"

 

Dim objReader As New System.IO.StreamReader(FILE_NAME)

TextBox1.Text = objReader.ReadToEnd

 

objReader.Close()

Ở dòng đầu tiên chúng ta khai báo biến FILE_NAME để chứa tên của file text mà chúng ta sẽ đọc. Ở đây là "C:\test.txt"

Tiếp theo ta tạo một object mới cho biến objReader. Từ New sẽ giúp bạn "Tạo một object mới". Dạng của object này là StreamReader :

System.IO.StreamReader

System là object chính. IO là một object bên trong System. Và StreamReader là một object chứa bên trong IO StreamReader cần một tên file để Read. Nó được chứa bên trong 2 dấu ngoặc. Ở đây là biến FILE_NAME

Dòng lệnh tiếp theo là sẽ giúp bạn đọc hết file text. Bây giờ thì objReader là một biến object. Nó đã chứa các thuộc tính mà phương thức để sử dụngPhương thức ReadToEnd sẽ giúp bạn đọc đến hết file. Cả câu lệnh này là đọc file và ghi và Textbox1. Dòng lệnh cuối cùng là đóng StreamReader lại. Chúng ta cần đóng nó lại sau khi đã sử dụng xong nó, nếu không rất có thể sẽ gặp lỗi.

3 - File có tồn tại hay không

Bạn có thể kiểm tra xem file có tồn tại hay không. Nếu có ta có thể mở nó ra còn nếu không thì ta sẽ cho hiện lên một hộp thoại error. Code sẽ như sau:

Dim FILE_NAME As String = "C:\test.txt"

 

Page 46: Hoc Tap Vb.net Tren Mang

If System.IO.File.Exists(FILE_NAME) = True Then

Dim objReader As New System.IO.StreamReader(FILE_NAME)

TextBox1.Text = objReader.ReadToEnd

objReader.Close()

Else

MsgBox("File Does Not Exist")

End If

Trong dòng đầu của phát biểu If ... Then là System.IO.File.Exists(FILE_NAME) = True . Nó bắt đầu với System.IO và tiếp tục với một object là File. Trong đó có phương thức Exits. Nó giúp bạn kiểm tra tính tồn tại của file. Trong dấu ngoặc của Exits là tên file để kiểm tra việc tồn tại. Nếu có tồn tại nó sẽ trả về True còn không thì trả về False.

4 - Đọc file Text từng dòngTrong phần trên chúng ta đã được học về cách đọc cả file text. Nhưng bạn muốn đọc lần lượt từng dòng một trong file text. Bạn có thể sử dụng phương thức ReadLine()Đúng như tên gọi của nó phương thức ReadLine() sẽ đọc từng dòng một trong mỗi lần gọi phương thức này ra. Vì vậy nếu dụng phương thức này mà ta cần đọc hết cả file text ta cần dùng một vòng lặp. Mỗi lần lặp là một dòng cho đến khi nào shết file text thì thôi. Code ví dụ như sau:

Dim TextLine As String

 

Do While objReader.Peek() <> -1

TextLine = TextLine & objReader.ReadLine() & vbNewLine

Loop

Trong đoạn code trên điều kiện để vòng lặp thực hiện là objReader.Peek() <> -1. Phương thức Peek sẽ xem xét từng dòng. Nếu nó không thể tìm thấy bất kì các kí tự nào ở trong các dòng tiếp theo thì nó sẽ trả về giá trị là -1 . Đến lúc này file text đã hết và sẽ ngừng vòng

lặp   Trong vòng lặp có câu lệnh để gán vào biến TextLine nội dung của file text. Phương thức ReadLine() để đọc từng dòng một. Sau mỗi dòng chúng ta sẽ xuống dòng bằng hằng vbNewLine.Sau đây là đoạn code hoàn chỉnh. Hãy đưa nó vào một button:

Dim FILE_NAME As String = "C:\test.txt"

Dim TextLine As String

 

If System.IO.File.Exists(FILE_NAME) = True Then

 

Dim objReader As New System.IO.StreamReader(FILE_NAME)

 

Do While objReader.Peek() <> -1

TextLine = TextLine & objReader.ReadLine() & vbNewLine

Loop

 

Textbox1.Text = TextLine

 

Else

 

Page 47: Hoc Tap Vb.net Tren Mang

MsgBox("File Does Not Exist")

 

End If

Sau khi đã gán cả file text vào biến TextLine ta đưa nội dung của biến vào Textbox1.

5 - Ghi file TextGhi nội dung vào file text cũng tương tự như cách đọc file text. Chúng ta vẫn sẽ dùng System.IO nhưng lúc này là StreamWriter. StreamWriter được sử dụng để ghi file text.Thêm một Button lên form, thay đổi thuộc tính Text thành "Write to File". Nhấn kép chuột lên button đó và viết code như sau:

Dim FILE_NAME As String = "C:\test.txt"

 

If System.IO.File.Exists(FILE_NAME) = True Then

Dim objWriter As New System.IO.StreamWriter(FILE_NAME)

objWriter.Write(TextBox1.Text)

objWriter.Close()

MsgBox("Text written to file")

Else

MsgBox("File Does Not Exist")

End If

Chạy chương trình, gõ một số kí tự vào Textbox và nhấn chuột lên button. Bạn sẽ thấy một hộp thoại có dòng chữ "Text written to file" hiện ra. Khảo sát đoạn mã trên:

- Đấu tiên ta kiểm tra sự tồn tại của file

- Nếu đúng ta sẽ khởi tạo biến objWriter:

Dim objWriter As New System.IO.StreamWriter(FILE_NAME)

Trong dòng mã trên biến objWriter được sử dụng với object StreamWriter.

- Để viết nội dung vào file text, ta viết:

objWriter.Write(TextBox1.Text)

Sau tên biến (objWriter) ta dùng phương thức Write để ghi nội dung. Trong 2 dấu ngoặc của phương thức Write là nội dung mà ta muốn ghi. Bạn cũng có thể thay nội dung của Textbox1 thành các nội dung khác. VD:

objWriter.Write("I'm gatoi_it")

Nhưng bạn không muốn ghi toàn bộ nội dung vào file text như trên   . Bạn cũng có thể ghi từng dòng một. Trong trường hợp này ta sẽ sử dụng phương thức WriteLine . Ví dụ sau sẽ giúp bạn hiểu rõ hơn về phương thức WriteLine:Dim FILE_NAME As String = "C:\test.txt"

Dim i As Integer

Dim aryText(4) As String

Dim text As String

aryText(0) = "This"

Page 48: Hoc Tap Vb.net Tren Mang

aryText(1) = "is"

aryText(2) = "a"

aryText(3) = "text"

aryText(4) = "file"

 

Dim objWriter As New System.IO.StreamWriter(FILE_NAME)

 

For Each text In aryText

objWriter.WriteLine(text)

Next

 

objWriter.Close()

Chúng ta sử dụng vòng lặp để ghi các mảng vào file text bằng phương thức WriteLine. Tuy

nhiên bạn lại muốn nối tiếp nội dung của file cũ bằng nội dung của các mảng trên   Chúng

ta sẽ học ở phần tiếp theo.   

6 - Append TextLúc này chúng ta không ghi đè lên nội dung file mà chúng ta sẽ nối nội dung vào file. Trong trường hợp này ta sẽ sử dụng phương thức Append.Nếu chúng ta muốn nối tiếp(append) text vào file, bạn gõ dấu phẩy đằng sau tên file và gõ True:

Dim objWriter As New System.IO.StreamWriter(FILE_NAME, True)

Đoạn code hoàn chỉnh như sau:Dim FILE_NAME As String = "C:\test.txt"

Dim i As Integer

Dim aryText(4) As String

Dim text As String

aryText(0) = "This"

aryText(1) = "is"

aryText(2) = "a"

aryText(3) = "text"

aryText(4) = "file"

 

Dim objWriter As New System.IO.StreamWriter(FILE_NAME,True)

 

For Each text In aryText

objWriter.WriteLine(text)

Next

 

objWriter.Close()

MsgBox("Text Appended to the File")

Dim FILE_NAME As String = "C:\test.txt"

Dim i As Integer

Dim aryText(4) As String

Dim text As String

aryText(0) = "This"

aryText(1) = "is"

Page 49: Hoc Tap Vb.net Tren Mang

aryText(2) = "a"

aryText(3) = "text"

aryText(4) = "file"

 

Dim objWriter As New System.IO.StreamWriter(FILE_NAME,True)

 

For Each text In aryText

objWriter.WriteLine(text)

Next

 

objWriter.Close()

MsgBox("Text Appended to the File")

Khi bạn thi hành đoạn code trên, nội dung sẽ được nối tiếp chứ không bị ghi đè.   

7 - Tạo file Text mớiNếu bạn muốn tạo một file text trong trường hợp mà nó không tồn tại, quá trình tạo ra cũng rất đơn giản:

Dim objWriter As New System.IO.StreamWriter(FILE_NAME, False)

Ở đây ta thêm False đằng sau FILE_NAME. Một file text mới sẽ được tạo ra   

8 - Copy FileBạn cũng có thể thực hiện việc copy một file. Lúc này ta dùng đến lớp System.IO mà sẽ dùng File:

System.IO.File

File có những thuộc tính và phương thức mà ta có thể sử dụng. Trong số đó có Copy. Đây là đoạn code giúp thực hiện việc copy một file:MÃ: CHỌN TẤT CẢ

Dim FileToCopy As String

Dim NewCopy As String

 

FileToCopy = "C:\test.txt"

NewCopy = "C:\NewTest.txt"

 

If System.IO.File.Exists(FileToCopy) = True Then

System.IO.File.Copy(FileToCopy, NewCopy)

MsgBox("File Copied")

End If

File mà ta muốn copy là "C:\test.txt". Ta đưa nó vào trong biến FileToCopy. Tên file mà ta muốn tạo ra và vị trí của nó được lưu vào biếnNewCopy.Tiếp đến ta kiểm tra xem file cần copy có tồn tại hay không. Nếu có ta sẽ thực hiện lệnh copy:

System.IO.File.Copy(FileToCopy, NewCopy)

Chúng ta sử dụng phương thức Copy thuộc lớp System.IO. Trong 2 dấu ngoặc đơn, đầu tiên ta viết tên file muốn copy và đằng sau dấu phẩy là vị trí và tên file đích.

9 - Move File

Page 50: Hoc Tap Vb.net Tren Mang

Bạn muốn di chuyển một file sang vị trí khác   Ta sẽ sử dụng phương thức Move của System.IO.File. Code như sau:

FileToMove = "C:\test.txt"

MoveLocation = "C:\TestFolder\test.txt"

 

If System.IO.File.Exists(FileToMove) = True Then

System.IO.File.Move(FileToMove, MoveLocation)

MsgBox("File Moved")

End If

Dòng thứ 2 yêu cầu bạn cần có một folder "TestFolder" trong ổ C:

MoveLocation = "C:\TestFolder\test.txt"

File test.txt sẽ được di chuyển vào vị trí mới. Bạn có thể đặt tên mới cho file nếu muốn. Trong trường hợp này ta sẽ đổi tên file khi di chuyển nó như sau:

MoveLocation = "C:\TestFolder\NewName.txt"

Hãy nhớ bên trong dấu ngoặc của phương thức Move đầu tiên là file nguồn, sau đó là file đích:System.IO.File.Move(FileToMove, MoveLocation)

10 - Delete File

Để xóa một file cũng rất đơn giản - nhưng nguy hiểm   . Hãy cẩn thận khi thử code. Hãy tạo

ra những file khác để thử delete vì nếu xóa sẽ không thể phục hồi từ recycle bin   Để xóa một file trong máy tính, ta sử dụng phương thức Delete của System.IO. Hãy tạo file "testDelete.txt" trong ổ C bằng notepad và gõ đoạn code sau:Dim FileToDelete As String

 

FileToDelete = "C:\testDelete.txt"

 

If System.IO.File.Exists(FileToDelete) = True Then

 

System.IO.File.Delete(FileToDelete)

MsgBox("File Deleted")

 

End If

Đấu tiên ta khai bào biến tên là FileToDelete để chứa tên file cần xoá: "C:\testDelete.txt".Tiếp đến kiểm tra xem file có tồn tại không. Trong phát biểu IF ta có:

System.IO.File.Delete(FileToDelete)

Sau phương thức Delete bạn gõ tên file muốn xóa trong 2 dấu ngoặc.Trên đây là tất cả những việc để xóa một file khỏi máy tính. Hãy thật cẩn thận khi thử đoạn

code này 

Page 51: Hoc Tap Vb.net Tren Mang

WithEvents là thuộc phần lập trình các Events cho Object.

Để hiểu nó hãy xem vd sau:

Tạo 1 project mới, thêm 1 class và viết code cho nó:

Public Class Class1

    Public Event TheEvent()

 

    Public Sub Work()

        RaiseEvent TheEvent()

    End Sub

End Class

Thêm 1 button lên form và viết code cho form:

 

Public Class Form1

    Dim WithEvents obj As New Class1

 

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        obj.Work()

    End Sub

 

    Private Sub obj_TheEvent() Handles obj.TheEvent

        MsgBox("Xu li event tu class")

    End Sub

End Class

Đầu tiên ta khai báo đối tượng obj bằng WithEvents để nó kế thừa các Event từ trong Class 1.Sub obj_TheEvent để xử lí cho Event từ class. Ở đây là xử lí TheEvent.

Vấn đề bạn hỏi là những vấn đề rất lớn trong Net, khó ai mà có thể nói ra cho hết được.bạn có thể tham khảo 2 link sauviewtopic.php?f=15&t=2104viewtopic.php?f=15&t=2078