Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Các mẹo vặt linh tinh không thuộc các nhóm trên

Các điều hành viên: tungcan5diop, QUANITGROBEST

Đăng trả lời
Hình đại diện của thành viên
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: Thứ 5 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 times
Tiếp xúc:

Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by hoangthu1974 »

Thủ thuật: Chương trình chuyển đổi giữa các số thuộc các hệ cơ số khác nhau.
Tác giả: Nguyễn Hoàng Thư (có sự hợp tác của Nguyễn Anh Tuyên)
Mô tả: Chuyển đổi giữa các hệ số khác nhau

Tôi muốn đặc biệt giới thiệu trong này tập tin ConvertNumber.dll. Các bạn thử rê chuột vào hàm Convert sẽ thấy được sự ngạc nhiên. Mã nguồn của tập tin DLL, tôi sẽ giới thiệu trong một bài khác.
Với chủ đề này, tôi muốn giới thiệu đến các bạn một phong cách lập trình chuyên nghiệp.
Tập tin đính kèm
NumberConverter.zip
(119.46 KiB) Đã tải về 919 lần
Hình đại diện của thành viên
thuongall
Quản trị
Quản trị
Bài viết: 456
Ngày tham gia: Thứ 4 26/01/2005 8:05 am
Đến từ: Quê hương Đồng Khởi
Been thanked: 9 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by thuongall »

hoangthu1974 đã viết:Các bạn thử rê chuột vào hàm Convert sẽ thấy được sự ngạc nhiên.
Hình như là giống rê chuột vào hàm Hello:

Mã: Chọn tất cả

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        Hello("Hoàng Thư")    End Sub     ''' <summary>    ''' Xin chào bạn!    ''' </summary>    Public Sub Hello(ByVal sName As String)        MsgBox("Hello, " & sName & "!")    End Sub
PS: Bài post đầu tiên bên .NET
Hình đại diện của thành viên
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: Thứ 5 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by hoangthu1974 »

Có vẻ VB.NET và C# trên diễn đàn mình hơi yếu.
Hình đại diện của thành viên
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: Thứ 4 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 32 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by clarkkent »

Rê chuột thấy chú thích tiếng Việt thôi :|, như a Thương nói :|
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...
Hình đại diện của thành viên
tungcan5diop
Cựu chiến binh
Cựu chiến binh
Bài viết: 1123
Ngày tham gia: Thứ 4 24/09/2008 4:04 pm
Đến từ: TPHCM
Has thanked: 1 time
Been thanked: 27 times

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by tungcan5diop »

viết bằng VS 2008 nên không mở được..sao ko viết 2005 cho mọi người dễ xài :D
hoangthu1974 đã viết:Có vẻ VB.NET và C# trên diễn đàn mình hơi yếu.
bác có cách nào làm cho nó mạnh lên không :D
Hỡi thế gian bug(lỗi) là gì?
Mà sửa...hoài không hết!
Hình đại diện của thành viên
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: Thứ 5 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by hoangthu1974 »

clarkkent đã viết:Rê chuột thấy chú thích tiếng Việt thôi :|, như a Thương nói :|
Không hẳn, đó chỉ là một phần thôi. Cứ thử đi sẽ thấy còn điều khác nữa.
Hình đại diện của thành viên
thuongall
Quản trị
Quản trị
Bài viết: 456
Ngày tham gia: Thứ 4 26/01/2005 8:05 am
Đến từ: Quê hương Đồng Khởi
Been thanked: 9 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by thuongall »

Vậy chắc anh Thư muốn nói là vụ overloads/overrides chứ gì? Ai bảo anh chỉ kêu rê chuột vào hàm mà thôi. Rê vào sẽ thấy sự ngạc nhiên, rê mãi rồi cũng... ngạc nhiên. ;))
Hình đại diện của thành viên
Kỳ Nam
Guru
Guru
Bài viết: 510
Ngày tham gia: Chủ nhật 12/08/2007 8:47 pm
Đến từ: Qui Nhơn
Been thanked: 1 time
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by Kỳ Nam »

hi chút góp ý để có vẻ "chuyên nghiệp" hơn

không nên có Public constructor trong 1 class chỉ toàn shared method:

Mã: Chọn tất cả

Public ConvertNumer.NumberUtility.New()
-> chuyển / tạo Private Sub New() trong class ConvertNumer.NumberUtility

đoạn này có thể làm hay hơn

Mã: Chọn tất cả

    Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        cboConvertFrom.Items.Add("Binary")        cboConvertFrom.Items.Add("Octan")        cboConvertFrom.Items.Add("Decimal")        cboConvertFrom.Items.Add("Hexan")        cboConvertFrom.SelectedIndex = 0        cboConvertTo.Items.Add("Binary")        cboConvertTo.Items.Add("Octan")        cboConvertTo.Items.Add("Decimal")        cboConvertTo.Items.Add("Hexan")        cboConvertTo.SelectedIndex = 0    End Sub
->

Mã: Chọn tất cả

    Private Sub FormMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        cboConvertFrom.Items.AddRange([Enum].GetNames(GetType(NumberUtility.DigitType)))        cboConvertFrom.SelectedIndex = 0        cboConvertTo.Items.AddRange([Enum].GetNames(GetType(NumberUtility.DigitType)))        cboConvertTo.SelectedIndex = 0    End Sub
này nữa

Mã: Chọn tất cả

    Private Sub txtSource_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSource.KeyPress        Select Case cboConvertFrom.SelectedIndex            Case 0 'Binary                If e.KeyChar <> "0"c And e.KeyChar <> "1"c Then                    If AscW(e.KeyChar) <> Keys.Back Then e.KeyChar = ""                End If            Case 1 'Octan                If AscW(e.KeyChar) > &H37 Or AscW(e.KeyChar) < &H30 Then                    If AscW(e.KeyChar) <> Keys.Back Then e.KeyChar = ""                End If            Case 2 'Decan                If AscW(e.KeyChar) > &H39 Or AscW(e.KeyChar) < &H30 Then                    If AscW(e.KeyChar) <> Keys.Back Then e.KeyChar = ""                End If            Case 3 'Hexan                If AscW(e.KeyChar) > &H39 Or AscW(e.KeyChar) < &H30 Then                    If AscW(e.KeyChar.ToString.ToUpper) < AscW("A") Or AscW(e.KeyChar.ToString.ToUpper) > AscW("F") Then                        If AscW(e.KeyChar) <> Keys.Back Then e.KeyChar = ""                    End If                End If        End Select    End Sub
->

Mã: Chọn tất cả

    Private Sub txtSource_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSource.KeyPress        Select Case CType(cboConvertFrom.SelectedIndex, NumberUtility.DigitType)            Case NumberUtility.DigitType.Binary             Case NumberUtility.DigitType.Octan             Case NumberUtility.DigitType.Decan             Case NumberUtility.DigitType.Hexan         End Select    End Sub
Ngoài ra code thích dùng method của Microsoft.VisualBasic.dll như AscW, sẽ mất thời gian khi chuyển wa các ngôn ngữ .NET khác

Sao lại phải dùng kiểu Byte ?

Mã: Chọn tất cả

Public Enum DigitType As Byte
Để ý sẽ thấy trong .NET có rất nhiều enum nhưng hầu như chỉ dùng Integer
Hình đại diện của thành viên
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: Thứ 5 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by hoangthu1974 »

Kỳ Nam đã viết:Sao lại phải dùng kiểu Byte ?
Hic, thằng SpeedTrace Pro nó khuyên dùng kiểu Byte để tiết kiệm bộ nhớ. :D
Hình đại diện của thành viên
NoBi
Quản trị
Quản trị
Bài viết: 970
Ngày tham gia: Thứ 3 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 57 times
Been thanked: 66 times
Tiếp xúc:

Re: Chuyển đổi số giữa các hệ số khác nhau (chuyên nghiệp)

Gửi bài by NoBi »

hoangthu1974 đã viết:Tôi muốn đặc biệt giới thiệu trong này tập tin ConvertNumber.dll. Các bạn thử rê chuột vào hàm Convert sẽ thấy được sự ngạc nhiên. Mã nguồn của tập tin DLL, tôi sẽ giới thiệu trong một bài khác.
Với chủ đề này, tôi muốn giới thiệu đến các bạn một phong cách lập trình chuyên nghiệp.
Có thấy gì lạ và chuyên nghiệp đâu :P
:>
Đăng trả lời

Quay về