• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Căn bản đến nâng cao Visual Basic.NET

Các bài viết hướng dẫn về Visual Basic .NET và C#

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi onlysoft » CN 06/04/2008 9:07 am

Tên bài viết: Căn bản đến nâng cao Visual Basic.NET
Tác giả: gatoi_it và onlysoft
Cấp độ bài viết: Căn bản đến Nâng cao
Tóm tắt: gatoi_it sẻ hướng dẫn phần căn bản còn :-S nly sẻ hướng dẫn phẩn nâng cao


Yêu cầu :
- Các bạn sẻ không reply ở topic này vì để cho nó được trình bày đẹp :((
- Nếu có gì thắc mắc hay góp ý cho topic này thì hãy nhắn tin cho hai chúng tôi :D
Bây giờ hãy bắt đầu với bài hướng dẫn của gatoi_it ;))


:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » CN 06/04/2008 9:34 am

Tên bài viết: I-Giới thiệu Visual Basic .NET
Tác giả: gatoi_it
Cấp độ bài viết: Dễ
Tóm tắt: 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. >:P Hoặc bạn có thể tải về ở địa chỉ: http://www.microsoft.com/express/vb/ (Bản trial thôi >:P )
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:
Hình ảnh
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:
Hình ảnh
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:
Hình ảnh
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 :-*

XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » CN 06/04/2008 10:53 am

Tên bài viết: II-Tìm hiểu về Form
Tác giả: gatoi_it
Cấp độ bài viết: Dễ
Tó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
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:
Hình ảnh
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:
Hình ảnh
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ụng
Những thứ như button, textbox hay label được gọi là control. Chúng được đưa vào Toolbox để dễ sử dụng
Hình ảnh
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:
Hình ảnh
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:
Hình ảnh
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 - Property
Bên phải của môi trường phát triển có khung Properties:
Hình ảnh
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:
Hình ảnh
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
Hình ảnh
- 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:
Hình ảnh
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:
Hình ảnh
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:
Hình ảnh
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ình ảnh
Hãy thay đổi thuộc tính của cả 3 label thành:
Font: Arial
Font Style: Bold
Font Size: 10
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 =;

XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » CN 06/04/2008 5:05 pm

Tên bài viết: III-File project
Tác giả: gatoi_it
Cấp độ bài viết: Dễ
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)
Hình ảnh
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.
Hình ảnh
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
Để 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ện
Nế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:
Hình ảnh
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 :-S , bạn sẽ gặp hộp thoại sau:
Hình ảnh
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.
Hình ả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:
Hình ảnh
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:
Hình ảnh
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:
Hình ảnh
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.
Bài tiếp theo chúng ta sẽ tìm hiểu về Variables(biến). =;
XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Hai 07/04/2008 4:04 pm

Tên bài viết: IV-Viết Code
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
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ố :-O . Để 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 hết

  1. Dim number1 As Integer
  2. Dim number 2 As Integer
  3.  
  4. number1 = 3
  5. number2 = 5
  6.  
  7.  

Đ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
number1
Giố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:
Hình ảnh
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:
Hình ảnh
Chúng ta hãy khảo sát đoạn mã:

Mã: Chọn hết

  1. Private Sub Button1_Click(ByVal sender As System.Object, _
  2. ByVal e As System.EventArgs) _
  3. Handles Button1.Click
  4.  
  5. End Sub
  6.  
  7.  

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.

_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. :D

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:

Mã: Chọn hết

  1. Dim number1 As Integer
  2. Dim number 2 As Integer
  3. Dim answer As Integer
  4.  
  5. number1 = 3
  6. number2 = 5
  7.  
  8. answer = number1 + number2
  9.  
  10. MsgBox answer
  11.  
  12.  


Sau khi gõ xong, cửa sổ code sẽ như sau:
Hình ảnh
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:
Hình ảnh
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:
Hình ảnh
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.

Mã: Chọn hết

  1. number1 = 3
  2. number2 = 5
  3.  
  4.  

- 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:

Mã: Chọn hết

  1. answer = number1 + number2
  2.  

- 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.
Hình ảnh
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:

Mã: Chọn hết

  1. 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 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:

Mã: Chọn hết

  1. Dim FirstName As String
  2. Dim LastName As String

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

Mã: Chọn hết

  1. FirstName = "Only"
  2. LastName = "Nguyen"
  3.  

Để 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:
Hình ảnh
Nháy kép chuột vào button mới đó và thêm đoạn code sau vào:

Mã: Chọn hết

  1. Dim FirstName As String
  2. Dim LastName As String
  3. Dim FullName As String
  4.  
  5. FirstName = "Only"
  6. LastName = "Nguyen"
  7.  
  8. FullName = FirstName & LastName
  9.  
  10. Textbox1.Text = FullName
  11.  

Hãy tìm hiểu dòng code này:

Mã: Chọn hết

  1. 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.
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:

Mã: Chọn hết

  1. FullName = FirstName & " " & LastName


4 - Gán giá trị của Textbox vào biến
Bạ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:
Hình ảnh
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:

Mã: Chọn hết

  1. 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ã:

Mã: Chọn hết

  1. FirstName = "Bill"
  2. LastName = "Gates"
  3.  

Sửa thành:

Mã: Chọn hết

  1. FirstName = txtFirstName.Text
  2. LastName = txtLastName.Text
  3.  

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:

Mã: Chọn hết

  1. Dim FirstName As String
  2. Dim LastName As String
  3. Dim WholeName As String
  4.  
  5. FirstName = txtFirstName.Text
  6. LastName = txtLastName.Text
  7.  
  8. WholeName = FirstName & " " & LastName
  9.  
  10. MsgBox(WholeName)
  11.  
  12.  

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:
Hình ảnh

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
Boolean
True hoặc False
Date
Từ ngày 1 tháng Giêng năm 100 tới ngày 31 tháng Chạp năm 9999
Loạ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.
XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Hai 07/04/2008 4:22 pm

Tên bài viết: Bài tập
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
Tó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 button
Yê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é :D
[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()
XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Ba 08/04/2008 5:21 pm

Tên bài viết: V-Kiểm soát Code
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
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 If
If 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
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é: B-)
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:

Mã: Chọn hết

  1. Private Sub Button1_Click(ByVal sender As System.Object, _
  2. ByVal e As System.EventArgs) _
  3. Handles Button1.Click
  4.  
  5. Dim firstname As String
  6.  
  7. firstname = "Only"
  8. If firstname = "Only" Then MsgBox("firstname is Only")
  9.  
  10. End Sub
  11.  


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ã:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. If firstname = "Only" Then
  2. MsgBox("firstname is Only")
  3. End If
  4.  


Đ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:

Mã: Chọn hết

  1. Dim firstname as String
  2.  
  3. firstname = "Only"
  4.  
  5. If firstname = Only Then
  6. MsgBox "firstname is Only"
  7. End If
  8.  


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:

Mã: Chọn hết

  1. firstname = "gatoi"
  2.  
  3. If firstname = "Only" Then
  4. MsgBox "firstname is Only"
  5. Else
  6. MsgBox "firstname is not Only"
  7. End If
  8.  


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:

Mã: Chọn hết

  1. firstname = "gatoi"
  2.  
  3. If firstname = "Only" Then
  4. MsgBox("firstname is Only")
  5. ElseIf firstname = "gatoi" Then
  6. MsgBox("firstname is gatoi")
  7. Else
  8. Msgbox("unknow firstname")
  9. End If
  10.  


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

Mã: Chọn hết

  1. If [điều kiện] Then
  2. Code nếu đúng
  3. ElseIf [điều kiện khác] Then
  4. Code nếu khác
  5. Else
  6. Code nếu không đúng cả 2 điều kiện trên
  7. 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:

Mã: Chọn hết

  1. Dim name As String
  2. Dim DietState As String
  3. name = TextBox1.Text
  4.  
  5. Select Case name
  6.  
  7. Case "Only"
  8. DietState = "This is my friend"
  9. Case "gatoi"
  10. DietState = "It's me"
  11. Case Else
  12. DietState = "Who is this?"
  13.  
  14. End Select
  15.  
  16. MsgBox DietState
  17.  
  18.  


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" :D 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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. Select Case age
  2. Case 16 To 21
  3. MsgBox “Thanh niên”
  4. Case 50 To 64
  5. MsgBox “Già”
  6. End Select
  7.  

Ở đâ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:

Mã: Chọn hết

  1. Select Case [đối tượng]
  2. Case [giá trị 1]
  3. Code ở đây cho 1
  4. Case [giá trị 2]
  5. Code ở đây cho 2
  6. Case [giá trị x]
  7. Code ở đây cho x
  8. Case Else
  9. Các code khác
  10.  

3 - Các toán tử

>
Ý nghĩa: Lớn hơn
Ví dụ:

Mã: Chọn hết

  1. If number > 10 Then
  2. MsgBox "The Number was Greater Than 10"
  3. End If


<
Ý nghĩa: Nhỏ hơn
Ví dụ:

Mã: Chọn hết

  1. If number <10 Then
  2. MsgBox "The Number was Less Than 10"
  3. End If


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

Mã: Chọn hết

  1. If number >= 10 Then
  2. MsgBox "The Number was 10 or Greater"
  3. End If


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

Mã: Chọn hết

  1. If number <= 10 Then
  2. MsgBox "The Number was 10 or Less"
  3. End If


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

Mã: Chọn hết

  1. If number > 5 And number < 15 Then
  2. MsgBox "Greater than 5 And Less than 15"
  3. End If


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

Mã: Chọn hết

  1. If number > 5 Or number < 15 Then
  2. MsgBox "Greater than 5 Or Less than 15"
  3. End If


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

Mã: Chọn hết

  1. If number1 <> number2 Then
  2. MsgBox "number1 is not equal to number2"
  3. End If



Sửa lần cuối bởi gatoi_it vào ngày T.Tư 16/04/2008 6:49 pm với 1 lần sửa.
XFARM.CC

Hình đại diện của người dùng
onlysoft
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 330
Ngày tham gia: T.Tư 26/03/2008 6:32 pm
Đến từ: ONLYSOFT
Been thanked: 8 time

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

Gửi bàigửi bởi onlysoft » T.Tư 09/04/2008 10:17 am

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.
:x Tin học là cuộc sống, Lập trình là người yêu, Vợ là computer :x
Tôi yêu tin học, Tin học lập trình, Để lập trình tôi dùng VB, Tôi là B-)nly

Hình đại diện của người dùng
thuocthoigian
Thành viên danh dự
Thành viên danh dự
Bài viết: 167
Ngày tham gia: T.Hai 31/07/2006 2:07 pm
Đến từ: Minh Lộ - Thanh Hóa
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi thuocthoigian » T.Tư 09/04/2008 2:19 pm

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 )

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ùng
tham 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ùng
vớ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)
Sự tưởng tượng còn quan trọng hơn kiến thức! (A.Einstein)

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Năm 10/04/2008 10:40 am

Tên bài viết: VI-Mảng(Array)
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
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ảng
Hãy xem ví dụ sau đây:

Mã: Chọn hết

  1. Dim MyNumbers(4) As Integer
  2. MyNumbers(0) = 1
  3. MyNumbers(1) = 2
  4. MyNumbers(2) = 3
  5. MyNumbers(3) = 4
  6. 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:

Mã: Chọn hết

  1. Dim MyNumbers(4) As Integer
  2.  
  3. MyNumbers(0) = 1
  4. MyNumbers(1) = 2
  5. MyNumbers(2) = 3
  6. MyNumbers(3) = 4
  7. MyNumbers(4) = 5
  8.  
  9. MsgBox("First Number is: " & MyNumbers(0))
  10. MsgBox("Second Number is: " & MyNumbers(1))
  11. MsgBox("Third Number is: " & MyNumbers(2))
  12. MsgBox("Fourth Number is: " & MyNumbers(3))
  13. 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ảng
Giả 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:

Mã: Chọn hết

  1. Dim numbers() As Integer

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

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. ReDim numbers(3)

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

Mã: Chọn hết

  1. Dim numbers() As Integer 'Khai báo mảng numbers
  2. ReDim numbers(3) 'Khai báo lại mảng với 4 giá trị
  3. 'Gán các giá trị cho mảng
  4. numbers(0) = 1
  5. numbers(1) = 2
  6. numbers(2) = 3
  7. 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) =;

XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Năm 10/04/2008 10:56 am

Tên bài viết: VII-Vòng lặp(Loop)
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
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:

Mã: Chọn hết

  1. Dim answer As Integer
  2.  
  3. answer = 1 + 2 + 3 + 4
  4.  
  5. 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 Loop
Dạ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:

Mã: Chọn hết

  1. Dim answer As Integer
  2. Dim startNumber As Integer
  3.  
  4. answer = 0
  5.  
  6. For startNumber = 1 To 4
  7.  
  8. answer = answer + startNumber
  9.  
  10. Next startNumber
  11.  
  12. MsgBox answer
  13.  


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:

Mã: Chọn hết

  1. For startNumber = 1 To 4
  2.  
  3. answer = answer + startNumber
  4.  
  5. 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 lại.
Để kiểm chứng điều này, hãy sửa đoạn code thành:

Mã: Chọn hết

  1. Dim startNumber As Integer
  2.  
  3. For startNumber = 1 To 4
  4.  
  5. MsgBox("Start Number = " & startNumber)
  6.  
  7. Next startNumber
  8.  


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:

Mã: Chọn hết

  1. For i = startNumber To endNumber
  2.  
  3. 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:

Mã: Chọn hết

  1. Dim startNumber As Integer
  2. Dim endNumber As Integer
  3. Dim i As Integer
  4.  
  5. startNumber = 1
  6. endNumber = 4
  7.  
  8. For i = startNumber To endNumber
  9. Msgbox i
  10. 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 :D

3 - For Each Loop
Vò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:

Mã: Chọn hết

  1. Dim chuoi(4) As String
  2. Dim hien as String
  3. chuoi(0) = "Only Nguyen"
  4. chuoi(1) = "is"
  5. chuoi(2) = "my"
  6. chuoi(3) = "best"
  7. chuoi(4) = "friend"
  8. For Each hien in chuoi
  9. ListBox1.Items.Add(hien)
  10. Next hien
  11.  

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 :D

4 - Do Loop
Cũ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 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:

Mã: Chọn hết

  1. Dim number as Integer
  2.  
  3. number = 1
  4.  
  5. Do While number < 5
  6. MsgBox number
  7. number = number + 1
  8. 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.
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:

Mã: Chọn hết

  1. Do
  2.  
  3. number = number + 1
  4.  
  5. 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 ... Until

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

Mã: Chọn hết

  1. Do Until number >= 5
  2.  
  3. MsgBox number
  4. number = number + 1
  5.  
  6. 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:

Mã: Chọn hết

  1. Do
  2.  
  3. MsgBox number
  4. number = number + 1
  5.  
  6. 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.
Sửa lần cuối bởi gatoi_it vào ngày T.Tư 16/04/2008 6:51 pm với 1 lần sửa.
XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Năm 10/04/2008 5:26 pm

Tên bài viết: VIII-Debug Code
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
Tóm tắt: Học về cách debug code trong Visual Basic .NET
1 - Các loại Error
Nế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, RuntimeLogic 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 Error
Hã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:

Mã: Chọn hết

  1. 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:
Hình ảnh
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:
Hình ảnh
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:

Mã: Chọn hết

  1. strText = "Debug"
  2. 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:
Hình ảnh
Đưa chuột đến biến strText và bạn sẽ lại thấy chữ "not declared":
Hình ảnh
Vấn đề này là do bạn chưa khai báo biến strText. Sửa đoạn code thành:

Mã: Chọn hết

  1. Dim strText As String
  2.  
  3. strText = "Debug"
  4. 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:

Mã: Chọn hết

  1. strText = "Debug"
  2. TextBox1.Text = strText
  3.  
  4. 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)
Hình ảnh
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ó:

Mã: Chọn hết

  1. Dim Num1 As Integer
  2. Dim Num2 As Integer
  3.  
  4. Num1 = 10
  5. Num2 = 0
  6.  
  7. 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 :(
Hình ảnh
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:

Mã: Chọn hết

  1. 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:
Hình ảnh
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.

4 - Try … Catch

VB.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:

Mã: Chọn hết

  1. Try
  2.  
  3. Catch ex As Exception
  4.  
  5. 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:

Mã: Chọn hết

  1. Try
  2.  
  3. rt1.LoadFile("C:\test10.txt", RichTextBoxStreamType.PlainText)
  4.  
  5. Catch ex As Exception
  6.  
  7. 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:

Mã: Chọn hết

  1. MsgBox(ex.Message)

Code của bạn bây giờ sẽ như sau:
Hình ảnh
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:
Hình ảnh

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:
Hình ảnh
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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. Try
  2.  
  3. rt1.LoadFile("C:\test10.txt", RichTextBoxStreamType.PlainText)
  4.  
  5. Catch ex As System.IO.FileNotFoundException
  6.  
  7. MsgBox(ex.Message)
  8.  
  9. Catch ex As Exception
  10.  
  11. MsgBox(ex.Message)
  12.  
  13. End Try


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

Mã: Chọn hết

  1. Try
  2.  
  3. Catch ex As Exception
  4.  
  5. Finally
  6.  
  7. 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 Error
Phầ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! :D "
Hãy thêm một button lên form, và đưa đoạn code sau vào:

Mã: Chọn hết

  1. Dim x As Integer
  2. Dim y As Integer
  3. Dim answer As Integer
  4.  
  5. x = 10.5
  6. y = 3
  7. answer = x * y
  8. 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
Breakpoints
Mộ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:
Hình ảnh
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:
Hình ảnh
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:
Hình ảnh
Để tiếp tục kiểm tra code, nhấn F10 .
Dòng code tiếp theo sẽ được đánh dấu:
Hình ảnh
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ó:
Hình ảnh
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:
Hình ả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 :)

XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Hai 14/04/2008 7:08 pm

Tên bài viết: IX - Thao tác với String
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
Tó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 Upper
Chú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

Mã: Chọn hết

  1. Dim strUpper As String
  2.  
  3. strUpper = TextBox1.Text
  4. 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 Trim
Phươ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:

Mã: Chọn hết

  1. Dim strTrim As String
  2.  
  3. strTrim = TextBox1.Text
  4. 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

Char
Char 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:

Mã: Chọn hết

  1. Dim OneCharacter As Char


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

Mã: Chọn hết

  1. OneCharacter = "A"


Hoặc như sau:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. Dim OneCharacter As Char = "apple"

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

Chars
Chars 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ụ:

Mã: Chọn hết

  1. Dim SomeString As String
  2. Dim OneCharacter As Char
  3.  
  4. SomeString = "gatoi"
  5. 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 :)

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à "gatoi.it@gmail.com" 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:

Mã: Chọn hết

  1. FirstString = "gatoi.it@gmail.com"
  2. SecondString = "@"
  3.  
  4. 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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. If position = 0 Then
  2.  
  3. MsgBox "Not a Valid email address: There was No @ Sign"
  4.  
  5. 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 "gatoi.it@gmail.com"

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:

Mã: Chọn hết

  1. Dim Email as String
  2. Dim DotCom as String
  3.  
  4. Email = "gatoi.it@gmail.com"
  5. DotCom = Email.Substring(14, 4)
  6.  
  7. 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ự)

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ụ:

Mã: Chọn hết

  1. Dim Email As String
  2. Dim length As Integer
  3. Email = "gatoi.it@gmail.com"
  4. length = Email.Length
  5.  
  6. 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 :D như sau:

Mã: Chọn hết

  1. Dim Email As String
  2. Dim DotCom As String
  3.  
  4. Email = "gatoi.it@gmail.com"
  5. 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:

Mã: Chọn hết

  1. If DotCom = ".com" Then
  2. MsgBox("Ends in Dot Com")
  3. Else
  4. MsgBox("Doesn't End in Dot Com")
  5. 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 hết

  1. 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:

Mã: Chọn hết

  1. Dim OldText As String
  2. Dim NewText As String
  3.  
  4. OldText = "This is some test"
  5. NewText = OldText.Replace("test", "text")
  6.  
  7. MsgBox(OldText)
  8. 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:

Mã: Chọn hết

  1. Dim SomeText As String
  2. Dim NewText As String
  3.  
  4. SomeText = "This some text"
  5. NewText = SomeText.Insert(5, "is ")
  6.  
  7. MsgBox(SomeText)
  8. 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ụ:

Mã: Chọn hết

  1. Dim LineOfText As String
  2. Dim i As Integer
  3. Dim aryTextFile() As String
  4.  
  5. LineOfText = "UserName1, Password1, UserName2, Password2"
  6.  
  7. aryTextFile = LineOfText.Split(",")
  8.  
  9. For i = 0 To UBound(aryTextFile)
  10. MsgBox(aryTextFile(i))
  11. 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" ; 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:

Mã: Chọn hết

  1. Dim LineOfText As String
  2. Dim i As Integer
  3. Dim aryTextFile(3) As String
  4.  
  5. aryTextFile(0) = "UserName1"
  6. aryTextFile(1) = "Password1"
  7. aryTextFile(2) = "UserName2"
  8. aryTextFile(3) = "Password2"
  9.  
  10. LineOfText = LineOfText.Join("-", aryTextFile)
  11.  
  12. MsgBox(LineOfText)


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

Mã: Chọn hết

  1. 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 =;
Sửa lần cuối bởi gatoi_it vào ngày T.Tư 16/04/2008 6:41 pm với 1 lần sửa.
XFARM.CC

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Tư 16/04/2008 6:37 pm

Tên bài viết: X - Làm việc với File
Tác giả: gatoi_it
Cấp độ bài viết: Bình thường
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 file
Cá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 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
Để 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 trong System.IO.
Để bắt đầu thực hành hãy mở Notepad. Soạn một file text có nội dung như sau:
This
is
a
text 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:

Mã: Chọn hết

  1. Dim FILE_NAME As String = "C:\test.txt"
  2.  
  3. Dim objReader As New System.IO.StreamReader(FILE_NAME)
  4. TextBox1.Text = objReader.ReadToEnd
  5.  
  6. 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 :

Mã: Chọn hết

  1. 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ụng
Phươ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:

Mã: Chọn hết

  1. Dim FILE_NAME As String = "C:\test.txt"
  2.  
  3. If System.IO.File.Exists(FILE_NAME) = True Then
  4. Dim objReader As New System.IO.StreamReader(FILE_NAME)
  5. TextBox1.Text = objReader.ReadToEnd
  6. objReader.Close()
  7. Else
  8. MsgBox("File Does Not Exist")
  9. 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òng

Trong 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:

Mã: Chọn hết

  1. Dim TextLine As String
  2.  
  3. Do While objReader.Peek() <> -1
  4. TextLine = TextLine & objReader.ReadLine() & vbNewLine
  5. 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:

Mã: Chọn hết

  1. Dim FILE_NAME As String = "C:\test.txt"
  2. Dim TextLine As String
  3.  
  4. If System.IO.File.Exists(FILE_NAME) = True Then
  5.  
  6. Dim objReader As New System.IO.StreamReader(FILE_NAME)
  7.  
  8. Do While objReader.Peek() <> -1
  9. TextLine = TextLine & objReader.ReadLine() & vbNewLine
  10. Loop
  11.  
  12. Textbox1.Text = TextLine
  13.  
  14. Else
  15.  
  16. MsgBox("File Does Not Exist")
  17.  
  18. 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 Text
Ghi 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:

Mã: Chọn hết

  1. Dim FILE_NAME As String = "C:\test.txt"
  2.  
  3. If System.IO.File.Exists(FILE_NAME) = True Then
  4. Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
  5. objWriter.Write(TextBox1.Text)
  6. objWriter.Close()
  7. MsgBox("Text written to file")
  8. Else
  9. MsgBox("File Does Not Exist")
  10. 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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. 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 :-O . 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:

Mã: Chọn hết

  1. Dim FILE_NAME As String = "C:\test.txt"
  2. Dim i As Integer
  3. Dim aryText(4) As String
  4. Dim text As String
  5. aryText(0) = "This"
  6. aryText(1) = "is"
  7. aryText(2) = "a"
  8. aryText(3) = "text"
  9. aryText(4) = "file"
  10.  
  11. Dim objWriter As New System.IO.StreamWriter(FILE_NAME)
  12.  
  13. For Each text In aryText
  14. objWriter.WriteLine(text)
  15. Next
  16.  
  17. 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 Text
Lú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:

Mã: Chọn hết

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

Đoạn code hoàn chỉnh như sau:

Mã: Chọn hết

  1. Dim FILE_NAME As String = "C:\test.txt"
  2. Dim i As Integer
  3. Dim aryText(4) As String
  4. Dim text As String
  5. aryText(0) = "This"
  6. aryText(1) = "is"
  7. aryText(2) = "a"
  8. aryText(3) = "text"
  9. aryText(4) = "file"
  10.  
  11. Dim objWriter As New System.IO.StreamWriter(FILE_NAME,True)
  12.  
  13. For Each text In aryText
  14. objWriter.WriteLine(text)
  15. Next
  16.  
  17. objWriter.Close()
  18. 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ới
Nế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:

Mã: Chọn hết

  1. 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 File
Bạ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 hết

  1. Dim FileToCopy As String
  2. Dim NewCopy As String
  3.  
  4. FileToCopy = "C:\test.txt"
  5. NewCopy = "C:\NewTest.txt"
  6.  
  7. If System.IO.File.Exists(FileToCopy) = True Then
  8. System.IO.File.Copy(FileToCopy, NewCopy)
  9. MsgBox("File Copied")
  10. 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ến NewCopy.
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:

Mã: Chọn hết

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

Mã: Chọn hết

  1. FileToMove = "C:\test.txt"
  2. MoveLocation = "C:\TestFolder\test.txt"
  3.  
  4. If System.IO.File.Exists(FileToMove) = True Then
  5. System.IO.File.Move(FileToMove, MoveLocation)
  6. MsgBox("File Moved")
  7. End If

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

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. 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:

Mã: Chọn hết

  1. 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 :-O . 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:

Mã: Chọn hết

  1. Dim FileToDelete As String
  2.  
  3. FileToDelete = "C:\testDelete.txt"
  4.  
  5. If System.IO.File.Exists(FileToDelete) = True Then
  6.  
  7. System.IO.File.Delete(FileToDelete)
  8. MsgBox("File Deleted")
  9.  
  10. 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ó:

Mã: Chọn hết

  1. 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 :>

XFARM.CC

hieptran109
Bài viết: 1
Ngày tham gia: CN 11/05/2008 2:41 am

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi hieptran109 » T.Ba 13/05/2008 3:34 am

thanks bác gatoi_it rất nhiều nhé. bài viết của bác đã giúp ích được rất nhiều cho những người mới hoc như em.

nth4
Thành viên chính thức
Thành viên chính thức
Bài viết: 10
Ngày tham gia: T.Hai 07/04/2008 10:53 am

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi nth4 » T.Tư 21/05/2008 11:21 pm

bạn cho mình hiểu về withevents đi, mình ko hiểu về cái này

gatoi_it
Thành viên trung thành
Thành viên trung thành
Bài viết: 207
Ngày tham gia: T.Tư 26/03/2008 6:10 pm
Đến từ: Quê cha đất tổ
Been thanked: 4 time
Liên hệ:

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi gatoi_it » T.Năm 22/05/2008 7:51 am

nth4 đã viết:bạn cho mình hiểu về withevents đi, mình ko hiểu về cái này

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ó:

Mã: Chọn hết

  1. Public Class Class1
  2.     Public Event TheEvent()
  3.  
  4.     Public Sub Work()
  5.         RaiseEvent TheEvent()
  6.     End Sub
  7. End Class

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

Mã: Chọn hết

  1.  
  2. Public Class Form1
  3.     Dim WithEvents obj As New Class1
  4.  
  5.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  6.         obj.Work()
  7.     End Sub
  8.  
  9.     Private Sub obj_TheEvent() Handles obj.TheEvent
  10.         MsgBox("Xu li event tu class")
  11.     End Sub
  12. 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.
XFARM.CC

nth4
Thành viên chính thức
Thành viên chính thức
Bài viết: 10
Ngày tham gia: T.Hai 07/04/2008 10:53 am

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi nth4 » T.Năm 22/05/2008 7:20 pm

thank bạn rất nhiều. Quá dễ hiểu.

pddung
Bài viết: 7
Ngày tham gia: T.Ba 01/04/2008 7:43 pm

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi pddung » T.Hai 16/06/2008 10:33 pm

Bạn có thể giải thích và ví dụ cụ thể 1 số khái niệm mới của VB.NET không (mới so với VB6): NameSpace, OOP trong VB.NET, ADO.NET,...
thanks

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Căn bản đến nâng cao Visual Basic.NET

Gửi bàigửi bởi anhtuyenbk » T.Ba 17/06/2008 10:37 am

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 sau
viewtopic.php?f=15&t=2104
viewtopic.php?f=15&t=2078
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang


Quay về “[.NET] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.2 khách