slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
6. โครงสร้างข้อมูลแบบแฟ้ม PowerPoint Presentation
Download Presentation
6. โครงสร้างข้อมูลแบบแฟ้ม

Loading in 2 Seconds...

play fullscreen
1 / 26

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


  • 149 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '6. โครงสร้างข้อมูลแบบแฟ้ม' - niran


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

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

File

Representation

Manipulation

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

data file
แฟ้มข้อมูล(Data File)

เป็นรูปแบบการจัดเก็บข้อมูลอย่างต่อเนื่องไว้บนหน่วยความจำสำรอง โดยรวบรวมข้อมูลที่เกี่ยวข้องหรือสัมพันธ์กันมาไว้ในที่เดียวกัน ภายใต้ชื่อไฟล์ที่กำหนดขึ้น เพื่อสะดวกในการใช้งาน ได้แก่ การอ่าน (Reading) และการเขียน (Writing) ข้อมูลภายในไฟล์

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

data file1
แฟ้มข้อมูล(Data File)

ขั้นตอนการกระทำกับไฟล์ข้อมูล

แบ่งได้เป็น 3 ขั้นตอนใหญ่ๆ ดังนี้

1. เปิดไฟล์ข้อมูล (Opening File)

2. อ่าน (Reading) หรือเขียน (Writing) ไฟล์ข้อมูล

3. ปิดไฟล์ข้อมูล (Closing File)

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

data file2
แฟ้มข้อมูล(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

slide5
ตัวอย่างการใช้งานไฟล์ตัวอย่างการใช้งานไฟล์

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

slide6
ฟังก์ชันภาษาซีที่ใช้ทำงานกับไฟล์ฟังก์ชันภาษาซีที่ใช้ทำงานกับไฟล์
  • fopen
  • fclose
  • fscanf
  • fprintf
  • fgetc , fgets
  • fputc

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

slide7
การประกาศตัวแปรไฟล์ข้อมูลการประกาศตัวแปรไฟล์ข้อมูล

รูปแบบ FILE *fp;

โดยที่

FILE = ประโยคที่ระบุว่าจะมีการใช้ไฟล์ข้อมูล

*fp = ตัวแปร pointer ที่ชี้ยังไฟล์ข้อมูล

File pointer

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

fopen
การเปิดไฟล์ (fopen)

รูปแบบ

fp = fopen (filename, open-mode)

เมื่อ filename = ชื่อไฟล์ข้อมูลที่ต้องการใช้งาน

open-mode = กำหนดลักษณะการกระทำกับไฟล์ข้อมูล

หมายเหตุ

ถ้าเปิดไฟล์ข้อมูลไม่สำเร็จ ฟังก์ชัน fopenจะส่งค่า

NULL กลับมา

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

fopen1
การเปิดไฟล์ (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

fopen2
การเปิดไฟล์(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

fopen3
การเปิดไฟล์(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

fclose
การปิดไฟล์ (fclose)

รูปแบบ fclose (fp);

เมื่อfp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

ExampleFILE *fp;

fp = fopen (“test.txt”,”w”);

....

fclose (fp);

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

fprintf
การบันทึกข้อมูลลงไฟล์ (fprintf)

รูปแบบ

fprintf (fp,“format”,variables);

เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

format = รูปแบบการบันทึกข้อมูล

variables = ตัวแปรที่มีค่าข้อมูลที่จะบันทึกลงไฟล์

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

fprintf1
การบันทึกข้อมูลลงไฟล์(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

fscanf
การอ่านข้อมูลจากไฟล์(fscanf)การอ่านข้อมูลจากไฟล์(fscanf)

รูปแบบ

fscanf (fp,“format”,variables);

เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

format = รูปแบบการอ่านข้อมูล

variables = ตัวแปรที่รับค่าข้อมูลที่อ่านขึ้นมาจากไฟล์

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

fscanf1
การอ่านข้อมูลจากไฟล์(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

slide17
การตรวจสอบจุดสิ้นสุดไฟล์(feof)การตรวจสอบจุดสิ้นสุดไฟล์(feof)

เป็นการตรวจสอบการสิ้นสุดของข้อมูลในไฟล์หรือการจบไฟล์ ถ้าสิ้นสุดไฟล์แล้ว จะส่งตัวเลขที่ ‘ไม่ใช่ 0’กลับมา

รูปแบบ feof (fp);

เมื่อfp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

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

slide18
การตรวจสอบจุดสิ้นสุดไฟล์(feof)การตรวจสอบจุดสิ้นสุดไฟล์(feof)

เช่น

fscanf (….);

while (!feof (fp)) {

….

fscanf (….);

}

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

slide19
ตัวอย่างการใช้งานไฟล์ตัวอย่างการใช้งานไฟล์

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

slide20
การประมวลผลไฟล์ข้อมูลแบบข้อความการประมวลผลไฟล์ข้อมูลแบบข้อความ

ฟังก์ชันสำหรับอ่านข้อมูลจากไฟล์ในรูปแบบข้อความ (String)

เข้ามาเก็บที่ตัวแปรอาร์เรย์ หรือจนกว่าจะพบ “\n”

หากเกิดข้อผิดพลาด จะส่งค่า null กลับมา

รูปแบบfgets (var,num,fp);

เมื่อ var = ตัวแปรอาร์เรย์เก็บข้อความที่อ่านจากไฟล์

num = จำนวนไบต์ข้อมูลที่ต้องการอ่านต่อครั้ง

fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

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

string
ฟังก์ชันใช้สำหรับข้อความ (String)

เช่น char data [20];

char infor [80];

fgets (data, 20, fp);

fgets (infor, 80, stdin);

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

slide22
การประมวลผลไฟล์ข้อมูลแบบข้อความการประมวลผลไฟล์ข้อมูลแบบข้อความ

ฟังก์ชันสำหรับบันทึกข้อมูลเป็นข้อความลงในไฟล์

รูปแบบfputs (var,fp);

เมื่อvar = ตัวแปรอาร์เรย์เก็บข้อความที่จะบันทึกลงไฟล์

fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

หากเกิดข้อผิดพลาด จะส่งค่า null กลับมา

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

string1
ฟังก์ชันใช้สำหรับข้อความ (String)

เช่น char data [20];

char infor [80];

fputs (data, fp);

fputs (infor, stdout);

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

slide24
ฟังก์ชันใช้สำหรับตรวจสอบข้อผิดพลาดฟังก์ชันใช้สำหรับตรวจสอบข้อผิดพลาด

ferror()

เป็นการตรวจสอบการผิดพลาดที่เกิดขึ้นจากการอ่านข้อมูล ถ้าเกิดการผิดพลาดขึ้น จะส่งค่าตัวเลขที่ไม่ใช่ 0 กลับมา

รูปแบบ ferror (fp);

เมื่อ fp = ตัวแปร pointer ที่ชี้ไปยังไฟล์ข้อมูล

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

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

Class Exercise

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