Viet' Library

Hơn tất cả những gì bạn có!

Lập trình asp.net để tạo bộ đếm số người online?

Hỏi: Xin hướng dẫn lập trình asp.net để tạo bộ đếm số người online và dịch từ số đó sang chữ.

Đáp:

Cụm từ “số người on-line” của bạn không rõ ràng, thường thì người ta chỉ muốn đếm xem có bao nhiêu người đã truy xuất website cụ thể. Để xây dựng trang ASP hiển thị dòng chữ miêu tả số người đã truy xuất website (hay trang web) của mình, bạn cần giải quyết 2 vấn đề cơ bản:
– Viết hàm chuyển đổi từ số nguyên sang dòng chữ phát âm số nguyên đó.
– Tăng counter đếm (thường phải được để trên file hay database để lưu giữ lâu dài ngay cả khi trang web không được truy xuất hay máy server bị shutdown), rồi dùng hàm chuyển đổi counter hiện hành sang chuỗi phát âm tương ứng và hiển thị ở vị trí thích hợp trên trang web.
Đoạn lệnh sau đây là của trang ASP demo do chúng tôi viết, mỗi khi có người dùng nào đó truy xuất sẽ lưu thông tin về người dùng đó lên table tên là ClientsTab, rồi đếm tổng số người dùng đã truy xuất từ trước đến nay và hiển thị chuỗi phát âm lên trang web kết quả:
<html>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
<head>


<%
‘————————————
‘ Hàm đổi 1 số có tối đa 3 ký số thành chuỗi tương ứng.
‘————————————-
Private Function sotram2chu(socandoi) ‘As String
‘ Khai báo dữ liệu
Dim chuso(11) ‘As String
Dim shangchuc, shangtram, shangdonvi
Dim str ‘As String
chuso(1) = “một”
chuso(2) = “hai”
chuso(3) = “ba”
chuso(4) = “bốn”
chuso(5) = “năm”
chuso(6) = “sáu”
chuso(7) = “bảy”
chuso(8) = “tám”
chuso(9) = “chín”
str = “”
‘ Kiểm tra số cần đổi có hợp lệ không
If socandoi >= 1000 Then
sotram2chu = “???”
Exit Function
End If
‘Xác định 3 ký số miêu tả hàng trăm, hàng chục & đơn vị
shangtram = socandoi \ 100
socandoi = socandoi Mod 100
shangchuc = socandoi \ 10
shangdonvi = socandoi Mod 10
If shangtram >= 1 Then
str = chuso(shangtram) & ” trăm”
End If
If shangchuc >= 2 Then
str = str & ” ” & chuso(shangchuc) & ” mươi”
ElseIf shangchuc = 1 Then
str = str & ” mười”
End If
If shangdonvi = 0 Then
sotram2chu = str
Exit Function
End If
If shangchuc = 0 Then
If shangtram <> 0 Then
str = str & ” lẻ ” & chuso(shangdonvi)
Else
str = str & ” ” & chuso(shangdonvi)
End If
sotram2chu = str
Exit Function
End If
If shangchuc = 1 Then
If shangdonvi <> 5 Then
str = str & ” ” & chuso(shangdonvi)
Else
str = str & ” lăm”
End If
sotram2chu = str
Exit Function
End If
If shangdonvi = 1 Then
str = str + ” mốt”
ElseIf shangdonvi = 5 Then
str = str + ” lăm”
Else
str = str + ” ” + chuso(shangdonvi)
End If
sotram2chu = str
End Function

‘————————————
‘ Hàm đổi 1 số nguyên bất kỳ thành chuỗi phát âm tương ứng
‘————————————
Private Function so2chu(socandoi)
Dim idx ‘As Integer
Dim ba_kyso ‘As Integer
Dim str, str_tram ‘As String
Dim tu_ngan_cach ‘As String
Dim chu_cach(5) ‘As String
chu_cach(1) = “tỷ”
chu_cach(2) = “ngàn”
chu_cach(3) = “triệu”
idx = 0 ‘ vi tri dau cham phan cach tung 3 ky so
str = “”
str_tram = “”
While socandoi <> 0
ba_kyso = socandoi Mod 1000
socandoi = socandoi \ 1000
str_tram = sotram2chu(ba_kyso) ‘nen bo cac khoang trong dan dau
If idx = 0 Then ‘ vi tri don vi
str = str_tram
ElseIf Len(str_tram) <> 0 Then ‘vi tri ngan, trieu, ty
tu_ngan_cach = chu_cach((idx Mod 3) + 1)
str = str_tram + ” ” + tu_ngan_cach + ” ” + str
ElseIf (idx Mod 3) = 0 Then
str = “tỷ ” + str
End If
idx = idx + 1
Wend
so2chu = str
End Function

//hàm lưu thông tin về người dùng truy xuất và đếm số lượt người
Function UserCount()
‘khai báo các biến cần dùng
dim MyConnection
dim MyCommand
dim MyRecordset
‘tạo 1 connection đến database dung DSN
set MyConnection = Server.CreateObject(“ADODB.Connection”)
MyConnection.Open “DSN=MyDatabase”

‘tạo đối tượng Command
set MyCommand = Server.CreateObject(“ADODB.Command”)
MyCommand.ActiveConnection = MyConnection
‘lưu thông tin người dùng đang truy xuất vào database
MyCommand.CommandText = “INSERT INTO ClientsTab VALUES (‘” & Request.ServerVariables(“Remote_Addr”) & “‘,'” & Request.ServerVariables(“Path_Info”) & “‘,'” & Request.ServerVariables(“HTTP_User_Agent”) & “‘)”
MyCommand.Execute()
‘đọc tất cả record trong table ClientsTab
MyCommand.CommandText = “SELECT * FROM ClientsTab”
set MyRecordset = MyCommand.Execute()
clientnum = 0
‘đếm số record trong table ClientsTab
Do While Not MyRecordset.EOF
clientnum = clientnum + 1
MyRecordset.MoveNext
Loop
‘đổi số lượt người ra chuỗi phát âm
usercount=so2chu(clientnum)
‘đóng các đối tượng đã dùng lại
MyRecordset.Close
MyConnection.Close
End Function
%>
</head>

<body>
Bạn là người truy cập thứ <b><%=UserCount()%></b> tới trang web này.

</body>
</html>

Theo goctinhoc

Thứ Ba, 30,Tháng Mười Một, 2010 - Posted by | Vb & C# for Asp.net

Chưa có phản hồi.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: