โดยปกติแล้วผู้เขียนโปรแกรมเกี่ยวกับแฟ้มข้อมูลในภาษา 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( ) อ่านข้อมูลขึ้นจากแฟ้มได้ ขึ้นอยู่กับลักษณะของข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มดังนี้
2. อ่านข้อมูลขึ้นจากแฟ้มโดยสามารถใช้ฟังก์ชัน getc( ) หรือ fscanf( ) หรือ fread( ) อ่านข้อมูลขึ้นจากแฟ้มได้ ขึ้นอยู่กับลักษณะของข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มดังนี้
- ถ้าข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มเป็นตัวอักขระตัวเดียวให้ใช้ฟังก์ชัน getc( ) เพราะสามารถอ่านข้อมูลตัวอักขระตัวเดียวได้ดี
- ถ้าข้อมูลที่ต้องการอ่านขึ้นจากแฟ้มเป็นตัวเลขจำนวนเต็ม หรือตัวเลขจำนวนทศนิยม หรือสตริงให้ใช้ฟังก์ชัน fscanf( ) เพราะสามารถจัดรูปแบบข้อมูลที่อ่านขึ้นจากแฟ้มได้
- ถ้าข้อมูลที่ต้องการอ่านจากแฟ้ม เป็นข้อมูลแบบโครงสร้าง หรือตัวแปรชุดให้ใช้ฟังก์ชัน fread( ) เพราะสามารถกำหนดขนาดเนื้อที่และจำนวนครั้งของการอ่านข้อมูลขึ้นจากแฟ้มได้
3. นำข้อมูลที่อ่านขึ้นจากแฟ้มไปประมวลผล เช่น พิมพ์ค่าออกทางจอภาพ หรือนำไปคำนวณก็ได้
4. หลังจากประมวลผลข้อมูลที่ได้จากแฟ้มเสร็จเรียบร้อยแล้ว จะต้องใช้คำสั่ง
fclose( ) ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันการเสียหายที่อาจเกิดขึ้นได้
4. หลังจากประมวลผลข้อมูลที่ได้จากแฟ้มเสร็จเรียบร้อยแล้ว จะต้องใช้คำสั่ง
fclose( ) ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันการเสียหายที่อาจเกิดขึ้นได้
ข้อควรระวังเกี่ยวกับการอ่านข้อมูลขึ้นจากแฟ้ม
ในฟังก์ชัน fopen( ) เมื่อใช้ mode “r” เป็นการเปิดแฟ้มข้อมูล เพื่ออ่านข้อมูลขึ้นจากแฟ้มข้อมูลอย่างเดียว ไม่สามารถบันทึกข้อมูลเพิ่มเติมลงไปในแฟ้มได้
9.3.3 การเพิ่มข้อมูลลงไปในแฟ้มข้อมูล (append data into file)
มีขั้นตอนดังนี้
1. เปิดแฟ้มข้อมูล ด้วยคำสั่ง fopen( ) ตั้งชื่อแฟ้มข้อมูลพร้อมกับระบุ mode ของการอ่านข้อมูลจากแฟ้มเป็น “a”
2. เขียนคำสั่งเกี่ยวกับการบันทึกข้อมูลเพิ่มลงแฟ้ม โดยสามารถใช้คำสั่ง fprintf( ) บันทึกข้อมูลลงแฟ้มหรือจะใช้คำสั่ง fwrite( ) บันทึกข้อมูลลงแฟ้มก็ได้ ขึ้นอยู่กับความต้องการของผู้เขียนโปรแกรม
3. หลังจากบันทึกข้อมูลลงแฟ้มเสร็จเรียบร้อยแล้ว จะต้องใช้คำสั่ง fclose( ) ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันความเสียหายที่อาจเกิดขึ้นได้
มีขั้นตอนดังนี้
1. เปิดแฟ้มข้อมูล ด้วยคำสั่ง fopen( ) ตั้งชื่อแฟ้มข้อมูลพร้อมกับระบุ mode ของการอ่านข้อมูลจากแฟ้มเป็น “a”
2. เขียนคำสั่งเกี่ยวกับการบันทึกข้อมูลเพิ่มลงแฟ้ม โดยสามารถใช้คำสั่ง fprintf( ) บันทึกข้อมูลลงแฟ้มหรือจะใช้คำสั่ง fwrite( ) บันทึกข้อมูลลงแฟ้มก็ได้ ขึ้นอยู่กับความต้องการของผู้เขียนโปรแกรม
3. หลังจากบันทึกข้อมูลลงแฟ้มเสร็จเรียบร้อยแล้ว จะต้องใช้คำสั่ง fclose( ) ปิดแฟ้มข้อมูลทุกครั้งเพื่อป้องกันความเสียหายที่อาจเกิดขึ้นได้
ข้อควรระวังเกี่ยวกับการเพิ่มข้อมูลลงแฟ้ม
ในฟังก์ชัน fopen( ) เมื่อใช้ mode “a” เป็นการเปิดแฟ้มข้อมูลสำหรับบันทึกข้อมูลเพิ่มเติมลงไปในแฟ้มได้ โดยที่ข้อมูลที่เพิ่มเข้าไปจะเป็นข้อมูลชุดสุดท้ายของแฟ้มเสมอ
0 ความคิดเห็น:
แสดงความคิดเห็น