ฟังก์ชั่นเกี่ยวกับการเท็กซ์ไฟล์
1.ฟังก์ชัน fprintf( )
เป็นฟังก์ชันที่ใช้บันทึกข้อมูล (write) ลงแฟ้มโดยสามารถจัดรูปแบบข้อมูลที่ต้องการบันทึกได้คล้ายกับฟังก์ชัน printf( ) แตกต่างกันตรงที่ printf( ) เป็นฟังก์ชันที่ใช้พิมพ์ผลลัพธ์ออกทางจอภาพแต่ฟังก์ชัน fprintf( ) ใช้บันทึกข้อมูล
2.ฟังก์ชัน fwrite( )
ฟังก์ชัน fwrite( ) เป็นฟังก์ชันที่ใช้เก็บข้อมูล ลงแฟ้มโดยที่การเก็บข้อมูลแต่ละครั้ง สามารถกำหนดขนาดของข้อมูลที่ต้องการบันทึกได้
Text File คือ ไฟล์ที่เก็บข้อมูลเป็นตัวอักษร
การประกาศตัวแปรใช้ชี้ไปยังไฟล์มีรูปแบบ ดังนี้
FILE *<ชื่อไฟล์พอยเตอร์>
เช่น
FILE *fpTempData; //ประกาศตัวแปรพอยเตอร์ชื่อว่า fpTempData ให้ชี้ไปยังไฟล์
การเปิดไฟล์ (สำหรับ Text File มี 3 โหมด ดังนี้)
r : เปิดเพื่ออ่าน
w : เปิดเพื่อเขียน
ถ้ามีไฟล์เดิมอยู่แล้ว จะถูกทับด้วยไฟล์ใหม่
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่ให้
a : เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ
ถ้ามีไฟล์เดิมอยู่แล้ว ก็จะไปชี้ที่ท้ายไฟล์เดิมเพื่อรอให้เขียนต่อเลย
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่มาให้
มีรูปแบบการเปิดไฟล์ ดังนี้
<ชื่อไฟล์พอยเตอร์> = fopen(<"[ตำแหน่งที่ตั้ง\]ชื่อไฟล์">,<"โหมดที่ต้องการเปิด">);
เช่น
fpTempData = fopen("c:\\test.dat","r");มีรูปแบบการปิดไฟล์ ดังนี้
fclose(<ชื่อไฟล์พอยเตอร์>) ;
เช่น
fclose(fpTempData) ;
การอ่านข้อมูลจากไฟล์ขึ้นมาใช้งาน มีรูปแบบ ดังนี้
fscanf(<ชื่อไฟล์พอยเตอร์>,"<รูปแบบข้อความ>",&<ชื่อตัวแปรที่ใช้รับค่า>,...); เช่น
fscanf(fpTempData,"%d-%d-%d",&m,&d,&y);
การเขียนข้อมูล / บันทึกข้อมูลลงสู่ไฟล์ มีรูปแบบ ดังนี้
fprintf(<ชื่อไฟล์พอยเตอร์>,"<รูปแบบข้อความ>",<ชื่อตัวแปรที่จะนำค่าลงไปเก็บ>,...) เช่น
fprintf(fpTempData,"%d-%d-%d",m,d,y) ฟังก์ชั่นที่ใช้ในการอ่าน หรือ เขียน ตัวอักษร
getc และ fgetc จะใช้อ่านตัวอักษรตัวต่อไปจากไฟล์ขึ้นมาใช้งาน เช่น
nextChar = getc(fpTempData); หรือ
nextChar = fgetc(fpTempData); การประกาศตัวแปรใช้ชี้ไปยังไฟล์มีรูปแบบ ดังนี้
FILE *<ชื่อไฟล์พอยเตอร์> เช่น
FILE *fpTempData; //ประกาศตัวแปรพอยเตอร์ชื่อว่า fpTempData ให้ชี้ไปยังไฟล์
การเปิดไฟล์ (สำหรับ Text File มี 3 โหมด ดังนี้)
rb : เปิดเพื่ออ่าน
wb : เปิดเพื่อเขียน
ถ้ามีไฟล์เดิมอยู่แล้ว จะถูกทับด้วยไฟล์ใหม่
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่ให้
ab : เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ
ถ้ามีไฟล์เดิมอยู่แล้ว ก็จะไปชี้ที่ท้ายไฟล์เดิมเพื่อรอให้เขียนต่อเลย
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่มาให้
มีรูปแบบการเปิดไฟล์ ดังนี้
<ชื่อไฟล์พอยเตอร์> = fopen(<"[ตำแหน่งที่ตั้ง\]ชื่อไฟล์">,<"โหมดที่ต้องการเปิด">); เช่น
fpTempData = fopen("c:\\test.dat","rb");มีรูปแบบการปิดไฟล์ ดังนี้
fclose(<ชื่อไฟล์พอยเตอร์>) ;
เช่น
fclose(fpTempData) ;
การอ่านข้อมูลจากไฟล์ขึ้นมาใช้งาน มีรูปแบบ ดังนี้
fread(<ชื่อตัวแปรที่ใช้รับค่า>,"<ขนาดของตัวแปร>,<จำนวน>,<ชื่อไฟล์พอยเตอร์>);
เช่น
fread(num,sizeof(int),1,fpTempData);
การเขียนข้อมูล / บันทึกข้อมูลลงสู่ไฟล์ มีรูปแบบ ดังนี้
fwrite(<ชื่อตัวแปรที่ใช้รับค่า>,"<ขนาดของตัวแปร>,<จำนวน>,<ชื่อไฟล์พอยเตอร์>);
เช่น
fwrite(num,sizeof(int),1,fpTempData);
ฟังก์ชั่นที่ใช้ในการจัดการไฟล์
feof(<ชื่อไฟล์พอยเตอร์>); ตรวจสอบจุดสิ้นสุดของไฟล์
เช่น
feof(fpTempData);
// สิ้นสุดไฟล์แล้วผลลัพธ์ที่ได้จะเป็น 0
// ถ้ายังไม่สิ้นสุดไฟล์ผลลัพธ์ที่ได้จะไม่เท่ากับ 0
ferror(<ชื่อไฟล์พอยเตอร์>); ตรวจสอบข้อผิดพลาดในขณะที่อ่านหรือเขียน
เช่น
ferror(fpTempData);
// ไม่มีข้อผิดพลาดผลลัพธ์ที่ได้จะเป็น 0
// ถ้ามีข้อผิดพลาดผลลัพธ์ที่ได้จะไม่เท่ากับ 0
rewind(<ชื่อไฟล์พอยเตอร์>); ย้ายตำแหน่งตัวแปรพอยเตอร์ให้ไปชี้ที่ต้นไฟล์
เช่น
rewind(fpTempData);
ftell(<ชื่อไฟล์พอยเตอร์>); ส่งค่ากลับมาเป็นที่อยู่ของตัวแปรไฟล์พอยเตอร์ปัจจุบันมาให้
เช่น
ftell(fpTempData); // จะส่งที่อยู่ของ fpTempData มาให้
remove(<ชื่อไฟล์>); ใช้สำหรับลบไฟล์ออกจากสื่อบันทึกข้อมูล
เช่น
remove("c:\\test.dat");
rename(<ชื่อไฟล์ต้นฉบับ>","<ชื่อไฟล์ใหม่>"); ใช้สำหรับเปลี่ยนชื่อไฟล์
เช่น
rename("c:\\test.dat","c:\\abc.txt");
// ก็จะทำการเปลี่ยนชื่อไฟล์ใน Drive c:\จากชื่อ Test.dat เป็น abc.txt
เป็นฟังก์ชันที่ใช้บันทึกข้อมูล (write) ลงแฟ้มโดยสามารถจัดรูปแบบข้อมูลที่ต้องการบันทึกได้คล้ายกับฟังก์ชัน printf( ) แตกต่างกันตรงที่ printf( ) เป็นฟังก์ชันที่ใช้พิมพ์ผลลัพธ์ออกทางจอภาพแต่ฟังก์ชัน fprintf( ) ใช้บันทึกข้อมูล
2.ฟังก์ชัน fwrite( )
ฟังก์ชัน fwrite( ) เป็นฟังก์ชันที่ใช้เก็บข้อมูล ลงแฟ้มโดยที่การเก็บข้อมูลแต่ละครั้ง สามารถกำหนดขนาดของข้อมูลที่ต้องการบันทึกได้
Text File คือ ไฟล์ที่เก็บข้อมูลเป็นตัวอักษร
การประกาศตัวแปรใช้ชี้ไปยังไฟล์มีรูปแบบ ดังนี้
FILE *<ชื่อไฟล์พอยเตอร์>
เช่น
FILE *fpTempData; //ประกาศตัวแปรพอยเตอร์ชื่อว่า fpTempData ให้ชี้ไปยังไฟล์
การเปิดไฟล์ (สำหรับ Text File มี 3 โหมด ดังนี้)
r : เปิดเพื่ออ่าน
w : เปิดเพื่อเขียน
ถ้ามีไฟล์เดิมอยู่แล้ว จะถูกทับด้วยไฟล์ใหม่
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่ให้
a : เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ
ถ้ามีไฟล์เดิมอยู่แล้ว ก็จะไปชี้ที่ท้ายไฟล์เดิมเพื่อรอให้เขียนต่อเลย
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่มาให้
มีรูปแบบการเปิดไฟล์ ดังนี้
<ชื่อไฟล์พอยเตอร์> = fopen(<"[ตำแหน่งที่ตั้ง\]ชื่อไฟล์">,<"โหมดที่ต้องการเปิด">);
เช่น
fpTempData = fopen("c:\\test.dat","r");มีรูปแบบการปิดไฟล์ ดังนี้
fclose(<ชื่อไฟล์พอยเตอร์>) ;
เช่น
fclose(fpTempData) ;
การอ่านข้อมูลจากไฟล์ขึ้นมาใช้งาน มีรูปแบบ ดังนี้
fscanf(<ชื่อไฟล์พอยเตอร์>,"<รูปแบบข้อความ>",&<ชื่อตัวแปรที่ใช้รับค่า>,...); เช่น
fscanf(fpTempData,"%d-%d-%d",&m,&d,&y);
การเขียนข้อมูล / บันทึกข้อมูลลงสู่ไฟล์ มีรูปแบบ ดังนี้
fprintf(<ชื่อไฟล์พอยเตอร์>,"<รูปแบบข้อความ>",<ชื่อตัวแปรที่จะนำค่าลงไปเก็บ>,...) เช่น
fprintf(fpTempData,"%d-%d-%d",m,d,y) ฟังก์ชั่นที่ใช้ในการอ่าน หรือ เขียน ตัวอักษร
getc และ fgetc จะใช้อ่านตัวอักษรตัวต่อไปจากไฟล์ขึ้นมาใช้งาน เช่น
nextChar = getc(fpTempData); หรือ
nextChar = fgetc(fpTempData); การประกาศตัวแปรใช้ชี้ไปยังไฟล์มีรูปแบบ ดังนี้
FILE *<ชื่อไฟล์พอยเตอร์> เช่น
FILE *fpTempData; //ประกาศตัวแปรพอยเตอร์ชื่อว่า fpTempData ให้ชี้ไปยังไฟล์
การเปิดไฟล์ (สำหรับ Text File มี 3 โหมด ดังนี้)
rb : เปิดเพื่ออ่าน
wb : เปิดเพื่อเขียน
ถ้ามีไฟล์เดิมอยู่แล้ว จะถูกทับด้วยไฟล์ใหม่
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่ให้
ab : เปิดไฟล์ขึ้นมาเพื่อเขียนต่อ
ถ้ามีไฟล์เดิมอยู่แล้ว ก็จะไปชี้ที่ท้ายไฟล์เดิมเพื่อรอให้เขียนต่อเลย
ถ้าไม่มีไฟล์เดิมอยู่ก็จะสร้างไฟล์ใหม่มาให้
มีรูปแบบการเปิดไฟล์ ดังนี้
<ชื่อไฟล์พอยเตอร์> = fopen(<"[ตำแหน่งที่ตั้ง\]ชื่อไฟล์">,<"โหมดที่ต้องการเปิด">); เช่น
fpTempData = fopen("c:\\test.dat","rb");มีรูปแบบการปิดไฟล์ ดังนี้
fclose(<ชื่อไฟล์พอยเตอร์>) ;
เช่น
fclose(fpTempData) ;
การอ่านข้อมูลจากไฟล์ขึ้นมาใช้งาน มีรูปแบบ ดังนี้
fread(<ชื่อตัวแปรที่ใช้รับค่า>,"<ขนาดของตัวแปร>,<จำนวน>,<ชื่อไฟล์พอยเตอร์>);
เช่น
fread(num,sizeof(int),1,fpTempData);
การเขียนข้อมูล / บันทึกข้อมูลลงสู่ไฟล์ มีรูปแบบ ดังนี้
fwrite(<ชื่อตัวแปรที่ใช้รับค่า>,"<ขนาดของตัวแปร>,<จำนวน>,<ชื่อไฟล์พอยเตอร์>);
เช่น
fwrite(num,sizeof(int),1,fpTempData);
ฟังก์ชั่นที่ใช้ในการจัดการไฟล์
feof(<ชื่อไฟล์พอยเตอร์>); ตรวจสอบจุดสิ้นสุดของไฟล์
เช่น
feof(fpTempData);
// สิ้นสุดไฟล์แล้วผลลัพธ์ที่ได้จะเป็น 0
// ถ้ายังไม่สิ้นสุดไฟล์ผลลัพธ์ที่ได้จะไม่เท่ากับ 0
ferror(<ชื่อไฟล์พอยเตอร์>); ตรวจสอบข้อผิดพลาดในขณะที่อ่านหรือเขียน
เช่น
ferror(fpTempData);
// ไม่มีข้อผิดพลาดผลลัพธ์ที่ได้จะเป็น 0
// ถ้ามีข้อผิดพลาดผลลัพธ์ที่ได้จะไม่เท่ากับ 0
rewind(<ชื่อไฟล์พอยเตอร์>); ย้ายตำแหน่งตัวแปรพอยเตอร์ให้ไปชี้ที่ต้นไฟล์
เช่น
rewind(fpTempData);
ftell(<ชื่อไฟล์พอยเตอร์>); ส่งค่ากลับมาเป็นที่อยู่ของตัวแปรไฟล์พอยเตอร์ปัจจุบันมาให้
เช่น
ftell(fpTempData); // จะส่งที่อยู่ของ fpTempData มาให้
remove(<ชื่อไฟล์>); ใช้สำหรับลบไฟล์ออกจากสื่อบันทึกข้อมูล
เช่น
remove("c:\\test.dat");
rename(<ชื่อไฟล์ต้นฉบับ>","<ชื่อไฟล์ใหม่>"); ใช้สำหรับเปลี่ยนชื่อไฟล์
เช่น
rename("c:\\test.dat","c:\\abc.txt");
// ก็จะทำการเปลี่ยนชื่อไฟล์ใน Drive c:\จากชื่อ Test.dat เป็น abc.txt