ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Chapter 7: File แฟ้มข้อมูล Source of slides
บุญชู จิตนุพงศ์ วิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศคณะทรัพยากรและสิ่งแวดล้อม ม.เกษตรศาสตร์ วิทยาเขตศรีราชา Available on :
2
แฟ้มข้อมูล (File)? ขั้นตอนการทางานร่วมกับแฟ้มข้อมูล การเปิดแฟ้มข้อมูล การปิดแฟ้มข้อมูล การอ่านข้อมูลจากแฟ้มข้อมูล การเขียนข้อมูลลงแฟ้มข้อมูล
3
ไฟล์ แฟ้มข้อมูล (File) คือ ที่เก็บข้อมูลถาวร
ก่อนหน้านี้ ข้อมูลที่เรารับค่าและแสดงผลจะถูกบันทึกอยู่ในที่เก็บข้อมูลชั่วขณะเท่านั้น เมื่อโปรแกรมทางานจบ ข้อมูลเหล่านั้นจะหายไป แต่ไฟล์ จะทาให้เราสามารถเก็บข้อมูลสาหรับงานของเราไว้ได้อย่างถาวร เมื่อใดที่เราต้องการเข้าถึงข้อมูลที่ถูกบันทึกไว้ เราจึงสั่งให้โปรแกรมเข้าไปนาค่านั้นๆ ออกมาใช้งาน แบ่งเป็น 2 ประเภท –Text Files แฟ้มข้อมูลที่เก็บข้อมูลในรูปแบบตัวอักษร –Binary Files แฟ้มข้อมูลสาหรับงานของคอมพิวเตอร์
4
เราทำงานกับไฟล์ได้ทั้งการอ่าน หรือ เขียนไฟล์
หากเราสั่งให้โปรแกรมที่เราสร้างขึ้นมาอ่านไฟล์ ข้อมูลจะถูกอ่านขึ้นมาเก็บไว้ในหน่วยความจำก่อนนำไปใช้ หากเราสั่งให้โปรแกรมที่เราสร้างขึ้นมาเขียนไฟล์ ข้อมูลที่เราจะเขียนจะถูกเก็บไว้ในหน่วยความจำก่อนจะถูกเขียนลงไฟล์ เราเรียกหน่วยความจำที่พักนี้ว่า บัฟเฟอร์ (Buffer)
5
ขั้นตอนการทำงาน เปิดแฟ้มข้อมูล (open file)
อ่าน / เขียน ข้อมูล (read / write) ปิดแฟ้มข้อมูล (close file)
6
Open file ประกาศตัวแปร Pointer ชี้ไปที่โครงสร้าง FILE ก่อน FILE *fp;
ระบุชื่อแฟ้มข้อมูล และบอกวัตถุประสงค์ของการใช้แฟ้มข้อมูล fp = fopen(“ชื่อแฟ้ม”, “เงื่อนไขการเปิดแฟ้มข้อมูล”); เช่น fp = fopen(“hello.txt”, “w”);
7
Open file เงื่อนไขการเปิดไฟล์ ความหมาย “r” เปิดไฟล์สำหรับอ่านข้อมูล
“w” เปิดไฟล์สำหรับเขียน/บันทึกทับข้อมูลเดิม “a” เปิดไฟล์สำหรับเขียน/บันทึกข้อมูลเพิ่มเติมต่อจากข้อมูลเดิม “r+” เปิดไฟล์สำหรับอ่านและเขียนทับไฟล์เก่า “w+” สร้างและเปิดไฟล์สำหรับอ่านและเขียนทับไฟล์เก่า “a+” เปิดไฟล์สำหรับอ่านและบันทึกข้อมูลต่อจากข้อมูลเดิม
8
ตัวอย่างการเปิดไฟล์ และเขียนข้อมูลลงไฟล์
#include <stdio.h> main() { FILE *fp; fp = fopen("D:\\file\\hello.txt","w"); if(fp!=NULL){ fprintf(fp,"Hello World \n"); fclose(fp); } else printf("Error writing Hello.txt \n"); return 0;
9
ตัวอย่างการอ่านไฟล์ #include <stdio.h> char c; main() { FILE *fp; fp = fopen("D:\\file\\hello.txt","r"); c = getc(fp); while(c != EOF) { printf("%c", c); }
10
Close file หลังจากการเปิดข้อมูล บันทึก หรือ อ่านข้อมูล จะต้องทำการปิดไฟล์ข้อมูลทุกครั้ง เพื่อทำการบันทึกข้อมูลครั้งสุดท้ายและคืนทรัพยากรให้กับเครื่อง การปิดไฟล์จะได้ฟังก์ชัน fclose() ทำหน้าที่ปิดไฟล์ที่ไฟล์ pointer กำลังชี้อยู่ fclose(fp);
11
การอ่านไฟล์ Character level: getc() – อ่านข้อมูลทีละอักขระ
String level: fgets() – อ่านข้อมูลชนิด String fscanf() – อ่านข้อมูลชนิดจำนวนเต็ม, ทศนิยม, และข้อความ Record level: fread() – อ่านข้อมูลแบบโครงสร้าง หรืออาร์เรย์ได้
12
fscanf() #include <stdio.h> main() { FILE *fp; fp = fopen("D:\\file\\employee.txt","r"); char name[10]; int age,i=1; float salary; while(!feof(fp)){ fscanf(fp,"%s %d %f", name, &age, &salary); printf("%d %s\t\t%d\t%.2f\n", i, name, age, salary); i++; } fclose(fp); return 0; getchar();
13
fprintf() การใช้ฟังก์ชั่นfprintf()
ใช้เขียนข้อมูลในรูปแบบตัวเลขจานวนเต็ม, ตัวเลขจุดทศนิยมและข้อความลงแฟ้มข้อมูลได้ fprintf(fp,control string, variable list); –fp คือชื่อตัวแปรพอยท์เตอร์ –control string คือรูปแบบของการอ่านค่าจากแฟ้ม –variable list คือรายชื่อตัวแปรสาหรับเก็บค่า
14
ตัวอย่าง fprintf(); #include<stdio.h> main() { FILE *fp= fopen("D:\\file\\employee.txt", "a"); char name[20]; int age; float salary; printf("Insert new Employee name: "); scanf("%s", name); printf("Insert new Employee age: "); scanf("%d", &age); printf("Insert new Employee salary: "); scanf("%f", &salary); fprintf(fp, "\n%s%d %.0f", name, age, salary); printf("Added to file"); getchar(); }
15
fwrite(); ใช้เขียนข้อมูลที่อยู่ในรูปแบบข้อมูลชนิดโครงสร้างหรืออาร์เรย์ลงแฟ้มข้อมูลได้ fwrite(&var, size, n, fp); โดย var คือตัวแปรที่เราต้องการบันทึกลงแฟ้มข้อมูล size ขนาดของตัวแปร n จำนวนรอบที่ต้องการเขียน fp คือชื่อตัวแปรพอยท์เตอร์ที่เราชี้ไปยังแฟ้มข้อมูล
16
fwrite & fread #include<stdio.h> typedef struct{ char name[10]; int age; float salary; }EMPLOYEE; main(){ FILE *fp= fopen("D:\\file\\employee.txt", "w"); EMPLOYEE writeEmp, readEmp; printf("Insert new Employee name: "); scanf("%s", writeEmp.name); printf("Insert new Employee age: "); scanf("%d", &writeEmp.age); printf("Insert new Employee salary: "); scanf("%f", &writeEmp.salary); fwrite(&writeEmp, sizeof(EMPLOYEE), 1, fp); fclose(fp); fp= fopen("D:\\file\\employee.txt", "r"); fread(&readEmp, sizeof(EMPLOYEE), 1, fp); printf("Hi %s \n", readEmp.name); printf("%d \n", readEmp.age); printf("%.2f \n", readEmp.salary); getchar(); }
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.