วันพุธที่ 17 กันยายน พ.ศ. 2557

07:01
9.3 การประมวลผลแฟ้มข้อมูลในภาษา  C  (data  file processing  in  C)
            โดยปกติแล้วผู้เขียนโปรแกรมเกี่ยวกับแฟ้มข้อมูลในภาษา  C  จะมีความต้องประมวลผลแฟ้มข้อมูลอยู่  3  แบบ  คือ 

1) การบันทึกข้อมูลในแฟ้มข้อมูล  (write  data  into  file)
2) การอ่านข้อมูลขึ้นจากแฟ้มข้อมูลขึ้นมาใช้งาน  (read  data  from  file)
3) การเพิ่มข้อมูลลงไปในแฟ้มข้อมูล  (append  data  into  file)

9.3.1  การบันทึกข้อมูลเก็บไว้ในแฟ้มข้อมูล  (write data  into  file)  
มีขั้นตอนดังนี้ 
            1. เปิดแฟ้มข้อมูลด้วยคำสั่ง  fopen( )  ตั้งชื่อแฟ้มข้อมูล  (file  name) พร้อมกับระบุ  mode  ของการบันทึกข้อมูลลงในแฟ้มเป็น  “w”
            2. บันทึกข้อมูลลงในแฟ้มโดยใช้ฟังก์ชัน  putc( )  หรือ  fprintf( )  หรือ  fwrite( )  บันทึกข้อมูลลงแฟ้ม  ขึ้นอยู่กับลักษณะของข้อมูลที่ต้องการบันทึกลงแฟ้มดังนี้
  • ถ้าข้อมูลที่ต้องการบันทึกเป็นตัวอักขระตัวเดียว  (single  character)  ให้ฟังก์ชัน  putc( )  เพราะสามารถบันทึกตัวอักขระตัวเดียวได้ดี
  • ถ้าข้อมูลที่ต้องการบันทึกเป็นตัวเลขจำนวนเต็ม  (integer)  หรือตัวเลขจำนวนทศนิยม  (floationg  point)  หรือสตริง  (strings)  ให้ใช้ฟังก์ชัน  fprintf( )  เพราะสามารถจัดรูปแบบข้อมูลที่บันทึกได้
  • ถ้าข้อมูลที่ต้องการบันทึกเป็นข้อมูลแบบโครงสร้าง  (structures)  หรือตัวแปรชุด  (arrays)  ให้ใช้ฟังก์ชัน  fwrite( )  เพราะสามารถกำหนดเนื้อที่และจำนวนครั้งของการบันทึกข้อมูลได้
            3. หลังจากบันทึกข้อมูลลงแฟ้มเรียบร้อยแล้ว  จะต้องใช้คำสั่ง  fclose( )  ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันความเสียหายที่อาจเกิดขึ้นได้
ข้อมูลควรระวังเกี่ยวกับการบันทึกข้อมูลลงแฟ้ม
                                                                                                                        ในฟังก์ชัน  fopen( )  เมื่อใช้  mode  “w”  เป็นการเปิดแฟ้มข้อมูลเพื่อบันทึกข้อมูลลงในแฟ้มเท่านั้น  ถ้าเป็นแฟ้มข้อมูลเก่าที่เคยเก็บข้อมูลไว้แล้ว  จะมีผลทำให้ข้อมูลทั้งหมดในแฟ้มข้อมูลเก่า  ถูกลบทิ้งไปโดยอัตโนมัติ  แล้วสร้างแฟ้มข้อมูลใหม่ขึ้นมาแทนที่ 
9.3.2  การอ่านข้อมูลขึ้นจากแฟ้มข้อมูล  (read  data  from  file) 
มีขั้นตอนดังนี้
            1. เปิดแฟ้มข้อมูลด้วยคำสั่ง  fopen( )  ตั้งชื่อแฟ้มข้อมูล  พร้อมกับระบุ  mode  ของการบันทึกข้อมูลลงแฟ้มเป็น  “r”
            2. อ่านข้อมูลขึ้นจากแฟ้มโดยสามารถใช้ฟังก์ชัน  getc( )  หรือ  fscanf( )  หรือ  fread( )  อ่านข้อมูลขึ้นจากแฟ้มได้  ขึ้นอยู่กับลักษณะของข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มดังนี้
  • ถ้าข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มเป็นตัวอักขระตัวเดียวให้ใช้ฟังก์ชัน     getc( )  เพราะสามารถอ่านข้อมูลตัวอักขระตัวเดียวได้ดี
  • ถ้าข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มเป็นตัวเลขจำนวนเต็ม  หรือตัวเลขจำนวนทศนิยม  หรือสตริงให้ใช้ฟังก์ชัน  fscanf( )  เพราะสามารถจัดรูปแบบข้อมูลที่อ่านขึ้นจากแฟ้มได้
  • ถ้าข้อมูลที่ต้องการอ่านจากแฟ้ม  เป็นข้อมูลแบบโครงสร้าง  หรือตัวแปรชุดให้ใช้ฟังก์ชัน  fread( )  เพราะสามารถกำหนดขนาดเนื้อที่และจำนวนครั้งของการอ่านข้อมูลขึ้นจากแฟ้มได้
            3. นำข้อมูลที่อ่านขึ้นจากแฟ้มไปประมวลผล  เช่น  พิมพ์ค่าออกทางจอภาพ  หรือนำไปคำนวณก็ได้
            4. หลังจากประมวลผลข้อมูลที่ได้จากแฟ้มเสร็จเรียบร้อยแล้ว  จะต้องใช้คำสั่ง
fclose( )   ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันการเสียหายที่อาจเกิดขึ้นได้
ข้อควรระวังเกี่ยวกับการอ่านข้อมูลขึ้นจากแฟ้ม
            ในฟังก์ชัน  fopen( )  เมื่อใช้  mode  “r”  เป็นการเปิดแฟ้มข้อมูล  เพื่ออ่านข้อมูลขึ้นจากแฟ้มข้อมูลอย่างเดียว  ไม่สามารถบันทึกข้อมูลเพิ่มเติมลงไปในแฟ้มได้
9.3.3 การเพิ่มข้อมูลลงไปในแฟ้มข้อมูล  (append  data  into  file)
มีขั้นตอนดังนี้ 
            1. เปิดแฟ้มข้อมูล  ด้วยคำสั่ง  fopen( )  ตั้งชื่อแฟ้มข้อมูลพร้อมกับระบุ  mode  ของการอ่านข้อมูลจากแฟ้มเป็น  “a”
            2. เขียนคำสั่งเกี่ยวกับการบันทึกข้อมูลเพิ่มลงแฟ้ม โดยสามารถใช้คำสั่ง fprintf( )  บันทึกข้อมูลลงแฟ้มหรือจะใช้คำสั่ง  fwrite( )  บันทึกข้อมูลลงแฟ้มก็ได้  ขึ้นอยู่กับความต้องการของผู้เขียนโปรแกรม
            3. หลังจากบันทึกข้อมูลลงแฟ้มเสร็จเรียบร้อยแล้ว  จะต้องใช้คำสั่ง  fclose( )  ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันความเสียหายที่อาจเกิดขึ้นได้
ข้อควรระวังเกี่ยวกับการเพิ่มข้อมูลลงแฟ้ม
           ในฟังก์ชัน  fopen( )  เมื่อใช้  mode  “a”  เป็นการเปิดแฟ้มข้อมูลสำหรับบันทึกข้อมูลเพิ่มเติมลงไปในแฟ้มได้ โดยที่ข้อมูลที่เพิ่มเข้าไปจะเป็นข้อมูลชุดสุดท้ายของแฟ้มเสมอ

0 ความคิดเห็น:

แสดงความคิดเห็น