1 / 26

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

6. โครงสร้างข้อมูลแบบแฟ้ม. File Representation Manipulation. แฟ้มข้อมูล (Data File).

niran
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

  9. การเปิดไฟล์ (fopen) โหมดของไฟล์ข้อมูล(open-mode) Text modeBinary 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 , 344-211 Algorithmic Process & Programming

  10. การเปิดไฟล์(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 , 344-211 Algorithmic Process & Programming

  11. การเปิดไฟล์(fopen) ExampleFILE *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 , 344-211 Algorithmic Process & Programming

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

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

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

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

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

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

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

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

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

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

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

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

  25. กำหนดอาเรย์ชื่อ 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 Class Exercise created by Dararat Saeleee , 344-211 Algorithmic Process & Programming

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

More Related