ต้องการเขียนโปรแกรม convert ข้อมูลออกเป็น csv ครับ

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

supakwong
PHP Jr. Member
PHP Jr. Member
Posts: 25
Joined: 18/07/2008 11:01 pm
Contact:

ต้องการเขียนโปรแกรม convert ข้อมูลออกเป็น csv ครับ

Post by supakwong » 18/07/2008 11:22 pm

ผมต้องการเขียนข้อมูลส่งออกเป็น CSV ไฟล์ครับ โดยข้อมูลที่ผมนำเข้ามาเป็นไฟล์รูปแบบ log ไฟล์

ซึ่งจะมีการเว้น space ระหว่าง field ไม่เท่ากัน โดยเขาจะเว้นเป็น tab ครับ ผมก็เลยงงๆ ว่าจะเขียนโปรแกรมให้มันแยกระหว่าง field ยังไง ตัวนี้เป็น log ไฟล์ที่ผมกำลังจะลองตั้งสถานีวิทยุชุมชนน่ะครับ เผื่อไว้เก็บสถิติ
Attachments
playlist.zip
รูปแบบไฟลืที่ผมมีครับ ผมฃองเขียนโดยให้มันแยกจาก space มันก็งงๆ ครับ เลยไม่ค่อยแน่ใจเท่าไร
(658 Bytes) Downloaded 139 times

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22180
Joined: 22/09/2008 6:18 pm
Contact:

Re: ต้องการเขียนโปรแกรม convert ข้อมูลออกเป็น csv ครับ

Post by mindphp » 19/07/2008 6:27 am

ลองอ่านไฟล์ ออกมาเป็น บรรทัดก่อน แล้วใช้
explode("\t",$linedata);
น่าจะพอช่วยได้ ลองดูนะครับ

ถ้าได้แล้วแนะนำคนอื่นบ้างนะครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

supakwong
PHP Jr. Member
PHP Jr. Member
Posts: 25
Joined: 18/07/2008 11:01 pm
Contact:

Re: ต้องการเขียนโปรแกรม convert ข้อมูลออกเป็น csv ครับ

Post by supakwong » 21/07/2008 10:02 pm

ตกลงทำเสร็จเรียบร้อยแล้วครับ ลืมไปว่าใช้ ord() หาค่าได้ เพียงแต่ไม่รู้ว่า tab มันรหัสอะไร พอใช้ ord() โชว์ค่า char แต่ละตัวเลยพอเข้าใจครับ ก็ได้ตามนี้ครับ สั้นๆ ง่ายๆ ได้ใจความ ลืมหมดเลย ไม่ได้เขียนโปรแกรมมา 2 ปี ขอมาขูดสนิมก่อน ขอบคุณๆ mindphp นะครับ

Code: Select all

function ConvertLog2CSV($fname,$ftype)   // function convert text file to csv format
{
   $fr = fopen($fname.".".$ftype, "r");  // fr = file read (source)
   $fw = fopen($fname.".csv","w");  // fw = file write (target)
   $strrow = null;  // strrow = string row ผลลัพธ์ที่เก็บในรูปแบบบรรทัด
   while (false !== ($char = fgetc($fr))) {
      if (ord($char)==13)  // 13 = "enter" character
         {
         $strrow=$strrow."\n";   // replace enter with enter and line feed character
         fwrite($fw,$strrow);  // write row
         $strrow=null; // reset $strrow = reset row string
         }
      else if (ord($char)==9)  // 9 = tab
         {
         $strrow=$strrow.",";  // replace tab with "," separate column
         }
      else {
         $strrow=$strrow.$char;
         };
   };
   fclose($fw);
   fclose($fr);
};

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: Bing [Bot] and 45 guests