150 likes | 297 Views
ASP [# 9]. การติดต่อข้อมูล Text Files การสร้างระบบ Counter ตัวนับจำนวนผู้เข้าชมเว็บไซต์ด้วย Text Files. การใช้ ASP กับ Text File.
E N D
ASP [# 9] การติดต่อข้อมูล Text Files การสร้างระบบ Counter ตัวนับจำนวนผู้เข้าชมเว็บไซต์ด้วย Text Files
การใช้ ASP กับ Text File • ออบเจ็กต์ File Systemออบเจ็กต์ File System เป็นออบเจ็กที่ใช้ในการจัดการด้านไฟล์ เช่น การเปิด/ปิดไฟล์ รวมทั้งการสร้างโฟลเดอร์ การเปลี่ยนย้ายโฟลเดอร์ โดยเราจะต้องทำการศึกษาถึง คอมโพเนนต์ File Access
File Access Component • เป็นคอมโพเนนต์ที่ใช้ในการจัดการไฟล์ต่างๆ เช่น การเปิด/ปิดไฟล์ ซึ่งรูปแบบการใช้งานเป็นดังนี้ Set Fso=CreateObject("Scripting.FileSystemObject") • หลังจากคำสั่งนี้เราจะได้ออบเจ็กต์ชื่อ Fso ที่เป็นออบเจ็กต์ของ File Access Component ซึ่งออบเจ็กต์ Fso นี้เราสามารถเรียกใช้เมธอดต่างๆ ในการจัดการไฟล์ได้
Open Text File Method • เป็นเมธอดที่ใช้ในการเปิดไฟล์ที่มีอยู่แล้ว และเรายังสามารถอ่าน เขียน หรือ เพิ่มเติมข้อมูลในไฟล์นั้นๆ ได้ ซึ่งรูปแบบการทำงานมีดังนี้ Object.openTextFile(filename[,iomode][,create][,Format]
ซึ่งมีรายละเอียดดังนี้ซึ่งมีรายละเอียดดังนี้ • Object (ต้องกำหนด/Required) เป็นชื่อออบเจ็กต์ของคอมโพเนนต์ • File Access ซึ่งในตัวอย่างกำหนดเป็นชื่อ fso Filename (ต้องกำหนด/Required) เป็นชื่อไฟล์ที่เราต้องการเปิด • iomode (มีหรือไม่มีก็ได้/Optional) เป็นการกำหนดการทำงานกับไฟล์แบ่งเป็น 3 ชนิด คือ • ForReading(1) เปิดไฟล์เพื่ออ่านอย่างเดียว • ForWriting(2) เปิดไฟล์เพื่อเขียนอย่างเดียว • ForAppending(8) เปิดไฟล์เพื่อเขียนข้อมูลเพิ่มเติมที่ท้ายไฟล์
ซึ่งมีรายละเอียดดังนี้ (ต่อ) • Create (มีหรือไม่มีก็ได้/optional) เป็นค่าที่ใช้กำหนดการสร้างไฟล์ • โดยกำหนดเป็น True ถ้าไฟล์ที่เราต้องการเปิดยังไม่ได้สร้าง จะสามารถสร้างไฟล์ใหม่ • False ถ้าไฟล์ที่เราต้องการเปิดยังไม่ได้สร้างจะไม่สามารถสร้างไฟล์ใหม่ได้และจะฟ้อง Error แทน ถ้าเราไม่กำหนดค่านี้โดยปกติจะถือว่าเป็น False • Format (มีหรือไม่มีก็ได้/optional) ใช้กำหนดรูปแบบการเปิดไฟล์ Tristate UseDefault(-2) พิจารณาจากระบบ เช่น ระบบเป็นแบบ ASCII ก็จะเปิดแบบ • ASCIITristate True(-1) เปิดไฟล์เป็นรหัส Unicode • Tristate False(0) เปิดไฟล์เป็นรหัส ASCII • ถ้าเราไม่กำหนดค่านี้โดยปกติจะถือว่าเป็น ASCII
ตัวอย่างการใช้งานคำสั่งตัวอย่างการใช้งานคำสั่ง Set fso=CreateObject("Scripting.FileSystemObject") Set Myfile=fso.openTextfile("testfile.txt",1,True) • บรรทัดแรก เป็นการสร้างออบเจ็กต์ fso ซึ่งเป็นออบเจ็กต์ที่เกิดจากคอมโพเนนต์ File Access จากนั้น ออบเจ็กต์ fso ก็จะเรียกเมธอด OpenTextFile เพื่อเปิดไฟล์ testfile.txt แบบอ่านอย่างเดียว และในกรณีที่ไฟล์นี้ยังไม่ถูกสร้างก็จะทำการสร้างไฟล์นี้ให้เราทันที • บรรทัดที่สอง จะเห็นได้ว่าการเรียกใช้เมธอด OpenTextFile จะทำให้เกิดออบเจ็กต์อีกตัวหนึ่ง ชื่อ MyFile ซึ่งออบเจ็กต์นี้เราจะเรียกว่า Text Stream Object
TextStream Object TextStream Object (ออบเจ็กที่ทำงานกับ Text) เป็นออบเจ็กต์ที่ใช้จัดการข้อความต่างๆภายในไฟล์ เช่น การเขียน / อ่านข้อมูล การปิดไฟล์เป็นต้น ซึ่ง TextStream ก็มีเมธอดที่ใช้ในการจัดการข้อความดังนี้ • Close ปิด TextStream Object • Read อ่านข้อมูลตามจำนวนที่เรากำหนด • ReadAll อ่านข้อมูลทั้งหมด • ReadLine อ่านข้อมูล 1 บรรทัด • Skip กระโดดข้ามตามที่เรากำหนด • SkipLine กระโดดข้าม 1 บรรทัด • Write เขียนข้อมูล • WriteLine เขียนข้อมูล 1 บรรทัด • WriteBlankLines เว้นบรรทัดตามที่เรากำหนด
ตัวอย่าง Sam9-2.asp • <% if request.form("message") = "" then %><html><body><form action="sam9-2.asp" method="post"><font size=+1>ข้อมูลที่ต้องการเขียนลง text</font><br>Name: <input type=text name=message size=30><input type=submit value=ตกลง></form><% else Set FileObject = Server.CreateObject("Scripting.FileSystemObject")MsgFile = Server.MapPath ("Text.txt") Set OutStream= FileObject.CreateTextFile (MsgFile, True) OutStream.WriteLine Request.Form("message") Set OutStream = NothingSet MessageStr =Nothing%>เปิดไฟล์<a href="sam9-3.asp">sam9-3.asp</a>แสดงข้อมูจากไฟล์</body></html><% end if %>
Out Put Out Put • Out Put Sam9-2.asp
<html><body>แสดงไฟล์<br><%Set FileObject = Server.CreateObject("Scripting.FileSystemObject")MsgFile = Server.MapPath ("Text.txt")On Error Resume Next Set InStream= FileObject.OpenTextFile (MSGFile, 1, False, False)Response.Write Instream.ReadALL & "<BR>"Set Instream=Nothing%></body></html> Sam9-3.asp
การสร้างระบบ Counter ตัวนับจำนวนผู้เข้าชมเว็บไซต์ Text Files • สร้าง Counter จาก Text Files ขั้นแรกสร้างไฟล์ counter.txt • copy ไฟล์ ต่อไปนี้ไปไว้ใน folder images เช่น Images โดยไฟล์เป็นนามสกุล .GIF
Sam9-4.asp • <%Set FileObject = Server.CreateObject("Scripting.FileSystemObject")hitsfile = Server.MapPath("counter.txt")Set instream= FileObject.OpenTextFile (hitsfile, 1, False )' เรียกค่าจำนวนผู้เยี่ยมชมจากไฟล์ counter.txtoldhits = instream.ReadLine ' เก็บค่าเข้าตัวแปร oldhitsnewhits = oldhits + 1Instream.close • ' บวกค่าด้วยหนึ่งแล้วเก็บเข้าตัวแปร newhitsSet outstream= FileObject.CreateTextFile (hitsfile, True)OutStream.WriteLine(newhits) ' เก็บค่าจำนวนผู้เยี่ยมชมที่อยู่ในตัวแปร newhits เข้าไปในไฟล์ counter.txt l=Len(newhits)' เก็บจำนวนตัวอักษร(จำนวนหลัก)ของตัวแปร newhits ไว้ในตัวแปร lFor i = 1 to l ' วนการทำงานจากหลักที่ 1 ถึงหลักที่ lnum = Mid(newhits,i,1)' ตัดตัวเลขออกมาที่ละตัวdisplay = display & "<img src=images/" &num & ".gif >” • ' แสดงรูปตามหมายเลขแล้วเก็บเข้าตัวแปร displayNext • Outstream.close%><%=display%>
Counter ด้วย รูปภาพแบบที่ 2 Sam9-5.asp • <%Dim strFilePathDim strObjFileDim strObjStreamDim strTemp • strFilePath = Server.MapPath(“counter.txt") 'กำหนดตำแหน่งของไฟล์ที่เก็บค่าตัวเลข Set strObjFile = CreateObject("Scripting.FileSystemObject") 'สร้าง Object ที่ใช้กับ Text File Set strObjStream= strObjFile.OpenTextFile (strFilePath, 1) 'ทำการเปิดไฟล์ visitors.txt เพื่ออ่านอย่างเดียว strTemp = strObjStream.ReadLine+1 'ใช้เมดถอด Readline เพื่ออ่านค่าและ +เพิ่มไปอีก 1 strObjStream.Close 'ทำการปิดไฟล์ Set strObjStream = strObjFile.OpenTextFile (strFilePath, 2) 'ทำการเปิดไฟล์ visitors.txt เพื่อเขียนอย่างเดียว strObjStream.WriteLine(strTemp) 'เขียนค่าที่อ่านได้จากคำสั่งด้านบนค่าของ strTemp ลงใน visitors.txt strObjStream.Close 'ทำการปิดไฟล์ %> • <HTML><title>ASPThai Free Source Counter</title><META http-equiv="Content-Type" content="text/html; charset=windows-874"><BODY> <font face="ms Sans Serif, Thonburi, DB ThaiTextFixed" color="#000000" size="2">ขณะนี้ เว็บเพจนี้เปิดอ่านแล้ว<hr> แสดง Counter แบบตัวเลข ---- <%=strTemp %> ครั้ง <hr> แสดง Counter แบบรูปภาพ 5 หลัก <%bit=strTemp\10000%><IMG SRC=“images/<%=bit%>.gif"> 'หลักหมื่น<%bit=(strTemp mod 10000)\1000%><IMG SRC="images/<%=bit%>.gif"> 'หลักพัน<%bit=(strTemp mod 1000)\100%><IMG SRC="images/<%=bit%>.gif"> 'หลักร้อย<%bit=(strTemp mod 100)\10%><IMG SRC="images/<%=bit%>.gif"> 'หลักสิบ<%bit=strTemp mod 10%><IMG SRC="images/<%=bit%>.gif">ครั้ง 'หลักหน่วย
แบบฝึกหัด *ให้เขียนเช็คว่าป้อนข้อมูลถูกต้องหรือไม่ โดยให้มี Message Box ขึ้นมาเตือน เมื่อกดปุ่ม Submit - Name ต้องป้อนเป็นข้อความเท่านั้น - Age ต้องป้อนเป็นตัวเลขเท่านั้น แล้วก็ให้มี Counter นับจำนวนผุ้เข้าชม เก็บไว้ที่ไฟล์ Count.txt *โดยถ้าเปิดจากไฟล์บราวเซอร์ตัวเดิม ไม่ให้เพิ่มจำนวนผู้ชม Name: Age: Visitors: 5 Submit