SỐ 184
KINH NGHIỆM LẬP TRÌNH
Viết chương trình sao chép nhạc từ WINAMP
Khi nghe nhạc từ chương trình WinAmp, có thể bạn có nhu cầu như thế này: các bản nhạc trong danh sách chọn (playlist) nằm rải rác ở nhiều thư mục khác nhau và bạn muốn sao chép chúng vào một thư mục dành riêng của mình. Tôi viết chương trình bằng VB6 để đáp ứng nhu cầu nêu trên, xin chia sẻ kinh nghiệm "vừa làm vừa... chơi" cho những bạn mới làm quen với VB.

Thiết kế giao diện

Bạn hãy tạo dự án mới, đặt các thuộc tính cho biểu mẫu: [Caption: “Copy Utility”, BorderStyle: 1-Fixed Single, MinButton: True]. Bạn kéo các điều khiển lên biểu mẫu (hình 1) với thuộc tính như sau:

- Label->Caption=”Select file:”
- TextBox->Name=txtFile
- CommandButton->Name=cmdSelectFile
- Label->Caption=”Select folder”
- TextBox->Name=txtFolder
- CommandButton->Name=cmdSelectFolder
- CommandButton->Name=cmdCopy
- CommandButton->Name=cmdExit

H1
Ô txtFile dùng để lưu đường dẫn của tập tin nhạc, ô txtFolder sẽ lưu đường dẫn của thư mục dành riêng mà bạn muốn cất giữ tập tin nhạc. Để cho tiện lợi, mỗi khi chạy chương trình, ta sẽ nạp nội dung từ bảng nhớ của hệ điều hành vào ô này.
Viết mã chương trình
Bạn bấm đôi vào phần trống của biểu mẫu vừa tạo, gõ vào đoạn mã như sau:

Private Sub Form_Load()
txtFile.Text = Clipboard.GetText
End Sub

Bạn mở WinAmp, bấm phải chuột vào tên tập tin nhạc đang chơi, chọn View file info rồi sao chép đường dẫn tập tin nhạc từ ô đầu tiên (hình 2) vào bộ nhớ đệm (clipboard). Quay lại với chương trình VB, bấm phím F5 để chạy thử, ta thấy đường dẫn của tập tin nhạc đã nằm sẵn trong ô txtFile rồi. Bạn bấm đôi vào nút cmdCopy và gõ vào đoạn mã 1 để thực hiện việc sao chép tập tin nhạc. Thế là xong, bạn lưu chương trình và biên dịch thành ứng dụng bằng cách chọn File > Make Copy.Exe.


H2

Đoạn mã 1
Private Sub cmdCopy_Click()
Dim fso As Object
Rem tạo một đối tượng FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f_source, f_destionation As String
f_source = txtFile.Text
If Right(txtFolder.Text, 1) = "\" Then
f_dest = txtFolder.Text & Dir(txtFile.Text)
Else
f_dest = txtFolder.Text & "\" & Dir(txtFile.Text)
End If
Rem kiểm tra xem trong thư mục để chép đã có tập tin nào trùng với tập tin đang xét không
If fso.FileExists(f_dest) = True Then
Rem hỏi xem người dùng có muốn chép đè lên không
If MsgBox("File Exist, Overwrite?", vbYesNo + vbInformation) = vbYes Then
FileCopy f_source, f_dest
MsgBox "Copy Ok!"
Rem sau khi chép xong thì thoát khỏi chương trình
End
Else
Exit Sub
End If
Else
FileCopy f_source, f_dest
MsgBox "Copy Ok!"
End
End If
End Sub
Private Sub cmdExit_Click()
End
End Sub

Một tiện ích cực kì nhỏ như vậy nhưng chính tôi tìm hoài cũng không thấy phần mềm có sẵn nào đáp ứng nhu cầu của mình. Bạn có thể tải về từ www.echip.com.vn chương trình CopyUtility hoàn chỉnh của tôi, có thêm các chức năng:

- Nút cmdSelectFile cho phép bạn chọn tập tin.
- Nút cmdSelectFolder cho phép bạn chọn thư mục.
- Lưu đường dẫn cuối vào Registry để mỗi lần khởi động chương trình, bạn không phải gõ lại đường dẫn.
- Kiểm tra sự tồn tại của thư mục với chức năng tự động tạo thư mục.

Chúc bạn thành công.

Nguyễn Trần Huy Phong (Đà Lạt)
[Đầu trang]
Trang chủ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Cõi người ta
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền Công ty Phần mềm & Truyền thông VASC
 99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn
Mọi chi tiết về kinh doanh và quảng cáo xin liên hệ Phòng Quảng cáo. Tel: (04) 9782077 kd@vasc.com.vn