พื้นฐานการทำงานกับไฟล์
การอ่านและเขียนไฟล์
ฟังก์ชันในอ่านและเขียนไฟล์นั้น คือ ฟังก์ชัน fscanf และ fprintf ตามลำดับ fscanf เป็นฟังก์ชันในการอ่านข้อมูลจากไฟล์ ซึ่งการทำงานก็เหมือนกับฟังก์ชัน scan แต่จะต่างกันตรงที่ฟังก์ชัน fscanf จะต้องใช้ไฟล์พอยเตอร์เพื่อชี้ตำแหน่งที่จะอ่านจากไฟล์มีรูปแบบดังนี้
Fscanf ( [ชื่อไฟล์พอยเตอร์ ] , “[ รูปแบบข้อความ ]” , [ที่อยู่ของตัวแปร]);
ในการอ่านข้อมูลนั้น ผู้ใช้ต้องรู้อยู่แล้วว่าข้อมูลที่จะไปอ่าน เก็บอยู่ในลักษณะอย่างไรแล้วจึงเขียนรูปแบบข้อความตามนั้น เช่น
5-10-1936
ชุดคำสั่งการอ่านจะเป็นดังนี้
fscanf( fpData, “%d-%d-%d”, &month, &day, &year);
Fprintf เป็นฟังก์ชันในการเขียนข้อมูลลงไปในไฟล์ ซึ่งการทำงานก็เหมือนกับฟังก์ชัน printf แต่จะใช้ไฟล์พอยเตอร์เป็นตัวชี้ตำแหน่งของไฟล์ที่จะเขียนข้อมูลลงไป เช่น
fprintf (fpOurt , “%d\n%d\n%d”, i , j , k);
เมื่อคำสั่งนี้ทำงานค่าที่เก็บในไฟล์จะเป็นดังนี้
100
200
300
โปรแกรมตรวจสอบการเปิดและปิดไฟล์ที่ 12-1
ฟังก์ชันในอ่านและเขียนไฟล์นั้น คือ ฟังก์ชัน fscanf และ fprintf ตามลำดับ fscanf เป็นฟังก์ชันในการอ่านข้อมูลจากไฟล์ ซึ่งการทำงานก็เหมือนกับฟังก์ชัน scan แต่จะต่างกันตรงที่ฟังก์ชัน fscanf จะต้องใช้ไฟล์พอยเตอร์เพื่อชี้ตำแหน่งที่จะอ่านจากไฟล์มีรูปแบบดังนี้
Fscanf ( [ชื่อไฟล์พอยเตอร์ ] , “[ รูปแบบข้อความ ]” , [ที่อยู่ของตัวแปร]);
ในการอ่านข้อมูลนั้น ผู้ใช้ต้องรู้อยู่แล้วว่าข้อมูลที่จะไปอ่าน เก็บอยู่ในลักษณะอย่างไรแล้วจึงเขียนรูปแบบข้อความตามนั้น เช่น
5-10-1936
ชุดคำสั่งการอ่านจะเป็นดังนี้
fscanf( fpData, “%d-%d-%d”, &month, &day, &year);
Fprintf เป็นฟังก์ชันในการเขียนข้อมูลลงไปในไฟล์ ซึ่งการทำงานก็เหมือนกับฟังก์ชัน printf แต่จะใช้ไฟล์พอยเตอร์เป็นตัวชี้ตำแหน่งของไฟล์ที่จะเขียนข้อมูลลงไป เช่น
fprintf (fpOurt , “%d\n%d\n%d”, i , j , k);
เมื่อคำสั่งนี้ทำงานค่าที่เก็บในไฟล์จะเป็นดังนี้
100
200
300
โปรแกรมตรวจสอบการเปิดและปิดไฟล์ที่ 12-1
โปรแกรมการอ่านข้อมูล 12-2
โปรแกรมการคัดลอกข้อมูล 12-3
โปรแกรมเขียนข้อมูลลงไฟล์ 12-4
ฟังก์ชันการอ่านและเขียนข้อมูลที่เป็นตัวอักษร
Getc และ fgetc ทั้งสองฟังก์ชันนี้จะมีการทำงาน คือ จะอ่านตัวอักษรตัวต่อไปจากไฟล์ขึ้นมาเลย และถ้าอ่านไปจนจบไฟล์ ทั้งสองก็จะส่งค่ากลับเป็น EOF ซึ่งตัวอย่างในการใช้ได้แสดงหน้าถัดไป
nextChar = getc(fpMyFile);
nextChar = fgetc(fpMyFile);
putc และ fputtc ทั้งสองฟังก์ชันนี้จะมีการทำงาน คือ จะเขียนข้อมูลลงไปในไฟล์ที่ละ 1 ตัวอักษร ถ้าการเขียนข้อมูลสมบรูณ์จะส่งค่ากลับมาเป็นตัวอักษรที่ส่งไป แต่ถ้าไม่สมบรูณ์จะส่งค่ากลับเป็น EOF ซึ่งตัวอย่างการใช้ทั่งสองฟังก์ชัน
putc(oneChar , fpMyFile);
fputc (oneChar , fpMyFile);
โปรแกรมสร้าง Text File 12-5
Getc และ fgetc ทั้งสองฟังก์ชันนี้จะมีการทำงาน คือ จะอ่านตัวอักษรตัวต่อไปจากไฟล์ขึ้นมาเลย และถ้าอ่านไปจนจบไฟล์ ทั้งสองก็จะส่งค่ากลับเป็น EOF ซึ่งตัวอย่างในการใช้ได้แสดงหน้าถัดไป
nextChar = getc(fpMyFile);
nextChar = fgetc(fpMyFile);
putc และ fputtc ทั้งสองฟังก์ชันนี้จะมีการทำงาน คือ จะเขียนข้อมูลลงไปในไฟล์ที่ละ 1 ตัวอักษร ถ้าการเขียนข้อมูลสมบรูณ์จะส่งค่ากลับมาเป็นตัวอักษรที่ส่งไป แต่ถ้าไม่สมบรูณ์จะส่งค่ากลับเป็น EOF ซึ่งตัวอย่างการใช้ทั่งสองฟังก์ชัน
putc(oneChar , fpMyFile);
fputc (oneChar , fpMyFile);
โปรแกรมสร้าง Text File 12-5
Binary File เมื่อสังเกตดี ๆ จะมีเก็บข้อมูลเหมือนการเก็บข้อมูลเป็นเรคคอร์ด ซึ่งทำให้การอ่าน-เขียนนั้นกระทำได้ค่อนข้างที่จะง่ายกว่า Text File
การเปิดไฟล์และปิดไฟล์
ในการเปิดปิดไฟล์ Binary File นั้นจะเหมือนกับ Text File เลยแต่สิ่งที่ต่างกันจะอยู่ตรงที่โหมดในการเปิดไฟล์ ซึ่งโหมดในการเปิด Binary File rb
เปิดไฟล์ขึ้นมาเพื่ออ่าน
เปิดไฟล์ขึ้นมาเพื่อเขียน
เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ
การอ่านและเขียนไฟล์
ฟังก์ชันในการอ่านและเขียนไฟล์นั้น คือ ฟังก์ชัน fread และ fwrite ตามลำดับ
fread เป็นฟังก์ชันในการอ่านข้อมูลจากไฟล์ รูปแบบดังนี้
fread([ ชื่อตัวแปร] , [ขนาดของตัวแปร] , [ จำนวน ] , [ชื่อไฟล์พอยเตอร์]);
ในการอ่านข้อมูลจาก Binary File จะต้องกำหนดขนาดของข้อมูลและจำนวนที่อ่านขึ้นมาเพราะอย่างที่ได้กล่าวไปในข้างต้นแล้ว Binary File จะเก็บข้อมูลในลักษณะรูปแบบทางคอมพิวเตอร์เพราะฉะนั้นผู้ใช้จะต้องการอ่านข้อมูลที่ตัวเลขจำนวนเต็ม 1 ตัว ซึ่งตัวเลขจำนวนเต็มจะใช้พื้นที่ 2 ไบต์และขนาดที่กำหนดคือ 2 เพื่อให้การอ่านข้อมูลแล้วสามารถเก็บในตัวแปรได้ถูกต้อง
โปรแกรมการอ่านข้อมูลจากไฟล์ 12-6
การเปิดไฟล์และปิดไฟล์
ในการเปิดปิดไฟล์ Binary File นั้นจะเหมือนกับ Text File เลยแต่สิ่งที่ต่างกันจะอยู่ตรงที่โหมดในการเปิดไฟล์ ซึ่งโหมดในการเปิด Binary File rb
เปิดไฟล์ขึ้นมาเพื่ออ่าน
- ถ้าเปิดสำเร็จ ไฟล์พอยเตอร์จะชี้ไปที่ต้นไฟล์
- ถ้าเปิดไม่ได้ จะส่งค่ากลับเป็นค่า Error (NuII)
เปิดไฟล์ขึ้นมาเพื่อเขียน
- ถ้าเปิดสำเร็จ จะได้ไฟล์ว่าง ๆ
- ถ้าเปิดไม่ได้ จะสร้างไฟล์ที่ต้องการให้ใหม่
เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ
- ถ้าเปิดสำเร็จ ไฟล์พอยเตอร์จะชี้ไปที่ปลายไฟล์
- ถ้าเปิดไม่ได้ จะสร้างไฟล์ที่ต้องการให้ใหม่
การอ่านและเขียนไฟล์
ฟังก์ชันในการอ่านและเขียนไฟล์นั้น คือ ฟังก์ชัน fread และ fwrite ตามลำดับ
fread เป็นฟังก์ชันในการอ่านข้อมูลจากไฟล์ รูปแบบดังนี้
fread([ ชื่อตัวแปร] , [ขนาดของตัวแปร] , [ จำนวน ] , [ชื่อไฟล์พอยเตอร์]);
ในการอ่านข้อมูลจาก Binary File จะต้องกำหนดขนาดของข้อมูลและจำนวนที่อ่านขึ้นมาเพราะอย่างที่ได้กล่าวไปในข้างต้นแล้ว Binary File จะเก็บข้อมูลในลักษณะรูปแบบทางคอมพิวเตอร์เพราะฉะนั้นผู้ใช้จะต้องการอ่านข้อมูลที่ตัวเลขจำนวนเต็ม 1 ตัว ซึ่งตัวเลขจำนวนเต็มจะใช้พื้นที่ 2 ไบต์และขนาดที่กำหนดคือ 2 เพื่อให้การอ่านข้อมูลแล้วสามารถเก็บในตัวแปรได้ถูกต้อง
โปรแกรมการอ่านข้อมูลจากไฟล์ 12-6
โปรแกรมการอ่านข้อมูลแบบโครงสร้าง 12-7