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

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

Created by Dararat Saeleee, 344-211 Algorithmic Process & Programming 1/57 6. โครงสร้างข้อมูลแบบ แฟ้ม  File Representation Representation Manipulation.

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


งานนำเสนอเรื่อง: "Created by Dararat Saeleee, 344-211 Algorithmic Process & Programming 1/57 6. โครงสร้างข้อมูลแบบ แฟ้ม  File Representation Representation Manipulation."— ใบสำเนางานนำเสนอ:

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

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

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

4 created by Dararat Saeleee, Algorithmic Process & Programming 4/57 แฟ้มข้อมูล (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

5 created by Dararat Saeleee, Algorithmic Process & Programming 5/57 ตัวอย่างการใช้งานไฟล์ 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 mean  sum / count 5. write count, mean to output file 6. Close Files 7. end

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

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

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

9 created by Dararat Saeleee, Algorithmic Process & Programming 9/57 การเปิดไฟล์ (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 สร้างไฟล์ เพื่อเขียนต่อท้ายข้อมูลเดิม

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

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

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

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

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

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

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

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

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

19 created by Dararat Saeleee, Algorithmic Process & Programming 19/5 7 ตัวอย่างการใช้งานไฟล์ 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);

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

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

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

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

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

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

26 created by Dararat Saeleee, Algorithmic Process & Programming 26/5 7


ดาวน์โหลด ppt Created by Dararat Saeleee, 344-211 Algorithmic Process & Programming 1/57 6. โครงสร้างข้อมูลแบบ แฟ้ม  File Representation Representation Manipulation.

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


Ads by Google