Các bạn cho hỏi tách 1 dãy số trong VB.net

0 thích 0 không thích
33 lượt xem
đã hỏi 7 Tháng 7, 2018 trong Phần mềm ứng dụng bởi tiendat83 (120 điểm)
Các bạn cho mình hỏi mình có 1 dãy số 13 ký tự vd như sau: 2212345000121 mình muốn tách 2 số đầu tiên vào 1 textbox, 5 số tiếp theo vào 1 textbox khác, 6 số cuối cùng vào 1textbox
    

1 câu trả lời

0 thích 0 không thích
đã trả lời 14 Tháng 9, 2018 bởi TrThPhong29 (220 điểm)

Dim SoCanTach As String = "2212345000121"
    Sub Tach_Day_13so()
        'Nếu sử dụng hàm SubString của VB.Net
        TextBox1.Text = SoCanTach.Substring(0, 2)   'Lấy 2 số từ vị trí 0 : (vị trí đầu tiên là zero chứ không phải 1).
        TextBox2.Text = SoCanTach.Substring(2, 5)   'Lấy 5 số từ vị trí 3 : tức 5 số kế tiếp
        TextBox3.Text = SoCanTach.Substring(7)      'Lấy hết các số còn lại từ vị trí 7

        'Nếu sử dụng các hàm cắt chuỗi của VB6
        TextBox1.Text = Microsoft.VisualBasic.Left(SoCanTach, 2)    'Cắt trái 2 ký tự
        TextBox2.Text = Microsoft.VisualBasic.Mid(SoCanTach, 3, 5)  'Cắt giữa từ vị trí 3 , 5 ký tự
        TextBox3.Text = Microsoft.VisualBasic.Mid(SoCanTach, 8)     'Cắt giữa từ vị trí 8 đến hết chiều dài chuỗi.
    End Sub

        'Sau đây là cách tổng quát với nhiều textbox tương ứng nhiều đoạn cắt
    Sub Tach_voi_mang()
        Dim strCanTach As String = "CatChuoiDaiSuDungArray"
        Dim arrayLen() As Integer = New Integer() {0, 2, 5, 4}
        'arrayLen() là Khai báo mảng (theo thứ tự lần lượt) của mỗi chiều dài càn lấy, 
        'không cần khai báo chiều dài cuối cùng vì ta sẽ lấy hết phần còn lại.

        Dim arrayTxb() As TextBox = New TextBox() {TextBox1, TextBox2, TextBox3, TextBoxCuoi}
        'arrayTxb() là Khai báo mảng các textbox tương ứng.

        Dim viTri As Integer = 0
        For i As Integer = 0 To UBound(arrayTxb)
            viTri = viTri + arrayLen(i)
            If i = UBound(arrayLen) Then
                'Nếu là phàn tử cuối cùng (textbox cuối cùng) thì lấy hết phần còn lại
                arrayTxb(i).Text = strCanTach.Substring(viTri)
            Else
                'Lấy theo vị trí và độ dài xác định:
                arrayTxb(i).Text = strCanTach.Substring(viTri, arrayLen(i + 1))
            End If
        Next
    End Sub

...