เวลาไปถ่ายทอดความรู้ที่ตัวเองมีอยู่ไปให้กะผู้อื่นนี่ ส่วนใหญ่ผมมักจะหาโจทย์อะไรที่มันอยู่ใกล้ๆตัวของผู้เรียนนั่นแหละครับมาใช้งาน เช่น สอน MS Access ให้เด็กมอปลาย ผมก็จะสอนให้รู้จักวิเคราะห์การจัดเก็บฐานข้อมูลของเพื่อนๆ หรือ เก็บผลการเรียนไว้ใน DataBase เป็นต้น (ขืนไปสอนระบบสต็อคสินค้าให้ ผมว่ามันจะเว่อร์ไปหน่อยล่ะ คงต้องเปลี่ยนหลักสูตรใหม่เป็น "หลักสูตรเถ้าแก่น้อย" 55555) พอมาสอน Visual Basic กะ ASP ให้กับนักศึกษาที่เรียนคอมพิวเตอร์มา ผมก็เลยให้โจทย์ (ง่ายๆ) ดังในบทความนี้ อ้าว ... ลองอ่านค่า IP ที่เข้ามา แล้วให้ปิดตัวเลขชุดสุดท้ายเอาไว้ซิ ... ซึ่งเราจะเห็น หรือ นำไปใช้บ่อยๆใน Web Board นั่นไงครับพี่น้อง อันนี้เป็นบทความแบบพื้นๆน่ะครับ ผมไม่ได้จะมาอธิบาย Class ต่างๆของหมายเลข IP จุดประสงค์ก็เพื่อให้ผู้กำลังฝึกหัด ได้รู้จักวิเคราะห์โจทย์ หรือ ปัญหาก่อนที่จะลงมือทำครับผม ...
ซ่อนตัวเลขชุดสุดท้ายของ IP Address
มองดูเนี่ยมันก็เป็นโจทย์ง่ายๆ ใช่มั้ยครับ หุหุหุ ... แต่สำหรับมือใหม่น่ะมันไม่ได้ง่ายเลยครับ แทบจะทั้งนั้นเลย ... เอาล่ะโว้ย ... หันหน้าเข้าหาจอ ก้มๆเงยๆ กดโน่น คลิ๊กนี่ ไม่มีล่ะครับ จะมาลากโน่น ลากนี่ ลงบนกระดาษเสียก่อน ผมหมายถึงการเขียน Flow Chart หรือ การออกแบบ วิเคราะห์โจทย์น่ะ แล้วผลที่ตามมาเป็นไงล่ะครับ ติดปัญหาหมด ... ?????
ทีนี้ครับ ... ไม่ว่าคุณจะคิดหาคำตอบจากซ้ายไปขวา หรือ ขวาไปซ้าย ก็หาคำตอบได้เหมือนกัน ... (เฉลยเลย) แต่กรณีนี้ผมจะพิจารณาจากขวามาซ้ายก่อน เพราะโจทย์ที่ตั้งไว้มันอยู่ที่ทางขวานี่ครับ เราจะสังเกตุพบอีกอย่างว่า ชุดตัวเลขทางขวาสุดนั้นไม่ว่าจะมีความยาว 1, 2 หรือ 3 ตัวก็แล้วแต่ แต่เมื่อเราถอยหลังเข้ามา (ขวาไปซ้าย) ตัวถัดไปที่เราจะเจอมันเป็นเครื่องหมายจุดเสมอ ..... ฮั่นแน่ "ยูเรก้า"
Flowchart
พอเขียน Flowchart ออกมาได้น่ะ มันก็จะทำให้เราสามารถกำหนดตัวแปร หรือ เงื่อนไขในการตรวจสอบ ได้อย่างไม่ยากเย็นเลยครับ ... พี่น้อง
<%
Dim IP
Dim i
' ไว้รับค่า IP จริงๆ
' IP = Request.ServerVariables("REMOTE_ADDR")
IP = "192.168.100.255" ' IP สมมุติ
Response.Write("Test IP Address : " & IP)
Response.Write("<br><br>For Statement<br>")
For i = Len(IP) To 1 Step -1
If Mid(IP, i, 1) = "." Then
Response.Write Left(IP, i) & "xxx"
Exit For
End If
Next
Response.Write("<BR><BR>While Statement<BR>")
i = Len(IP)
While Mid(IP, i, 1) <> "."
i = i - 1
Wend
Response.Write Left(IP, i) & "xxx"
Response.Write("<BR><BR>Until Statement<BR>")
i = Len(IP)
Do Until Mid(IP, i, 1) = "."
i = i - 1
Loop
Response.Write Left(IP, i) & "xxx"
%>
|
หรือคุณจะคิดจากซ้ายไปขวาก็สามารถหาคำตอบได้เช่นเดียวกันครับ ... เชื่อผมเหอะ
|