Tải bản đầy đủ (.docx) (34 trang)

CÁC HÀM XỬ LÝ CHUỖI TRONG VB NET

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (176.42 KB, 34 trang )

Các hàm xử lý chuỗi trong VB NET
Space (Num as Long) ‘trả về chuỗi chỉ toàn khoảng trống với số khoảng trống
được ấn định bởi tham số Num
VD: str = space (3) —> str = ” ”
String (Num as Long, character) ‘trả về một chuõi (theo dạng variant) gồm các ký
tự lặp lại. Ký tự lặp lại là ký tự đầu của biểu thức chuổi được truyền ở tham số thứ
hai của hàm (character). Tham số thứ nhất (Num) xác nhận số lần lặp lại.
VD: str = string (5, “a”)
str = string (5, “abc”)
str = string (5, 97)
cả 3 ví dụ này đều cho ra chuỗi “aaaaa”
Trim (String) ‘ cắt các khoảng trống ở 2 đầu chuỗi
VD: str = Trim (” Yêu em “) —-> str = “Yeu em”
LTrim (String) ‘ cắt các khoảng trống ở đầu chuỗi
RTrim (String) ‘ cắt các khoảng trống cuối chuõi
Len ( ) ‘ trả về chiều dài của chuỗi bao gồm các khoảng trống và các ký tự
VD: str = Len (“caulacboVB”) —> str = 10
Mid (string, start as Long, length) ‘ trích từ tham số 1(string) một chuỗi ở vị trí bắt
đầu được xác định bởi tham số 2(start), với số ký tự được qui định bởi tham số
3(length). Nếu bỏ wa tham số length thì hàm Mid sẽ trích đến hết chuỗi.
VD: str = Mid (“caulacboVB”, 1, 8) —> str = “caulacbo”
InStr (start, string1, string2, compare) ‘ trả về vị trí bắt đầu của một chuỗi con cần
tìm trong một chuỗi mẹ. tham số 1(start) xác định vị trí bắt đầu tìm, tham sô
2(string1) là chuỗi mẹ, tham số 3(string2) là chuỗi cần tìm, tham số 4(compare)
mặc định là so sánh nhạy ký tự.
Khi bỏ wa tham số thứ nhất thì vị trí bắt đầu tìm mặc định là 1
VD: pos = InStr (“caulacboVB”, “VB”) —> pos = 9


InStrRev (StringCheck as string, StringMatch as string, Start as Long, Compare) ‘
chức năng như InStr nhưng InStrRev hoạt động ngược lại từ cuối chuỗi và cú pháp


khác hơn. Cả hai hàm đều là hàm tìm kiếm nhạy ký tự nên cần chú ý chữ thường
và chữ HOA. InStrRev thường kết hơp với Mid để tách một tên File khỏi đường
dẫn và tên mở rộng.
VD:
PathFile = “C:\temp\001.tmp”
Pos = InStrRev (pathFile, “\”)
PathFile = Mid (PathFile, Pos + 1)
Pos = InStrRev (PathFile, “.”)
PathFile = Mid (PathFile, 1, Pos – 1) —>PathFile = “001”
Left (String, Length as Long) ‘ trích từ đầu một chuỗi của tham số 1(String) với số
lượng xác định bởi tham số 2(Length)
VD: str = Left (“caulacboVB”, 6) —> str = “caulac”
Right (String, Length as Long) ‘ như Left nhưng trích ngược từ cuối chuỗi
Replace (Expression as string, Find as string, Replace as string, start, count,
compare) ‘ tìm trong tham số thứ 1(Expression) một chuỗi xác định bởi tham số
2(Find) và thay thế bằng một chuỗi được đặt ở tham số 3(Replace). Ba tham số còn
lại là tùy chọn. Start qui định vị trí bắt đầu tìm chuỗi cần được thay, nếu bỏ wa mặc
định la 1. Count qui định số lần thay thế trong chuỗi, nếu bỏ wa mặc định Replace
sẽ tìm và thay thế cho đến hết chuỗi.
VD: str = “bcbcbc”
tmp = Replace (str, “b”, “a”) —> str = “acacac”
tmp = Replace (str, “b”, “a”, 2) —> str = “cacac”
tmp = Replace (str, “b”, “a”, 1, 1) —> str = “acbcbc”
StrComp (String1, String2, Compare) ‘ dùng để so sánh 2 chuỗi.
Trị trả về: (String1 < String2) = -1; (String1 = String2) = 0; (String1 > String2) = 1


Like ‘ so sánh 2 chuỗi cho phép sử dụng biệt ngữ ( như dùng ký tự đại diện trong
Dos) trị trả về = True nếu tương hợp
VD: “abcd” Like “*bcd” = True

“abcd” Like “a?cd” = True
“a1cd” Like “a#cd” = True
Chú ý hàm Like mặc định cũng là hàm nhạy ký tự, theo thiết lập Option Compare
ở form hoặc module
Chr(charcode as Long) ‘ Chuyển mã Ascii thành ký tự
VD:
MyChar = Chr(65) ‘ Returns A.
MyChar = Chr(97) ‘ Returns a.
MyChar = Chr(62) ‘ Returns >.
MyChar = Chr(37) ‘ Returns %.
Asc(String as String) ‘ trả về mã Ascii của ký tự
VD: Asc (“a”) = 65
ChrW(charcode) ‘ Chuyển mã Ascii thành ký tự (Hỗ trợ Unicode)
VD: ChrW(&H1EC7) = “ệ”
AscW (string) ‘ Chuyển ký tự thành mã Ascii (hỗ trợ Unicode)
VD: AscW(“ệ”) = 7879 = H1EC7
LCase(String) ‘ chuyển đổi chuỗi sang chữ in thường
UCase (String) ‘ ngược với LCase
Join (SourceArray, Delimiter) ‘ tạo chuỗi mới từ một mảng chuỗi (SourceArray)
với các phần tử được phân định bởi tham số Delimiter
VD: Arr (0) = “a”
Arr (1) = “b”
Arr (2)= “c”
Print Join (Arr, ” “) = “a b c”


Split (Expression as String, Delimiter, Count, Compare) ‘ tạo mảng chuỗi từ một
chuỗi (Expression). Đặt tham số Delimiter để chuyên biệt chỗ ngắt, nếu bỏ wa
tham số này mặc định Split sẽ tách tại các khoảng trống của chuỗi. Tham số Count
qui định số lần tách. Ba tham số cuối là tùy chọn

VD: Dim str as string, Arr as Variant
str = “cau lac bo vb”
Arr = Split (str) ‘ dùng For duyệt mảng Arr sẽ cho ra : Arr ( 0 ) = “cau”; Arr ( 1 ) =
“lac” …Arr ( 3 ) = “vb”
Arr = Split (str, “a”) —> Arr (0) = “c”; Arr (1) = “u l”; Arr (2) = “c bo vb”
Arr = Split (str, ” “, 2) —> Arr (0) = “cau”; Arr(1) = “lac bo vb”
Filter (sourcearray, match [, include [, compare]]) ‘ Lọc mảng sourcesrray với giá
trị lọc là match ; include: Lọc đảo (True hoặc False) ; compare: chỉ rõ kiểu dữ liệu
để so sánh trong quá trình lọc.
Dùng cho tham số compare
vbUseCompareOption = –1 : Chế độ tùy chọn, VB sẽ tự động lựa lọai dữ liệu thích
hợp
vbBinaryCompare = 0 : So sánh nhị phân
vbTextCompare = 1 : So sánh chuỗi
vbDatabaseCompare = 2 : So sánh dữ liệu
VD:
Dim selNames() As String
Dim Names(1 To 5) As String
Names(1) = “A”
Names(2) = “B”
Names(3) = “C”
Names(4) = “D”
Names(5) = “E”
selNames = Filter(Names, “A”) ‘ Returns “A”
selNames = Filter(Names, “B”, False) ‘Returns “A” , “C”, “D”, “E”


StrReverse(expression as String) ‘ Đảo chuỗi expression
VD: StrReverse(“1234567”) ‘ Returns “7654321”



Public Class ListBox
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
Dim i As Integer = listbox1.SelectedIndex
If i = -1 Then
Exit Sub
End If
listbox2.Items.Add(listbox1.Items(i))
listbox1.Items.RemoveAt(i)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles
Button2.Click
Dim i As Integer = listbox2.SelectedIndex
If i = -1 Then
Exit Sub
End If
listbox1.Items.Add(listbox2.Items(i))
listbox2.Items.RemoveAt(i)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles
Button3.Click
listbox2.Items.AddRange(listbox1.Items)
listbox1.Items.Clear()


End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles
Button4.Click
listbox1.Items.AddRange(listbox2.Items)

listbox2.Items.Clear()
End Sub
Private Sub btnset_Click(sender As Object, e As EventArgs) Handles
btnset.Click
listbox1.Items.Clear()
listbox2.Items.Clear()
For i As Integer = 1 To 10 Step 1
listbox1.Items.Add(i)
Next
End Sub
End Class

Console.WriteLine("enter the no")
Dim no As Integer = CInt(Console.ReadLine())
Console.Write("Reverse of {0} is : ", no)
While no > 0
Console.Write(no Mod 10)
no = Math.Floor(no / 10)
End While


Console.ReadKey()


Public Class SoLeSoChan
Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles
btnPrint.Click
Dim firstNum, lastNum As Integer
Dim result, result2 As String
result = ""

result2 = ""
firstNum = Convert.ToInt32(Me.firstNum.Text)
lastNum = Convert.ToInt32(Me.lastNum.Text)
For i As Integer = firstNum To lastNum Step 1
If i Mod 2 = 0 Then
result = result & i.ToString() & " "
Else
result2 = result2 & i.ToString() & " "
End If
Next
Me.lbl1.Text() = "Các số chẵn từ " + firstNum.ToString() + " tới " +
lastNum.ToString() + " là " + result
Me.lbl2.Text() = "Các số lẻ từ " + firstNum.ToString() + " tới " +
lastNum.ToString() + " là " + result2
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles
btnExit.Click
Me.Close()


End Sub
End Class


Public Class HoaChimBuom
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As
EventArgs) Handles ComboBox1.SelectedIndexChanged
Select Case Me.ComboBox1.Text
Case "Chim"
Me.Label3.Text = "Tôi sẽ là loài vẹt xanh"

PictureBox1.Image = Image.FromFile("chim.jpg")
Me.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Case "Hoa"
Me.Label3.Text = "Tôi sẽ là loài hoa ngát hương"
PictureBox1.Image = Image.FromFile("hoa.jpg")
Me.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Case "Mây"
Me.Label3.Text = "Tôi sẽ là loài mây trắng"
PictureBox1.Image = Image.FromFile("may.jpg")
Me.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
Case "Người"
Me.Label3.Text = "Tôi sẽ hi sinh vì tổ quốc"
PictureBox1.Image = Image.FromFile("bodoi.jpg")
Me.PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage


PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Select
End Sub
End Class


Imports System.Data.OleDb
Public Class TimKiemNangCao
Dim vDatabase As New CSDL
Dim vCommand As OleDbCommand
Public vDataset As DataSet

Public vMydata As OleDbDataAdapter
Public vMyreader As OleDbDataReader

Sub loadData()
Dim sql As String = "SELECT * FROM NhanVien"
vMydata = New OleDbDataAdapter(sql, vDatabase.conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
Me.DataGridView1.DataSource = vDataset.Tables(0)
Dim sqlPhongBan As String = "SELECT * FROM PhongBan"
vMydata = New OleDbDataAdapter(sqlPhongBan, vDatabase.conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
For Each dbrow As DataRow In vDataset.Tables("Table").Rows
cbbMaPhongBan.Items.Add(dbrow.Item("TenPhongBan"))
Next
End Sub


Sub loadDataSearch()
Dim sql As String
If rdoGanDung.Checked Then
sql = "SELECT * FROM NhanVien WHERE MaNV LIKE '%" &
txtMaNV.Text & "%' AND HoTen LIKE '%" & txtHoTen.Text & "%' AND
NgaySinh LIKE '%" & txtNamSinh.Text & "%' AND SDT LIKE '%" &
txtPhone.Text & "%' AND Email LIKE '%" & txtEmail.Text & "%' AND GioiTinh
LIKE '%" & cbbGioiTinh.Text & "%'"
Else
sql = "SELECT * FROM NhanVien WHERE " ' Chinh xac
If txtMaNV.Text <> "" Then '1

sql = sql & "MaNV = '" & txtMaNV.Text & "' AND "
End If
If txtHoTen.Text <> "" Then '2
sql = sql & "HoTen = '" & txtHoTen.Text & "' AND "
End If
If txtNamSinh.Text <> "" Then '3
sql = sql & "RIGHT(NgaySinh,4) = '" & txtNamSinh.Text & "' AND "
End If
If cbbGioiTinh.Text <> "" Then '4
sql = sql & "GioiTinh = '" & cbbGioiTinh.Text & "' AND "
End If
If txtPhone.Text <> "" Then '5


sql = sql & "SDT = '" & txtPhone.Text & "' AND "
End If
If txtEmail.Text <> "" Then '6
sql = sql & "Email = '" & txtEmail.Text & "' AND "
End If
If cbbChucVu.Text <> "" Then '7
sql = sql & "MaChucVu = '" & vDatabase.MCV(cbbChucVu.Text, 1) &
"' AND "
End If
sql = sql.Trim().Remove(sql.Length - 4)
End If
vMydata = New OleDbDataAdapter(sql, vDatabase.conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
Me.DataGridView1.DataSource = vDataset.Tables(0)
Dim dem As Integer = DataGridView1.Rows.Count()

lblDem.Text = "Tìm thấy " & dem.ToString & " kết quả"
lblDem.Show()
End Sub

Private Sub TimKiemNangCao_Load(sender As Object, e As EventArgs)
Handles MyBase.Load
vDatabase.connectdb()


loadData()
lblDem.Hide()

End Sub
Private Sub DataGridView1_CellFormatting(sender As Object, e As
DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
With DataGridView1
If Not e.RowIndex Mod 2 = 0 Then
e.CellStyle.BackColor = Color.LightGray
Else
e.CellStyle.BackColor = Color.Silver
End If
End With
End Sub

Private Sub btnTimKiem_Click(sender As Object, e As EventArgs) Handles
btnTimKiem.Click
loadDataSearch()
End Sub
Private Sub btnReload_Click(sender As Object, e As EventArgs) Handles
btnReload.Click

lblDem.Hide()


txtEmail.Clear()
txtHoTen.Clear()
txtMaNV.Clear()
txtNamSinh.Clear()
txtPhone.Clear()
End Sub
Sub loadChucVu()
cbbChucVu.Items.Clear()
Dim sqlChucVu As String = "SELECT * FROM ChucVu WHERE
MaPhongBan = '" & vDatabase.MPB(cbbMaPhongBan.Text, 1) & "'"
vMydata = New OleDbDataAdapter(sqlChucVu, vDatabase.conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
For Each dbrow As DataRow In vDataset.Tables("Table").Rows
cbbChucVu.Items.Add(dbrow.Item("TenChucVu"))
Next
End Sub

Private Sub cbbMaPhongBan_SelectedIndexChanged_1(sender As Object, e As
EventArgs) Handles cbbMaPhongBan.SelectedIndexChanged
cbbChucVu.Items.Clear()
loadChucVu()
End Sub


Private Sub DataGridView1_Click(sender As Object, e As EventArgs) Handles
DataGridView1.Click

Try
NhanVien.Show()
NhanVien.txtMaNV.Text = Me.DataGridView1.Item(0,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtMaNV.Text = Me.DataGridView1.Item(0,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtHoTen.Text = Me.DataGridView1.Item(1,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtNgaySinh.Text = Me.DataGridView1.Item(2,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtGioiTinh.Text = Me.DataGridView1.Item(4,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtQueQuan.Text = Me.DataGridView1.Item(3,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtDiaChi.Text = Me.DataGridView1.Item(5,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtSDT.Text = Me.DataGridView1.Item(6,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtEmail.Text = Me.DataGridView1.Item(7,
Me.DataGridView1.CurrentRow.Index).Value
NhanVien.txtMaPhongBan.Text =
vDatabase.MPB(vDatabase.MCV(Me.DataGridView1.Item(8,
Me.DataGridView1.CurrentRow.Index).Value, 3), 0)
NhanVien.loadChucVu()


NhanVien.txtMaChucVu.Text =
vDatabase.MCV(Me.DataGridView1.Item(8,
Me.DataGridView1.CurrentRow.Index).Value, 2)
Catch ex As Exception

MsgBox("Lỗi không xác định !")
End Try
End Sub

End Class


Imports System.Data.OleDb
Public Class CSDL
Public conn As New OleDbConnection
Sub connectdb()
Dim db As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=CSDL.accdb;"
conn.ConnectionString = db
conn.Open()
If conn.State = ConnectionState.Open Then
'MsgBox("Ket noi thanh cong")
Else
MsgBox("Ket noi khong thanh cong")
End If

End Sub
Sub closedb()
If conn.State = ConnectionState.Open Then
conn.Close()
conn.Dispose()
End If
End Sub
Function MPB(ByVal Key As String, ByVal Type As Integer) ' Phong ban
Dim vDataset As DataSet



Dim vMydata As OleDbDataAdapter
Dim out As String = ""
Dim column As String
Dim sql As String
If Type = 1 Then ' Lấy mã phòng ban
column = "MaPhongBan"
sql = "SELECT TOP 1 * FROM PhongBan WHERE TenPhongBan = '" &
Key & "'"
Else
column = "TenPhongBan"
sql = "SELECT TOP 1 * FROM PhongBan WHERE MaPhongBan = '" &
Key & "'"
End If
vMydata = New OleDbDataAdapter(sql, conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
For Each dbrow As DataRow In vDataset.Tables("Table").Rows
out = dbrow.Item(column)
Next
Return out
End Function
Function MCV(ByVal Key As String, ByVal Type As Integer) ' CHuc vu
Dim vDataset As DataSet


Dim vMydata As OleDbDataAdapter
Dim out As String = ""
Dim column As String

Dim sql As String
If Type = 1 Then ' Lấy mã chức vụ
column = "MaChucVu"
sql = "SELECT TOP 1 * FROM ChucVu WHERE TenChucVu = '" & Key
& "'"
ElseIf Type = 2 Then ' Lấy tên chức vụ
column = "TenChucVu"
sql = "SELECT TOP 1 * FROM ChucVu WHERE MaChucVu = '" & Key
& "'"
Else ' Lấy mã phòng ban
column = "MaPhongBan"
sql = "SELECT TOP 1 * FROM ChucVu WHERE MaChucVu = '" & Key
& "'"
End If
vMydata = New OleDbDataAdapter(sql, conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
For Each dbrow As DataRow In vDataset.Tables("Table").Rows
out = dbrow.Item(column)
Next


Return out
End Function
End Class


Imports System.Data.OleDb
Public Class NhanVien
Dim vDatabase As New CSDL

Dim vCommand As OleDbCommand
Public vDataset As DataSet
Public vMydata As OleDbDataAdapter
Public vMyreader As OleDbDataReader
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
vDatabase.connectdb()
btn_Save.Hide()
btn_Close.Hide()
btnLuuEdit.Hide()

Dim sqlPhongBan As String = "SELECT * FROM PhongBan"
vMydata = New OleDbDataAdapter(sqlPhongBan, vDatabase.conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
For Each dbrow As DataRow In vDataset.Tables("Table").Rows
txtMaPhongBan.Items.Add(dbrow.Item("TenPhongBan"))
Next
loadData()
End Sub


Private Sub DataGridView1_CellFormatting(sender As Object, e As
DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
With DataGridView1
If Not e.RowIndex Mod 2 = 0 Then
e.CellStyle.BackColor = Color.LightGray
Else
e.CellStyle.BackColor = Color.Silver
End If

End With
End Sub
Sub loadChucVu()
txtMaChucVu.Items.Clear()
Dim sqlChucVu As String = "SELECT * FROM ChucVu WHERE
MaPhongBan = '" & vDatabase.MPB(txtMaPhongBan.Text, 1) & "'"
vMydata = New OleDbDataAdapter(sqlChucVu, vDatabase.conn)
vDataset = New DataSet
vMydata.Fill(vDataset)
For Each dbrow As DataRow In vDataset.Tables("Table").Rows
txtMaChucVu.Items.Add(dbrow.Item("TenChucVu"))
Next
End Sub
Sub loadData()
Dim sql As String = "SELECT * FROM NhanVien"


×