งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

6. โครงสร้างข้อมูลแบบแฟ้ม

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "6. โครงสร้างข้อมูลแบบแฟ้ม"— ใบสำเนางานนำเสนอ:

1 6. โครงสร้างข้อมูลแบบแฟ้ม
File Representation Manipulation created by Dararat Saeleee , Algorithmic Process & Programming

2 แฟ้มข้อมูล (Data File)
เป็นรูปแบบการจัดเก็บข้อมูลอย่างต่อเนื่องไว้บนหน่วยความจำสำรอง โดยรวบรวมข้อมูลที่เกี่ยวข้องหรือสัมพันธ์กันมาไว้ในที่เดียวกัน ภายใต้ชื่อไฟล์ที่กำหนดขึ้น เพื่อสะดวกในการใช้งาน ได้แก่ การอ่าน (Reading) และการเขียน (Writing) ข้อมูลภายในไฟล์ created by Dararat Saeleee , Algorithmic Process & Programming

3 แฟ้มข้อมูล (Data File)
ขั้นตอนการกระทำกับไฟล์ข้อมูล แบ่งได้เป็น 3 ขั้นตอนใหญ่ๆ ดังนี้ 1. เปิดไฟล์ข้อมูล (Opening File) 2. อ่าน (Reading) หรือเขียน (Writing) ไฟล์ข้อมูล 3. ปิดไฟล์ข้อมูล (Closing File) created by Dararat Saeleee , Algorithmic Process & Programming

4 แฟ้มข้อมูล (Data File)
คำสั่งกระทำกับไฟล์ข้อมูล 1. Open input file filename1 , output file filename2 2. Read var.1, var.2, … from input file 3. Write var.1, var.2, … to output file 3. Close Files created by Dararat Saeleee , Algorithmic Process & Programming

5 ตัวอย่างการใช้งานไฟล์
Algorithm Exfile. 1. Open input file data , output file outfile 2. sum  0 , count  0 3. Loop (not end of file) 3.1 read name , score from input file 3.2 sum  sum + score 3.3 count  count + 1 4. mean  sum / count 5. write count , mean to output file 6. Close Files 7. end created by Dararat Saeleee , Algorithmic Process & Programming

6 ฟังก์ชันภาษาซีที่ใช้ทำงานกับไฟล์
fopen fclose fscanf fprintf fgetc , fgets fputc created by Dararat Saeleee , Algorithmic Process & Programming

7 การประกาศตัวแปรไฟล์ข้อมูล
รูปแบบ FILE *fp; โดยที่ FILE = ประโยคที่ระบุว่าจะมีการใช้ไฟล์ข้อมูล *fp = ตัวแปร pointer ที่ชี้ยังไฟล์ข้อมูล File pointer created by Dararat Saeleee , Algorithmic Process & Programming

8 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming
การเปิดไฟล์ (fopen) รูปแบบ fp = fopen (filename, open-mode) เมื่อ filename = ชื่อไฟล์ข้อมูลที่ต้องการใช้งาน open-mode = กำหนดลักษณะการกระทำกับไฟล์ข้อมูล หมายเหตุ ถ้าเปิดไฟล์ข้อมูลไม่สำเร็จ ฟังก์ชัน fopen จะส่งค่า NULL กลับมา created by Dararat Saeleee , Algorithmic Process & Programming

9 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming
การเปิดไฟล์ (fopen) โหมดของไฟล์ข้อมูล (open-mode) Text mode Binary mode ความหมาย r หรือ rt rb เปิดไฟล์เพื่ออ่านอย่างเดียว w หรือ wt wb เปิดไฟล์เพื่อเขียนอย่างเดียว a หรือ at ab เปิดไฟล์เพื่อเขียนต่อท้ายข้อมูลเดิม r+ หรือ r+t r+b เปิดไฟล์เพื่ออ่านและเขียน w+ หรือ w+t w+b สร้างไฟล์เพื่ออ่านและเขียน a+ หรือ a+t a+b สร้างไฟล์เพื่อเขียนต่อท้ายข้อมูลเดิม created by Dararat Saeleee , Algorithmic Process & Programming

10 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming
การเปิดไฟล์ (fopen) เช่น FILE *fp, *inf, *outf; fp = fopen (“income.dat”, “r”); inf = fopen(“f:/algor/input.dat”, “r”); outf = fopen (“output.dat”, “w”); created by Dararat Saeleee , Algorithmic Process & Programming

11 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming
การเปิดไฟล์ (fopen) Example FILE *fp; fp = fopen (“test.txt”, “w”); หรือ FILE *fp; if (( fp= fopen (“test.txt”,”w”)) == NULL) { printf (“Error opening file.”); exit (-1); } created by Dararat Saeleee , Algorithmic Process & Programming

12 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming
การปิดไฟล์ (fclose) รูปแบบ fclose (fp); เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล Example FILE *fp; fp = fopen (“test.txt”,”w”); .... fclose (fp); created by Dararat Saeleee , Algorithmic Process & Programming

13 การบันทึกข้อมูลลงไฟล์ (fprintf)
รูปแบบ fprintf (fp,“format”,variables); เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล format = รูปแบบการบันทึกข้อมูล variables = ตัวแปรที่มีค่าข้อมูลที่จะบันทึกลงไฟล์ created by Dararat Saeleee , Algorithmic Process & Programming

14 การบันทึกข้อมูลลงไฟล์ (fprintf)
ตัวอย่าง fprintf (fp, “%d”, num); fprintf (outf, “%d %s”, num, name); fprintf (ofp,”%s %f”, std.name, std.score); created by Dararat Saeleee , Algorithmic Process & Programming

15 การอ่านข้อมูลจากไฟล์ (fscanf)
รูปแบบ fscanf (fp,“format”,variables); เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล format = รูปแบบการอ่านข้อมูล variables = ตัวแปรที่รับค่าข้อมูลที่อ่านขึ้นมาจากไฟล์ created by Dararat Saeleee , Algorithmic Process & Programming

16 การอ่านข้อมูลจากไฟล์ (fscanf)
เช่น fscanf (fp, “%d”, &num); fscanf (inf, “%d %s”, &num, name); fscanf (ifp,”%s %f”, std.name, &std.score); created by Dararat Saeleee , Algorithmic Process & Programming

17 การตรวจสอบจุดสิ้นสุดไฟล์ (feof)
เป็นการตรวจสอบการสิ้นสุดของข้อมูลในไฟล์หรือการจบไฟล์ ถ้าสิ้นสุดไฟล์แล้ว จะส่งตัวเลขที่ ‘ไม่ใช่ 0’ กลับมา รูปแบบ feof (fp); เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล created by Dararat Saeleee , Algorithmic Process & Programming

18 การตรวจสอบจุดสิ้นสุดไฟล์ (feof)
เช่น fscanf (….); while (!feof (fp)) { …. } created by Dararat Saeleee , Algorithmic Process & Programming

19 ตัวอย่างการใช้งานไฟล์
FILE *ifp , *ofp; int sum = 0; count = 0; ifp = fopen (“data.dat”,”r”); ofp = fopen (“outfile.dat”,”w”); fscanf (ifp,”%s %d”, name, &score); while (! feof (ifp)) { sum += score; count++; fscanf (ifp,”%s %d”,name, &score); } mean = (float) sum / count; fprintf (ofp,”%d %f”,count , mean); fclose (ifp); fclose (ofp); created by Dararat Saeleee , Algorithmic Process & Programming

20 การประมวลผลไฟล์ข้อมูลแบบข้อความ
ฟังก์ชันสำหรับอ่านข้อมูลจากไฟล์ในรูปแบบข้อความ (String) เข้ามาเก็บที่ตัวแปรอาร์เรย์ หรือจนกว่าจะพบ “\n” หากเกิดข้อผิดพลาด จะส่งค่า null กลับมา รูปแบบ fgets (var,num,fp); เมื่อ var = ตัวแปรอาร์เรย์เก็บข้อความที่อ่านจากไฟล์ num = จำนวนไบต์ข้อมูลที่ต้องการอ่านต่อครั้ง fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล created by Dararat Saeleee , Algorithmic Process & Programming

21 ฟังก์ชันใช้สำหรับข้อความ (String)
เช่น char data [20]; char infor [80]; fgets (data, 20, fp); fgets (infor, 80, stdin); created by Dararat Saeleee , Algorithmic Process & Programming

22 การประมวลผลไฟล์ข้อมูลแบบข้อความ
ฟังก์ชันสำหรับบันทึกข้อมูลเป็นข้อความลงในไฟล์ รูปแบบ fputs (var,fp); เมื่อ var = ตัวแปรอาร์เรย์เก็บข้อความที่จะบันทึกลงไฟล์ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล หากเกิดข้อผิดพลาด จะส่งค่า null กลับมา created by Dararat Saeleee , Algorithmic Process & Programming

23 ฟังก์ชันใช้สำหรับข้อความ (String)
เช่น char data [20]; char infor [80]; fputs (data, fp); fputs (infor, stdout); created by Dararat Saeleee , Algorithmic Process & Programming

24 ฟังก์ชันใช้สำหรับตรวจสอบข้อผิดพลาด
ferror() เป็นการตรวจสอบการผิดพลาดที่เกิดขึ้นจากการอ่านข้อมูล ถ้าเกิดการผิดพลาดขึ้น จะส่งค่าตัวเลขที่ไม่ใช่ 0 กลับมา รูปแบบ ferror (fp); เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล created by Dararat Saeleee , Algorithmic Process & Programming

25 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming
Class Exercise กำหนดอาเรย์ชื่อ table มีค่าดังนี้ A B B C C D D E นศ.คนหนึ่งต้องการโปรแกรมช่วยคำนวณเกรดเฉลี่ยเพื่อวางแผนการเรียน จึงขอให้ท่านเขียนโปรแกรม อ่านข้อมูลรหัสวิชา ชื่อรายวิชา จำนวนหน่วยกิตและเกรดที่ได้ของแต่ละรายวิชา (จำนวนหน่วยกิตอาจเท่ากับ 1,2,3,4 และไม่ทราบจำนวนรายวิชา) จากแฟ้มข้อมูล คำนวณหาค่าเกรดเฉลี่ยโดยใช้อาเรย์ table created by Dararat Saeleee , Algorithmic Process & Programming

26 created by Dararat Saeleee , 344-211 Algorithmic Process & Programming


ดาวน์โหลด ppt 6. โครงสร้างข้อมูลแบบแฟ้ม

งานนำเสนอที่คล้ายกัน


Ads by Google