24/05/2018, 15:56

Lấy tham số truyền từ dòng lệnh

VB cung cấp cho ta hàm Command() hay Command$(). Hàm này trả về một String mà bạn truyền vào từ dòng lệnh khi gọi chương trình. Lưu ý: Hàm Command$() mới thực sự trả về một String còn Command() lại trả về một Variant Ví dụ: Hình bên dưới cho thấy ...

VB cung cấp cho ta hàm Command() hay Command$(). Hàm này trả về một String mà bạn truyền vào từ dòng lệnh khi gọi chương trình.

Lưu ý: Hàm Command$() mới thực sự trả về một String còn Command() lại trả về một Variant

Ví dụ: Hình bên dưới cho thấy ta khởi động chương trình MyPad.exe & truyền cho nó một tham số là C:WINDOWSWIN.INI

Bây giờ chúng ta hãy thử lấy tham số đó qua một chương trình viết bằng VB.

Ta sẽ viết một chương trình tên MYPAD, có một form, trên đó có một TextBox. Nếu khi chạy chương trình người dùng không truyền tham số thì để TextBox đó trống (hoặc chứa một thông báo). Còn ngược lại thì kiểm trả xem đó có phải là đường dẫn đến một tập tin hay không (tập tin văn bản), nếu đúng thì hiển thị nội dung file đó vào TextBox.

Đối với TextBox bạn phải đặt thuộc tính Multiline = TRUE. ScrollBars là 2-Vertical hay 3-Both

Double Click lên form để tạo code cho sự kiện FormLoad như sau:

Private Sub Form_Load()

    Dim sFile As String

    Dim nd As String, dong As String

    nd = "" : dong = ""

    sFile = Command$()

    If Dir$(sFile) <> "" And sFile <> "" Then

        Open sFile For Input As #1

        Do While Not EOF(1)

            Line Input #1, dong

            nd = nd + dong + vbCrLf

        Loop

        Close #1

        Text1 = nd

        Caption = "MyPad - " & sFile

    Else

        Text1 = "Tập tin: [" & sFile & "] không tìm thấy." & vbCrLf & "Hoặc không cho đường dẫn file."

    End If

End Sub

Để cho Textbox (Text1) lúc nào cũng có kích thước bằng với form, bạn hãy gõ code sau vào sự kiện FormResize.

Private Sub Form_Resize()

    Text1.Left = 0 : Text1.Top = 0

    Text1.Width = ScaleWidth : Text1.Height = ScaleHeight

End Sub

Bây giờ bạn hãy cho chạy thử chương trình & truyền cho nó một tham số để mở file WIN.INI

Click Start / Run & gõ vào D:MYPADMyPad.exe C:WINDOWSWIN.INI (Giả sử chương trình MyPad của tôi lưu trên D:MYPAD), sau đó click OK. Chương trình MyPad của chúng ta chạy & hiển thị nội dung của WIN.INI trong Textbox.

Nếu bạn cho chạy MYPAD mà không cho tham số hoặc cho sai chương trình sẽ hiển thị như sau:

Vì đây chỉ là một chương trình thí dụ đơn giản minh cho cách nhận tham số từ dòng lệnh, cho nên bạn phải chú ý là file (đường dẫn file) mà bạn truyền cho nó không được có thuộc tính ẩn, nếu không nó sẽ báo là không tìm thấy.

0