Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

21 August 2015

C# StringBuilder เหนือกว่าต่อ string ธรรมดา

    เวลาเขียนโปรแกรมแล้วมีการต่อ string หลายๆคนอาจจะคุ้นชินกับการเขียนแบบ text = text + newText หรือ text += newText ส่วนตัวผมจะเขียนแบบหลังซะส่วนใหญ่ แต่ถ้าเวลาที่เราต้องเจอเคสที่ต้องต่อ string จำนวนมากๆเข้า ก็จะเริ่มรู้สึกว่าโปรแกรมเราทำงานช้าลง แต่มันยังมีอีกวิธีที่บางคนอาจจะยังไม่ทราบหรือเคยเห็นแล้วแต่ก็ไม่ได้สนใจอะไร นั่นคือการใช้คลาส StringBuilder คราวนี้ผมจะลองเขียนเปรียบเทียบระหว่างการใช้คลาส StringBuilder กับการต่อ string ธรรมดาที่เราคุ้นชินโดยจะมีการจับเวลาของการทำงานในแต่ละแบบ ดัง code ตัวอย่างครับ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Stopwatch sw1 = new Stopwatch();
            sw1.Start();
            UseStringBuilderClass();
            sw1.Stop();
            Console.WriteLine("UseStringBuilderClass " + sw1.ElapsedMilliseconds + " ms.");

            Stopwatch sw2 = new Stopwatch();
            sw2.Start();
            NotUseStringBuilderClass();
            sw2.Stop();
            Console.WriteLine("NotUseStringBuilderClass " + sw2.ElapsedMilliseconds + " ms.");

            Console.ReadKey();
        }

        static void UseStringBuilderClass()
        {
            StringBuilder str = new StringBuilder();
            for (int i = 0; i < 100000; i++) str.Append(i);
        }

        static void NotUseStringBuilderClass()
        {
            string str = "";
            for (int i = 0; i < 100000; i++) str += i;
        }
    }
}

15 November 2013

ล้างข้อมูลใน Textbox ด้วย jQuery

    สวัสดีจร้าาาาา วันศุกร์สักทีนะเจ้าพวกมนุษย์เงินเดือนทั้งหลาย หลังจากที่ลุยงานกันมาทั้งสัปดาห์จะว่าเหนื่อยก็เหนื่อย จะว่าสบายก็สบาย ฮ่าๆ สรุปไงว่ะเนี่ย อ่ะๆ เอาเป็นว่าบทความนี้มาลองเล่น jQuery กันดีกว่า

    โจทย์ของเราคือทำฟอร์มล็อกอินโดยที่เราจะบอกกับผู้ใช้งานว่ากล่องใหนสำหรับกรอก Username กล่องไหนสำหรับ Password โดยที่ไม่ต้องใช้แท็กตัวอักษรสำหรับบอกให้ User รู้ สรุปง่ายๆก็คือบอกมันใน textbox นั่นแหละครับ แต่เพื่อให้ล้ำขึ้นมาหน่อยเวลา User บังเกิดเกล้าคลิกแล้วจะให้มันล้าง Textbox ด้วย ตามโค๊ดตัวอย่างนี้เลยครับ

ขั้นแรกอย่าลืมเพิ่มโค๊ดสำหรับเรียกใช้ jQuery นะครับ

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
</head>

08 November 2013

ตัวอย่างการใช้งาน Triggers บน SQL Server

    มาตามสัญญาาาาาาาาา บทความที่แล้วผมก็ได้พูดถึง Triggers ไปแล้วนะครับว่ามันคืออะไร แนวคิดเป็นยังไง แต่มาบทความนี้เราจะมาลองใช้งาน Triggers กัน ผมจะทดลองเขียนบน SQL Server ซื่งจะให้ภาษา T/SQL เช่นเดียวกับ Stored Procedures ถ้าพร้อมแล้ว เปิด SQL Server Management ขึ้นมาเลยครับ

    ขั้นตอนแรก ผมจะสร้างเทเบิลมาก่อน 2 เทเบิล โดย Table_A คือตัวที่จะทำการเขียน Triggers ฝังไว้ ส่วน Table_B คือเทเบิลผลลัพธ์ โดยภายในจะมีฟิลด์สองฟิลด์เหมือนกันทั้งสองเทเบิลคือ id Type:int (auto run indentity) และ txt Type:nvarchar(50) แต่ความจริงแล้วการทำ Triggers ไม่ได้จำกัดนะครับว่าเทเบิลจะต้องเหมือนกัน
*** หมายเหตุ *** Type ของฟิลด์ txt เป็น nvarchar(50) ไม่ใช่ text ตามรูปนะครับ


26 October 2013

Triggers ถ้าฉันทำ เธอต้องทำด้วยนะ !

    สวัสดีไอ้พวกมนุษย์ ! ในที่สุดแอดมินก็ได้มาเขียนบทความของ Gunghun.com เต็มตัวสักทีนะครับ หลังจากที่วุ่นวายกับการย้ายบทความจาก Gushared.com เพราะว่าโฮสกำลังจะหมดอายุเร็วๆนี้ แอดมินเลยคิดว่าถ้าเราหันมาใช้ Blogger แทน จะได้ไม่ต้องเสียค่าเช่าโฮสแล้วก็ถือโอกาสเปลี่ยนชื่อเว็บซะเลย และสำหรับบทความนี้ก็จะพูดเกี่ยวกับเรื่อง Triggers ว่ามันคืออะไร

    Triggers ถ้าจะพูดให้เข้าในง่ายๆ ก็คือการเขียนโปรแกรมฝังไว้ที่เทเบิลเพื่อดักจับเหตุการณ์ (INSERT, UPDATE, DELETE) ที่เกิดขึ้นกับเทเบิลนั้นๆ เพื่อกระทำการใดๆกับเทเบิลเป้าหมายที่ต้องการ ตัวอย่างเหตุการณ์ที่ใช้ Triggers เช่น การจัดเก็บข้อมูลในการซื้อขายผลไม้ ซึ่งจะมีเทเบิลรายการซื้อขาย เทเบิลสรุปยอดและเทเบิลการจัดการสต๊อก ปกติแล้วเมื่อมีการซื้อขาย เราจะต้องอัพเดตข้อมูลสามเทเบิลนี้โดยการเพิ่มข้อมูลเข้าไปทีละเทเบิลๆ ตามรูป

20 October 2013

ปุ่ม 3D บนเว็บไซต์ !

[ย้ายบทความจาก Gushared.com]
    ถ้าพูดถึงความประทับใจในการเข้าเว็บไซต์ เว็บไซต์แบบไหนล่ะที่คุณเข้าแล้วคุณรู้สึกว่า เห้ย ! แมร่งเจ๋งหว่ะ ถ้าสำหรับผมแล้วเว็บไซต์ที่จะทำให้ผมประทับใจได้จะต้อง ดูสะอาดตา ใช้งานง่ายแบบว่าใครเข้ามาก็ใช้งานเป็นเลย มีความแปลกประหลาดแหวกแนวไปจากเว็บไซต์เดิมๆที่เคยใช้
    ผมได้ลองเข้าไปเว็บไซต์ cssdeck.com ไปเจอตัวอย่างการทำปุ่มแบบ 3D ของคุณ simonpicos เห้ย! แมร่งแนวว่ะ ก็เลยเอามาลองทำดูบ้าง ตามด้านล่างนี้เลยครับ (ลองคลิกปุ่มดูนะครับ >.<)

Support : Chrome, Safari, Firefox และ Opera

Memory Address กับเรื่องลิสต์ๆ

[ย้ายบทความจาก Gushared.com]
    ถ้าเปรียบหน่วยความจำให้เข้าใจง่ายๆ ก็คงต้องเปรียบเหมือนห้องเก็บของที่มีทั้งขนาดและหมายเลขห้องเพราะเวลาที่เราจะให้ใครไปหยิบของจากห้องเก็บของ เราจะได้บอกเค้าถูกว่าจะต้องไปหยิบจากห้องไหนหรือเวลาที่จะเอาของไปเก็บ ถ้ามีของเยอะๆจะต้องใช้ห้องเก็บกี่ห้องและเลขห้องไหนบ้าง
    หน่วยความจำ สิ่งที่คนเขียนโปรแกรมมือใหม่มักจะละเลยและไม่คำนึงถึง แต่สำหรับการเขียนโปรแกรมแล้วเป็นสิ่งที่จะลืมไม่ได้เพราะการเขียนโปรแกรมบางรูปแบบค่อนข้างที่จะต้องคำนึงถึงเรื่องการใช้งานหน่วยความจำ ตัวอย่างเช่น
//Programming Language : C#
List a = new List(){1, 2, 3};
List b = a;
b.RemoveAt(0);   //Remove data index 0.
//Result
a = 2, 3
b = 2, 3

18 October 2013

จับข้อมูลยัดใส่ Stored Procedures

[ย้ายบทความจาก Gushared.com]
    สวัสดีครับ ครั้งที่แล้วผมได้เสนอบทความเกี่ยวกับตัวอย่างการใช้งาน Stored Procedures ไปแล้วนะครับ ซึ่งจะแสดงให้เห็นเกี่ยวกับการสร้าง การเรียกใช้ Stored Procedures แบบง๊ายยยยยยยย ฝุดๆ เล๊ยยยย
    แต่มาบทความนี้จะเป็นตัวอย่างในการส่งข้อมูลไปยัง Stored Procedures เพื่ออะไรบางอย่าง เช่น เพิ่มข้อมูลลงดาต้าเบสหรืออาจจะเป็นการประมวลผลอื่นๆ และตัวอย่างนี้ก็คือการส่งข้อมูลเพื่อทำการเพิ่มข้อมูลลงดาต้าเบส โดยแบ่งเป็น 2 ส่วน ดังนี้

17 October 2013

สิ่งเล็กๆ ที่เรียกว่า Stored Procedures

[ย้ายบทความจาก Gushared.com]
    ช่วงหลังๆถ้าใครได้ติดตามเราจะเห็นว่าผมได้พูดเกี่ยวกับ Stored Procedures แต่มาคราวนี้เราจะมาลองใช้งานมันดู โดยหลักๆผมจะแบ่งเป็นสองส่วน ส่วนแรกจะเป็นการสร้าง Stored Procedures ใน SQL Server และส่วนที่สองจะเป็นส่วนของตัวอย่างการเรียกใช้งาน
ส่วนที่ 1 : การสร้าง Stored Procedures หลังจากที่เราเข้าโปรแกรม SQL Server เรียบร้อยแล้ว คลิกขวาที่ดาต้าเบส -> Programmability -> Stored Procedures -> New Stored Procedure...

[C#] เซ็ตปุ่ม Enter เพื่อคลิก Button

[ย้ายบทความจาก Gushared.com]
    บทความนี้เป็นบทความที่ค่อนข้างจะสั้น เพราะไม่มีอะไรมากมาย แค่ให้รู้ว่าถ้าเราสร้าง Button ขึ้นมาบน Windows Forms Application แล้วต้องการให้กดปุ่ม Enter บนคีย์บอร์ดแทนการคลิกบน Button มันต้องทำยังไง อย่ารอช้าเริ่มกันเลยดีกว่า!

[C#]จับเวลาการทำงานของโปรแกรม

[ย้ายบทความจาก Gushared.com]
    "เวลา" สิ่งเล็กๆที่บางครั้งเราอาจจะมองข้ามไป เวลาเขียนโปรแกรมแอดมินเองก็ไม่ค่อยจะสนใจหรอกครับว่าโปรแกรมมันจะใช้เวลาทำงานเท่าไหร่ จนเมื่อมาทำงานเนี่ยแหละครับ Requirement ต้องการให้โปรแกรมต้องทำงานเสร็จภายใน 2 นาที *o* ว๊ากกกก จะทำไงเนี่ย! ไอ้โปรแกรมเราก็คำนวณเยอะซะเหลือเกิน สุดท้ายแล้วแอดมินก็ต้องทำจับเวลาดูทีละส่วน ว่าส่วนไหนมันใช้เวลาเยอะเป็นพิเศษ แล้วค่อยปรับอัลกอริทึมใหม่ แต่ประเด็นคือ เราจะจับเวลาเป็นส่วนๆ ยังไงหล่ะ ? เนี่ยแหละครับที่แอดมินอยากบอก
    Stopwatch หลายคนอาจจะรู้จักแล้ว หลายคนไม่เคยคิดจะใช้มัน Stopwatch เป็นคลาสที่ติดมากับ .NET Framework อยู่แล้วเหลือแค่รอให้เราเรียกใช้มัน โดยหลักๆแล้ว เราจะใช้แค่เริ่มนับเวลา หยุด แล้วก็ดูเวลาที่นับได้ แอดมินก็จะแสดงตัวอย่างแค่นี้แหละ หึหึ
using System.Diagnostics;   // อย่าลืม !
Stopwatch sw = new Stopwatch();  //ทำการเรียกใช้คลาส Stopwatch 
sw.Start();   //เริ่มนับเวลา
sw.Stop();    //หยุดนับเวลา
sw.Elapsed;   //เรียกดูค่าเวลาที่นับ รูปแบบ TimeSpan(Hours:Minutes:Seconds.Milliseconds)

16 October 2013

[C#] Return หลายค่าใน Method เดียว

[ย้ายบทความจาก Gushared.com]
    หลายๆคนที่เขียนโปรแกรม อาจจะเคยต้องการให้เมธอด return ค่ากลับมาให้เรามากกว่าหนึ่งค่าจากเมธอดเดียว บางคนอาจจะเคยใช้ out แล้ว แต่บางคนอาจจะยังไม่รู้จัก เอาแบบไม่อ้างหลักการอะไรมากมายนะครับ เหตุผลที่ผมจะใช้ out ก็ต่อเมื่อต้องการให้เมธอดนั้น return ค่ากลับมามากกว่าหนึ่งค่าโดยที่ไม่ต้องใช้ object หรือ struct โดยสามารถศึกษาได้ตามตัวอย่างโค๊ดง่ายๆด้านล่างนี้ครับ

15 October 2013

Google Map API : สร้าง Marker บน Google Map

[ย้ายบทความจาก Gushared.com]
   หลังจากที่ได้ลองนำ Google Map มาใส่ในเว็บไซต์ของเราแล้ว ครั้งนี้เราจะลองนำ Marker มาปักบน Google Map ของเรามั่งครับ ซึ่งตัวอย่างที่ผมจะนำมาแสดงให้ดู จะค่อนข้างครอบคุมและสามารถนำไปประยุกต์ใช้ต่อได้ วิธีการใช้ก็ไม่ยากแค่เพิ่มโค๊ดมาสามสี่บรรทัด เป็นโค๊ดสำหรับสร้าง Marker แล้วเราก็ใช้เมธอด setMap() เรียกมาแสดงได้เลย

Basic Maker
 <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAu08o0WD6buv6P6bu--XFyo2KrIScQgrg&sensor=false"></script>
        <script>
  function loadmap()
  {
   var mapSet = {
     center:new google.maps.LatLng(13.727896,100.524124),
     zoom:7,
     mapTypeId:google.maps.MapTypeId.ROADMAP
     };
   var map=new google.maps.Map(document.getElementById("googleMap"),mapSet);
                        //Create marker object
   var marker=new google.maps.Marker({  
    position:new google.maps.LatLng(13.727896,100.524124),  
   });
                        //Set marker to google map
   marker.setMap(map);
  }
   google.maps.event.addDomListener(window, 'load', loadmap);
 </script>
 <div id="googleMap" style="width:500px;height:400px;"></div>

Google Map API : การใช้ Google Map อย่างง่าย

[ย้ายบทความจาก Gushared.com]
   เมื่อครั้งที่แล้วเราได้ทำการขอ API Key สำหรับ Google Map เป็นที่เรียบร้อย ครั้งนี้เราจะลองนำ Google Map มาใส่ในเว็บเรากันครับ
ขั้นที่ 1 : เพิ่มแท็ก Script เพื่อเรียกใช้ Google Maps API
<script src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE"></script>
   ในส่วน Key เป็น API Key ที่เราขอไปเมื่อบทความที่แล้ว และส่วน Sensor เป็นส่วนที่จำเป็นต้องใส่ ส่วนใหญ่จะใช้เกี่ยวกับพวก GPS ถ้าหากเป็นธรรมดาแบบไม่อะไรมากก็ใส่เป็น false ไปเลยครับ
ขั้นที่ 2 : ทำการ Set Property ของแผนที่ที่เราต้องการโดยรายละเอียดหลักๆมีดังนี้

Google Map API : ขอ API key จาก Google

[ย้ายบทความจาก Gushared.com]
   ช่วงนี้เราก็จะมาเรียนรู้เกี่ยวกับ Google Map กันครับ ว่าเราจะเอามันมาใส่ในเว็บเราได้ยังไงและมีอะไรให้ใส่ได้บ้าง แต่ก่อนที่จะไปถึงส่วนนั้นเราก็ต้องขอ API Key จาก Google เสียก่อน
ขั้นที่ 1 : เข้าไปที่ https://code.google.com/apis/console/ แล้วก็ล็อกอินด้วย Google Account ของคุณ จากนั้นคลิกปุ่ม Create Project

[C#] ตรวจสอบ Latitude และ Longitude ง่ายๆจากชื่อสถานที่

[ย้ายบทควมาจาก Gushared.com]
   สวัสดีครับเพื่อนๆผู้ติดตาม Gunghun.com ทั้งหลาย(บางวันก็ 1 คน บางวันก็ 2 คน ^_^) ห่างหายจากการอัพเดตไปนาน ช่วงนี้ไปเป็นช่วงที่ผมกำลังเริ่มงานโปรแกรมเมอร์ที่ผมใฝ่ฝันหลังจากเรียนจบมาหมาดๆ เลยไม่ค่อยมีเวลาว่าง แต่ตอนนี้ก็มีเวลาว่างสักชั่วโมงสองชั่วโมง ว่าจะมาลองเขียน Console Application ไว้เรียกดู Latitude กับ Longitude สักหน่อยเผื่อต้องใช้ เอาแบบคร่าวๆไปก่อนนะครับเวลาน้อย ^_^
ขั้นที่ 1 : สร้าง Console Application

14 October 2013

Python (ตอน 8) : เขียนไพทอนให้ง่ายขึ้นด้วย PyDev

[ย้ายบทความจาก Gushared.com]
    กลับมาแล้วผมกลับมาแล้วคร๊าบบบ กลับมาครั้งนี้ผมจะมาแนะนำ IDE ของไพทอนเพื่อให้การเขียนโปรแกรมของท่านผู้อ่านง่ายและสะดวกสบายขึ้นและสิ่งที่ผมจะแนะนำในวันนี้ก็คือ PyDev ซึ่งเป็น IDE ของ Eclipse นั่นเอง
ขั้นตอนที่ 1 ให้เราเปิดโปรแกรม Eclipse ขึ้นมาครับ แต่ถ้าใครยังไม่มีก็ไปดาวน์โหลดมาลงได้ที่ Eclipse

Python (ตอน 7) : คลาสและเมธอด อย่างง่าย

[ย้ายบทความจาก Gushared.com]
    สวัสดีครับชาวคณะ ในที่สุดเราก็เดินทางมาถึงตอนที่ 7 จนได้ สำหรับบทความ Python คราวนี้เรามาลองเขียนคลาส(class) กับเมธอด(method) โดยตัวอย่างแรกผมจะลองเขียนคลาสกับเมธอดและการเรียกใช้เมธอด ถ้าพร้อมแล้วไปลุยกันเล๊ยยยย !
class class1:
   #Create method
 def multiple(a,b):
  return a*b

 def printTxt():
  return "Python by Gushared.com"
 
 #Call method
 result = multiple(3,5)
 print("Multiple 3*5 :", result)
 print(printTxt())

Python (ตอน 6) : อาร์เรย์ (Array)

[ย้ายบทความจาก Gushared.com]
    มาตามสัญญาครับสำหรับ Python ตอน 6 แหม่ ! มาเป็นละครเลยนะครับ ครั้งนี้เราจะมาดูเนื้อหาการเขียนอาร์เรย์(Array)สำหรับไพทอนกันนะครับ ซึ่งการเขียนจะไม่ยุ่งยากแต่อาจจะแปลกตากว่าภาษาอื่นไปนิด ก็อย่างที่ว่านะครับเขียนๆไปเถอะเดี๋ยวไพทอนมันก็รู้เองแหละว่าเขียนอะไร ^_^

13 October 2013

Python (ตอน 5) : คำสั่งควบคุม

[ย้ายบทความจาก Gushared.com]
    สวัสดียามค่ำกับ Python ครับ หลายๆคนอาจจะพอได้ยินข่าวเรื่องการโจมตีแพลตฟอร์มจาวากันมาบ้างแล้ว ไม่ว่าจะเป็นเฟสบุ๊ค, ทวิตเตอร์, แอปเปิ้ล ไม่เว้นแม้กระทั่งไมโครซอฟท์ก็โดนไปตามๆกัน เวลานี้จึงเป็นช่วงเวลาที่ภาษาอื่นๆจะได้โผล่ขึ้นมาอวดโลกจริงๆจังๆ อย่างเช่น Python ที่ผมเขียนมา 3-4 บทความนี่เอง     สำหรับบทความนี้ผมก็จะมาแสดงตัวอย่างเกี่ยวกับคำสั่งควบคุมต่างๆของ Python ครับ

Python (ตอน 4) : รับข้อมูลทางคีย์บอร์ด

[ย้ายบทความจาก Gushared.com]
    บทเรียน Python ครั้งนี้มาซะดึกเลยนะครับ แต่หลายๆคนก็อาจจะยังไม่ได้นอนหรือถ้าใครนอนแล้วตื่นเช้ามาก็คงจะได้อ่านแหละครับ ครั้งนี้ผมจะมาแบ่งปันความรู้เรื่องการรับข้อมูลผ่านทางคีย์บอร์ดของภาษาไพทอน ซึ่งก็ยังเป็นอะไรที่ยังเบาๆสมองอยู่แต่มีหลายครั้งที่เราจำเป็นต้องใช้ในการเขียนโปรแกรม โดยการรับค่าจากคีย์บอร์ดนั้นไม่ได้ยากอะไรเลย ดูตามโค๊ดด้านล่างนี้ก็น่าจะเข้าใจครับ