LevelUp! Studio » programming https://blog.levelup.in.th Experience the new world. Fri, 26 May 2017 10:06:07 +0000 th hourly 1 http://wordpress.org/?v=3.8.1 Foreach() ใน javascript https://blog.levelup.in.th/2010/06/30/javascripts-foreach-foreach-%e0%b9%83%e0%b8%99-javascript/ https://blog.levelup.in.th/2010/06/30/javascripts-foreach-foreach-%e0%b9%83%e0%b8%99-javascript/#comments Wed, 30 Jun 2010 12:55:04 +0000 http://blog.levelup.in.th/?p=652 คำสั่ง foreach เป็นคำสั่งทีใช้ในการรันคำสั่งภายใน array หรือ object ที่ใช้ใน php อยู่บ่อยครั้งนะครับ แต่ใน javascript จะมีคำสั่งที่ใหล้เคียงกันอยู่ครับ คือ for( … in … ) แต่คำสั่งนี้วิธีใช้ยังไม่เหมือนกัน หรือผลออกมาไม่เหมือนของ php ซะทีเดียว บล็อกนี้ก็จะมาบอกวิธีใช้นะครับ

for( var y in x)

y คือ ค่า key ใน array/object

x คือ ตัวแปร object หรือ array ที่ต้องการมารันในคำสั่งนี้นะครับ

ในการ y จะเปลี่ยนเป็นค่า key ต่่างๆตามลำดับในตัวแปร x นะครับ ตรงนี้จะไม่เหมือนกับ foreach ครับ คำสั่งจะไม่มี value ให้ แต่สามารถหาค่าได้จาก x[y] ครับ

for( var y in x )
{
   var value = x[y];
   ...
}

แต่คำสั่งนี้ยังมีปัญาอยู่อย่างนึงครับ คือ คำสั่งจะรัน property ทั้งหมดภายในตัวแปร ไม่ว่า property นั้นจะเป็นคำสั่งหรือตัวแปร

ทีนี้เลยมีวิธีป้องกันคือ ต้องตรวจสอบ ประเภทของ property แล้วให้ข้าม property นั้นไปครับ

ตัวอย่างโค้ด :

for( var y in x )
{
   if( typeof x[y] == "function" )
      continue ;
   ...
}
]]>
https://blog.levelup.in.th/2010/06/30/javascripts-foreach-foreach-%e0%b9%83%e0%b8%99-javascript/feed/ 1
การตัด string utf-8 ภาษาไทย https://blog.levelup.in.th/2010/05/28/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%b1%e0%b8%94-string-utf-8-%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b9%84%e0%b8%97%e0%b8%a2/ https://blog.levelup.in.th/2010/05/28/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%b1%e0%b8%94-string-utf-8-%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b9%84%e0%b8%97%e0%b8%a2/#comments Fri, 28 May 2010 06:49:49 +0000 http://blog.levelup.in.th/?p=621 ขออธิบายปัญหาก่อนนะครับ คือ string utf-8 ภาษาไทยเนี่ย ถ้าเอามา strlen แล้วตัวอักษรตัวนึงจะมีความยาวประมาณ 3 ตัวอักษรภาษาอังกฤษครับ ทีนี้การจะตัดตัวอักษรมาบายส่วนจะทำได้ยาก เพราะ เราไม่รู้ว่ามันเริ่มที่ตัวอักษรที่เท่าไหร่ และมีขนาดเท่าไหร่ หลังจากตบตีกับปัญหานี้มาหลายครั้ง จนเมื่อไม่นานมานี้เพิ่งพบวิธีแก้

ซึ่งแต่เดิม ผมจะใช้วิธี(ของเพื่อน)แบ่งตัวอักษรออกมาเป็นตัวๆก่อนครับ โค้ดที่ใช้แยก คือ

   function utf8_2arr( $str )
   {
      $ret = array();
      $i = 0;
      $len = strlen ($str);
      while ($i < $len)
      {
         $j = 0;
         $chr = ord ($str[$i]);
         $j++;
         if ($i + $j >= $len)
         {
            $ret[] = substr( $str, $i, $j );
            break;
         }
         if ($chr & 0x80)
         {
            $chr <<= 1;
            while ($chr & 0x80)
            {
               $j++;
               $chr <<= 1;
            }
         }
         $ret[] = substr( $str, $i, $j );
         $i += $j;
      }
      return $ret;
   }

ฟังชั่นนี้จะแบบ string ออกเป็น array ไว้ครับจะใช้ตัวอักษรลำดับที่เท่าไหร่ถึงเท่าไหร่ก็เลือกได้ครับ

แต่อย่างที่บอกไปแล้วครับ ว่าเพิ่งจะไปพบวิธีแก้ใหม่มา คือที่จริงแล้ว php เองมี function ให้ใช้อยู่แล้วตั้งแต่ php 4.0.6!!! อาว แล้วผมไปอยู่รูไหนมาเนี่ย ไม่รู้ว่ามี function ให้ใช้อยู่แล้ว ว่าแล้วก็เลยมาเขียนบล็อกระบาย + โชว์โง่ตัวเอง T-T ก็ขอจบบล็อกนี้เพียงเท่านี้ครับ อะ ลืมบอกฟังก์ชัน

string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

]]>
https://blog.levelup.in.th/2010/05/28/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%95%e0%b8%b1%e0%b8%94-string-utf-8-%e0%b8%a0%e0%b8%b2%e0%b8%a9%e0%b8%b2%e0%b9%84%e0%b8%97%e0%b8%a2/feed/ 1
ทำยังไงให้เล่นเสียงได้ใน FLEX https://blog.levelup.in.th/2009/12/31/how-to-play-sound-on-flex%e0%b8%97%e0%b8%b3%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%87%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%80%e0%b8%a5%e0%b9%88%e0%b8%99%e0%b9%80%e0%b8%aa%e0%b8%b5%e0%b8%a2%e0%b8%87/ https://blog.levelup.in.th/2009/12/31/how-to-play-sound-on-flex%e0%b8%97%e0%b8%b3%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%87%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%80%e0%b8%a5%e0%b9%88%e0%b8%99%e0%b9%80%e0%b8%aa%e0%b8%b5%e0%b8%a2%e0%b8%87/#comments Thu, 31 Dec 2009 12:19:10 +0000 http://blog.levelup.in.th/?p=364 เริ่มเขียนบล็อกแบบไม่ค่อยมีความรู้ใหม่ๆละนะ การให้ FLEX เล่นเสียงเพลงที่เราต้องการมีหลายวิธีด้วยกัน แต่ที่ผมรู้ตอนนี้มีอยู่ 3 วิธี คือ

1. ฝังลงไปใน Movie Clip เลย โดยแก้ไขงานจากฝั่ง Flash โดยการเอา เสียงที่ต้องการให้เล่นใน Time line ของ Movie Clip นั้นๆ วิธีนี้เป็นวิธีที่ง่ายที่สุดแล้วมั้ง แต่ไม่ค่อยไดนามิกเท่าไหร่

2. โหลดไฟล์เพลงผ่าน url ให้ FLEX โหลดเพลงมาจาก url ที่ระบุเอาไว้

ตัวอย่างโค้ด

var sound:Sound = new Sound( new URLRequest("www.example.com/click.mp3") );
sound.play();

3. ฝังไฟล์เสียงลงตัวแปร Classแล้วเรียกใช้ผ่าน Class นั้น

ตัวอย่างโค้ด

[Embed(source="C:/sound/click.mp3")]
var soundClick:Class;
var sound:Sound = new soundClick();
sound.play();
]]>
https://blog.levelup.in.th/2009/12/31/how-to-play-sound-on-flex%e0%b8%97%e0%b8%b3%e0%b8%a2%e0%b8%b1%e0%b8%87%e0%b9%84%e0%b8%87%e0%b9%83%e0%b8%ab%e0%b9%89%e0%b9%80%e0%b8%a5%e0%b9%88%e0%b8%99%e0%b9%80%e0%b8%aa%e0%b8%b5%e0%b8%a2%e0%b8%87/feed/ 0
ว่าด้วยเรื่องล็อกธนาคาร https://blog.levelup.in.th/2009/07/31/about-bank-log%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a5%e0%b9%87%e0%b8%ad%e0%b8%81%e0%b8%98%e0%b8%99%e0%b8%b2/ https://blog.levelup.in.th/2009/07/31/about-bank-log%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a5%e0%b9%87%e0%b8%ad%e0%b8%81%e0%b8%98%e0%b8%99%e0%b8%b2/#comments Fri, 31 Jul 2009 07:20:57 +0000 http://blog.levelup.in.th/?p=97  

Bank Transaction log คืออะไร !!!

Transaction log คือ บันทึกการเปลี่ยนแปลงบัญชีธนาคาร ไม่ว่าจะเป็นการโอนเข้า หรือถอนออก (เหมือนในสมุดเงินฝากนั้นแหละ) แต่บันทึกเหล่านี้ มันจะอยู่ในรูปแบบดิจิตอลตรับ ฟังดูดีมีชาติตระกูลกว่าสมุดธนาคารเยอะ 55+ โดยในตอนนี้แทบทุกธนาคารได้ให้บริการในการจัดการบัญชีธนาคารผ่านอินเตอร์เน็ตแล้ว เราสามารถเข้าไปดาวน์โหลดเหล่านี้ได้จากเวปไซต์ของธนาคารที่ให้บริการครับ

น่าใช้ตรงไหน

“แล้วเราจะเอาล็อกนี้มาทำอะไรหล่ะเนี่ย เปิดสมุดธนาคารไม่ง่ายหว่าเหรอฟะ” ที่กล่าวมา จะถูกต้องครับถ้า สมุดเงินฝากของเรา ไม่ต้องทำบัญชี หรือมีการเปลี่ยนแปลงรายวันน้อย แต่ถ้าเราเป็นบริษัทค้าขายที่มีการเปลี่ยนแปลงบัญชีตลอดเวลาแล้ว ไม่ง่ายเลยที่จะต้องเอาสมุดธนาคารไปอัพเดททุกวัน แล้วกับมากรอกข้อมูลทีละสองสามร้อยเสตตเมนต์ แต่ถ้าเราลองหันมาให้ programmer ของเราเขียนโปรแกรมอ่านล็อกแล้วเก็บข้อมูลเข้าดาตาเบสส่วนตัวเองสิ ชีวิตของฝ่ายบัญชีจะสดใสขึ้นกว่าเดิมมากครับ

งั้นจะมีปัญหาอะไรมั้ย

ปัญหาสำคัญที่โปรแกรมจะได้เจอเลย อันดับแรกคือ ฟอร์แมทของล็อกครับ ซึ่งล็อกของธนาคารแต่ละธนาคารมีรูปแบบเป็นของตัวเอง ไม่ว่าจะเป็น plain-text,csv,excel และ HTML ยิ่งแล้วใหญ่ที่บางธนาคารมีฟอร์แมทของล็อกรายวัน กับฟอร์แมทของล็อกตามช่วงเวลา เป็นคนละฟอร์แมทกัน โอ้แม่เจ้า !! if เต็มโปรแกรม ยิ่งมีธนาคารหนึ่ง มีฟอร์แมทเป็น HTML ภายใต้แทก table ตอนนั้นเห็นล็อกถึงกับอุทานในใจว่า เฮ้ย มันเรียกว่าล็อกจริงหรอวะ ไปกอปี้จากหน้าเวปมาเลยยังดีกว่า เฮ้อ… เอาพื้นที่บล็อกมาระบายอารมย์ซัก ย่อหน้าคงไม่มีใครว่ามั้ง = =

และปัญหานี้ ผมแก้ยังไง ยังดีที่ล็อดส่วนใหญ่ แบ่งบรรทัดด้วย \n และภายในบรรทัดเป็นแบ่งด้วยตัวแบ่งที่แน่นอน บางล็อกอาจมี header 2-4 บรรทัดก็ข้ามไปครับ ส่วนแบบ HTML นั้นใส่ if ไว้ใน loop ซัก 3-5 ตัวก็คงเอาอยู่หล่ะครับ 55+

ปัญหาต่อไป ก็คงเป็นการรับประกันว่า ข้อมูลจะไม่ซ้ำซ้อนอะครับ ปัญหานี้อาจจะแก้ง่ายๆ ที่จะทำบัญชีทุกๆเที่ยงคืน แปลว่าเราจะเอาล็อกของเมื่อวานที่จะไม่มีการเปลี่ยนแปลงอีกแล้ว มาเก็บเข้าดาตาเบสของเราครับ แต่ถ้าบริษัทที่เราทำโปรแกรมให้มีการบัญชีที่ไม่ใช่ตอนเที่ยงคืน (แบบที่ผมไปทำมา) ตัวที่สามารถเอามาตรวจสอบได้ก็คงเป็นวันที่ และเวลาครับ แต่มีแค่ไม่กี่ธนาคารหรอกครับ ที่มี”เวลา” ให้ในล็อก ก็ต้องใช้ข้อมูล”อื่นๆ” อาทิ เช่น รหัส (Transaction code) บลาๆ แต่สุดท้าย ถ้าไม่มี “เวลา” ในล็อก ก็ไม่มีข้อมูลไหนที่รับประกันได้ว่าจะไม่ซ้ำครับ ก็ต้องให้ฝ่ายบัญชีไปเลือกเอาว่า สเตตเมนต์ไหนซ้ำบ้าง

 

]]>
https://blog.levelup.in.th/2009/07/31/about-bank-log%e0%b8%a7%e0%b9%88%e0%b8%b2%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2%e0%b9%80%e0%b8%a3%e0%b8%b7%e0%b9%88%e0%b8%ad%e0%b8%87%e0%b8%a5%e0%b9%87%e0%b8%ad%e0%b8%81%e0%b8%98%e0%b8%99%e0%b8%b2/feed/ 0
PHP : Get Full URL path https://blog.levelup.in.th/2009/03/30/php-get-full-url-path/ https://blog.levelup.in.th/2009/03/30/php-get-full-url-path/#comments Sun, 29 Mar 2009 19:15:05 +0000 http://levelup.in.th/?p=6 Code สำหรับ Get URl ปัจจุบันในขณะนั้น


function full_url()
{
$s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
$protocol = substr(strtolower($_SERVER["SERVER_PROTOCOL"]), 0, strpos(strtolower($_SERVER["SERVER_PROTOCOL"]), "/")) . $s;
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
return $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $_SERVER['REQUEST_URI'];
}

]]>
https://blog.levelup.in.th/2009/03/30/php-get-full-url-path/feed/ 0