For A Token ตอนนี้ หมดมุข !!!

Share

นี่คือ บทส่งท้าย ของ Series Listview ที่ดูจะไม่ค่อยสวยสักเท่าไหร่ เพราะอะไร คนคิด กับ คอมคิด มันทำได้ไม่ตรงกัน นั่นเอง
อันที่จริง มีทางออกที่ได้ทำเอาไว้แล้ว แต่ ก็สูญหายไปพร้อมกับเหตุการณ์ HDD เจ๊งทั้งลูก ครั้นพอนึกจะเขียนอีกที เทคโนโลยีก็เปลี่ยนไปมากแล้ว สรุปก็คือ ไม่สามารถแก้ไขได้ นั่นเอง ก็ปล่อยไว้อย่างนั้นแหละ เลยตามเลย
แต่ไม่ต้องตกใจ อย่างที่เคยกล่าวเอาไว้ Listview นั้น จริงๆ เป็นแค่ตัวแสดงผลข้อมูลที่เราส่งเข้าไปให้มัน แล้วก็สามารถส่งออกมาได้ เพียงเท่านั้น
ด้วยความก้าวหน้าของระบบเทคโนโลยีด้านฐานข้อมูล ทำให้เกิดระบบฐานข้อมูลแบบที่ไม่ต้องใช้ Client/Server ขึ้นมาจำนวนหนึ่ง ซึ่งหนึ่งในนั้น มีชื่อของ sqlite อยู่ด้วย คุ้นๆชื่อกันแล้วใช่ไหมล่ะครับ เพราะว่า เจ้าตัวนี้ ถูกนำไปใช้ในหลายๆงาน ที่ไม่มีความจำเป็นต้องเข้าถึงระบบ client/server แต่จำเป็นต้องมีที่เก็บฐานข้อมูลอยู่ภายในตัว ตัวอย่างที่เคยเห็นก็คือ สุดยอด browser ยอดนิยมตัวหนึ่ง ที่ฟรี และดี อย่าง firefox เจ้านี่ก็ใช้ sqlite ด้วยเช่นเดียวกัน หรือจะเป็นโปรแกรมพวกงานบัญชี สต๊อกขนาดเล็กๆ รุ่นหลังๆ ก็มักจะใช้ตัวนี้ เป็นที่เก็บข้อมูลของตัวโปรแกรมเช่นค่าคอนฟิก ค่าของข้อมูลต่างๆ เป็นต้น
ซึ่ง วิธีการใช้ ก็ไม่ยากเลย เพียงแค่คุณมีความรู้เรื่องการโปรแกรมกับฐานข้อมูลด้วยภาษา sql ร่วมกับคู่มือการใช้งาน sqlite อีกนิดหน่อย เพียงเท่านี้ คุณก็จะได้โปรแกรมที่สามารถ รับเข้า ส่งออก ข้อมูล ลบ เพิ่ม ระเบียน ได้อย่างสะดวกตามใจนึกเลยทีเดียวล่ะ
ฉะนั้น บทความด้านล่างนี่ ก็ให้ถือเป็นกรณีศึกษา ในยุคที่เทคโนโลยียังไม่ก้าวหน้าพอ ก็แล้วกันนะครับ

————————————————————

23/7/2551

หลังจากเขียน ListView Series จบลงแล้ว เพื่อให้แน่ใจว่า ที่เราเข้าใจน่ะ ไม่น่าจะพลาด ก็เลยทำการทดสอบซ้ำอีกครั้ง โดยอาศัยแนวทางจากเรื่องที่ตัวเองเขียนมานั่นแหละ แต่ผลปรากฎว่า….

ผลที่ได้จากการทดสอบ เป็นสิ่งที่ทำให้ประหลาดใจอย่างยิ่ง เพราะว่า ไม่ว่าจะรันกี่ครั้ง กี่หน ก็ตาม มันไม่ทำตาม algorithm ที่วางไว้เลย แม้แต่น้อย -*-‘  ทำไม ถึงเป็นอย่างนั้น

ข้อสันนิษฐาน

1.     Routine ที่ใช้ในการอ่าน Text File ทีละบรรทัด ยังไม่สมบูรณ์

ที่ว่า ไม่สมบูรณ์ เพราะว่า วิธีคิดของคน ใช้ได้แต่ การสั่งให้คอมทำงาน กลับไม่เป็นไปตามนั้น

นอกจากนี้ คาดว่า น่าจะยังมี Routine มาตรฐานของเซียนโปรแกรมเมอร์ท่านอื่นๆ ที่ยังหาไม่พบ หรือพบแล้ว แต่ไม่ทราบวิธีการใช้งาน ตอนนี้ ก็เลยเป็นปัญหาค้างใจอยู่ เลยไม่รู้จะทำอย่างไร

2.     เคยอ่าน Help พบว่า เราสามารถทำได้ด้วยการเรียกใช้ C Standard Library (STD) แต่ ไม่เคยเรียนรู้ว่า จะทำไง ให้มันใช้งานได้ร่วมกันกับ GUI Windows เลยงงๆ และอาจจะต้องมาเรียนรู้กันใหม่

แล้ว ผมจะทำอย่างไร

ทางแก้

1.     ใช้การป้อนข้อมูล แบบ binary file with struct ไปก่อน เพราะวิธีนี้ ไม่มีผลกับระบบการทำ ListView Operation  ที่สำคัญ สามารถโหลดข้อมูลทั้งไฟล์ลงมาได้ในครั้งเดียว ตามวิธีการที่เคยบอกเล่าไว้แล้ว ใน ListView Series ตอนที่ 4

2.     สำหรับข้อมูลเก่าๆ คงต้องหาวิธี Port ออกมาเป็น CSV ให้หมดด้วย Routine Set ของ VB 6.0  เพราะตอนนี้ ยังคงประสบปัญหาเดิม นั่นคือ Convert String VB มาที่ C++ ไม่ได้ แน่นอนว่า ของที่เคยอยู่ใน Stock VB ก็ต้องลากออกมาด้วย แล้ว ค่อยเอาไปว่ากันใหม่ ที่อื่น ด้วย C/C++ แต่ก็ไม่แน่ใจนัก ว่า จะเปลี่ยนแนวออกไปเป็น PHP Web App เลยจะดีกว่าไหม เพราะถนัดแบบนี้ มากกว่า

สรุปว่า มีความน่าจะเป็น ที่จะต้อง Port เอาข้อมูลของเก่าๆ ออกมาให้เป็น CSV ก่อน ให้หมดเลย ไม่เช่นนั้น เราอาจจะเปิดข้อมูลด้วย Program เก่าๆ ไม่ได้อีกเลย ก็เป็นได้

-*-‘ Bill นะ Bill ดูดู๊ดู ดูมันทำ ทำไมมันทำกับฉันได้ 555 +_+ !!!

เพิ่มเติม 24/5/2560 สำหรับทางแก้ที่เป็นมาตรฐาน ณ ปัจจุบัน ขณะนี้ นั่นก็คือ การเปลี่ยนไปใช้ระบบฐานข้อมูลแบบเดี่ยว StandAlone ที่ใช้หลักวิธีการโปรแกรม เช่นเดียวกับ ระบบฐานข้อมูลแบบ Client/Server คือ ใช้ภาษา Sql อย่างเช่นพวก sqlite เป็นต้น เพราะวิธีนี้ จะได้มาตรฐานการจัดเก็บฐานข้อมูลมาด้วย ซึ่งเป็นระเบียบแบบแผนเดียวกัน นอกจากนี้ ยังรับกับ การ port ข้อมูลเก่า ด้วยไฟล์ csv อีกด้วยครับ

For A Token ตอนนี้ หมดมุข !!!

Tagged on:         

Leave a Reply

Your email address will not be published. Required fields are marked *