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

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

1 BC322 : computer Programming (Week6) BC322 ครั้งที่ 6 Text file.

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


งานนำเสนอเรื่อง: "1 BC322 : computer Programming (Week6) BC322 ครั้งที่ 6 Text file."— ใบสำเนางานนำเสนอ:

1 1 BC322 : computer Programming (Week6) BC322 ครั้งที่ 6 Text file

2 2 BC322 : computer Programming (Week6) สิ่งที่จะเรียนในวันนี้ - การอ่านข้อมูลจากไฟล์ - การบันทึกข้อมูลลงไฟล์

3 3 BC322 : computer Programming (Week6) แฟ้มข้อมูล (Data File) การรวบรวมข้อมูลที่สัมพันธ์กัน, เกี่ยวข้องกันมา ไว้ที่เดียวกัน เพื่อสะดวกในการเรียกใช้ ค้นหา ข้อมูล ข้อมูลในไฟล์ – แบ่งเป็น Record NameAgeMajor Year Level Sara20BC3 Vevee18MK1 Ken22IB4 1 File 1 Field 1 Record

4 4 BC322 : computer Programming (Week6) ขั้นตอนการบันทึกข้อมูลลงไฟล์ 1. เปิดแฟ้มข้อมูล (Open File) 2. บันทึกข้อมูลลงแฟ้มข้อมูล (Write File) 3. ปิดแฟ้มข้อมูล (Close File)

5 5 BC322 : computer Programming (Week6) ขั้นตอนการอ่านข้อมูลจากไฟล์ 1. เปิดแฟ้มข้อมูล (Open File) 2. อ่านข้อมูลจากแฟ้มข้อมูล (Read File) 3. ปิดแฟ้มข้อมูล (Close File)

6 6 BC322 : computer Programming (Week6) สิ่งที่จะต้องรู้ก่อน ชื่อแฟ้มข้อมูล  ชื่ออะไร นามสกุลอะไร จะทำอะไรกับแฟ้มข้อมูล  อ่าน หรือ บันทึก

7 7 BC322 : computer Programming (Week6) ชนิดของ แฟ้มข้อมูล 1. Text file  ข้อความที่อ่านรู้เรื่อง 2. Binary file  binary data 0,1

8 8 BC322 : computer Programming (Week6) การเปิดแฟ้มข้อมูล (Open File) Pointer-name  ชื่อตัวแปร ที่ชี้ตำแหน่งแรกของ ข้อมูลในไฟล์ filename  ชื่อแฟ้มข้อมูล อยู่ภายใต้เครื่องหมาย “ ” mode  เปิดเพื่อวัตถุประสงค์ใด  อ่านหรือบันทึก รูปแบบ FILE *pointer-name; pointer-name = fopen(“filename”, “mode”);

9 9 BC322 : computer Programming (Week6) mode Modeวัตถุประสงค์ rเปิดแฟ้มข้อมูลสำหรับอ่านข้อมูล wสร้างแฟ้มข้อมูลสำหรับบันทึกข้อมูล aเปิดแฟ้มข้อมูลสำหรับบันทึกข้อมูลต่อจากแฟ้ม เดิม ถ้าไม่มีแฟ้มนี้ –สร้างแฟ้มใหม่ r+เปิดแฟ้มข้อมูลสำหรับการอ่านและบันทึกข้อมูล w+สร้างแฟ้มข้อมูลสำหรับการอ่านและบันทึก ข้อมูล ถ้ามีอยู่แล้วจะเขียนทับข้อมูลเดิม a+เปิดแฟ้มข้อมูลสำหรับอ่านและบันทึกข้อมูล ต่อท้ายจากแฟ้มข้อมูลเดิม

10 10 BC322 : computer Programming (Week6) ตัวอย่าง FILE *fp; fp = fopen(“d:/test.dat”, “w”); เปิดแฟ้มข้อมูลชื่อ test.dat เพื่อบันทึก โดยมี fp – เป็นตัวชี้ตำแหน่งข้อมูล ข้อผิดพลาดของการเปิดแฟ้ม  เปิดไม่ได้ 1. Write protect 2. Disk full 3. ไม่มีแฟ้มข้อมูล หรือใช้ d:\\test.da t

11 11 BC322 : computer Programming (Week6) เทคนิคการตรวจสอบข้อผิดพลาดใน การเปิดไฟล์ข้อมูล FILE *fp; fp = fopen(“test.dat”,”r”); if(fp== NULL) { printf(“Cannot open file\n”); exit(0); } โปรแกรมจบการทำงาน คำสั่ง exit(0); จะใช้ได้ ต้องเพิ่ม #include ที่ต้นโปรแกรม

12 12 BC322 : computer Programming (Week6) การปิดแฟ้มข้อมูล การปิดแฟ้มข้อมูล (Close File) หลังจากสิ้นสุดการใช้งานของแฟ้มข้อมูล ต้อง ปิดแฟ้มข้อมูล หลังจากสิ้นสุดการใช้งานของแฟ้มข้อมูล ต้อง ปิดแฟ้มข้อมูล รูปแบบ fclose(Pointer-name); Pointer-name  ชื่อตัวแปร ที่ชี้ตำแหน่งของข้อมูลในไฟล์

13 13 การบันทึกข้อมูลลง แฟ้มข้อมูล

14 14 BC322 : computer Programming (Week6) คำสั่ง fprintf  เหมือน printf แต่จะแสดงผลในไฟล์  แสดงผลข้อมูลได้ทุกอย่าง เช่น เลขจำนวนเต็ม ทศนิยม ตัวอักษร หรือข้อความ  ต้องระบุตัวแปรไฟล์ที่ต้องการจะแสดงผลลงในนั้น  ใช้คู่กับการเปิดไฟล์แบบ w

15 15 BC322 : computer Programming (Week6) การบันทึกข้อมูลลงแฟ้มข้อมูล fp คือ ชื่อ pointer ที่ทำหน้าที่ในการชี้ข้อมูลในแฟ้ม format คือ format code ตามชนิดของข้อมูล arg-list คือ กลุ่มของตัวแปรที่ใช้มีข้อมูลและต้องการ บันทึกข้อมูลลงในแฟ้มแฟ้มข้อมูล เช่น fprintf(fp, “%s %d %d”, address, a, b); รูปแบบ fprintf(fp, “format”, arg-list);

16 16 BC322 : computer Programming (Week6) Ex1 จงเขียนโปรแกรมเพื่อรับอายุของเพื่อนทางหน้าจอ แล้ว เก็บอายุของเพื่อน ๆ ในห้อง 20 คน ลงในไฟล์ชื่อ Student.dat #include #include void main() { FILE *fp; int Age,i; int Age,i; fp = fopen(“Stduent.dat”,”w”); fp = fopen(“Stduent.dat”,”w”); if(fp == NULL) if(fp == NULL) { printf(“Cannot open file\n”); printf(“Cannot open file\n”); exit(0); exit(0); } for(i = 1;i <= 20;i++) { printf(“Enter Age%d: “,i); scanf(“%d”,&Age); fprintf(fp, “%d\n”,Age); } fclose(fp); }

17 17 BC322 : computer Programming (Week6) Ex2 จงเขียนโปรแกรมเพื่อเปลี่ยนค่าองศาเซลเซียส (C) เป็นองศา โรเมอร์และองศาฟาเรนไฮต์(F) ตั้งแต่ 1 – 10 องศาเซลเซียส ผลลัพธ์การเปลี่ยนค่าให้เก็บไว้ในแฟ้มข้อมูลชื่อ temp.dat CRF

18 18 BC322 : computer Programming (Week6) Solution

19 19 BC322 : computer Programming (Week6) Ex3 : จงเขียนโปรแกรมเพื่อรับ Name,Score ของ นักศึกษา 30 คน เพื่อคำนวณเกรด โดยบันทึกข้อมูล ทั้งหมดลงไฟล์ Test.txt ดังนี้ Anny A Peter F Michael B... เงื่อนไขการคิดเกรด ดังนี้ 71 – 100 A 51 – 70 B 0-50 F

20 20 BC322 : computer Programming (Week6) ตัวอย่าง Data ที่ถูกเก็บลงในไฟล์

21 21 BC322 : computer Programming (Week6) เฉลย Ex3 เฉลย Ex3 Solution

22 22 การอ่านข้อมูลจาก แฟ้มข้อมูล

23 23 BC322 : computer Programming (Week6) คำสั่ง fscanf  เหมือนคำสั่ง scanf แต่จะไปอ่านค่ามาจากไฟล์ แทน  อ่านค่าได้เหมือนปกติ  ใช้คู่กับการเปิดไฟล์แบบ r  จะอ่านข้อมูลจนกว่าจะหมดไฟล์

24 24 BC322 : computer Programming (Week6) การอ่านข้อมูลจากแฟ้มข้อมูล fp คือ ชื่อ pointer ที่ทำหน้าที่ในการชี้ข้อมูลในแฟ้ม format คือ format code ตามชนิดของข้อมูล arg-list คือ กลุ่มของตัวแปรที่ใช้สำหรับเก็บข้อมูลที่ได้ จากแฟ้มข้อมูล ต้องมีเครื่องหมาย & นำหน้า จากแฟ้มข้อมูล ต้องมีเครื่องหมาย & นำหน้า (ข้อมูลหมดได้ EOF) (ข้อมูลหมดได้ EOF) เช่น fscanf(fp, “%s”, address); fscanf(fp, “%d %d”, &a, &b); fscanf(fp, “%d %d”, &a, &b); รูปแบบ fscanf(fp, “format”, arg-list);

25 25 BC322 : computer Programming (Week6) การตรวจสอบข้อมูลในแฟ้มข้อมูล ข้อมูลหมดหรือยัง ? fp คือ ชื่อ pointer ที่ทำหน้าที่ในการชี้ข้อมูลในแฟ้ม ผลลัพธ์ result <> 0  ข้อมูลหมด result = 0  ข้อมูลยังไม่หมด result = feof(fp); รูปแบบ

26 26 BC322 : computer Programming (Week6) #include #include void main() { FILE *fp; FILE *fp; float r, float r, f; int c; int c; clrscr(); clrscr(); fp = fopen("temp.dat","r"); fp = fopen("temp.dat","r"); if(fp == NULL) if(fp == NULL) { printf("Cannot open file\n"); printf("Cannot open file\n"); exit(0); exit(0); } Ex4 จงเขียนโปรแกรมเพื่ออ่านข้อมูลองศาเซลเซียส (C) องศา โรเมอร์และองศาฟาเรนไฮต์(F) จากแฟ้มข้อมูลชื่อ temp.dat แล้ว แสดงผลทางจอภาพ while(!feof(fp)) while(!feof(fp)) { fscanf(fp,"%d%f%f", &c, &r, &f); fscanf(fp,"%d%f%f", &c, &r, &f); printf("%3d%6.2f%8.2f\n", c, r, f); printf("%3d%6.2f%8.2f\n", c, r, f); } fclose(fp); fclose(fp); }

27 27 BC322 : computer Programming (Week6) Ex5 : จงเขียนโปรแกรมอ่านข้อมูลหลาย ๆ ค่า จากไฟล์ #include #include void main() { FILE *fi; FILE *fi; char st1[10],st2[10],st3[10]; char st1[10],st2[10],st3[10]; fi=fopen(“C:/data/contents.txt”, “r”); fi=fopen(“C:/data/contents.txt”, “r”); if(fi==NULL) if(fi==NULL) { printf(“can not open file”); printf(“can not open file”); exit(0); exit(0); } fscanf(fi,”%s%s%s”,st1,st2,st3); fscanf(fi,”%s%s%s”,st1,st2,st3); fclose(fi); fclose(fi); printf(“%s\n”,st1); printf(“%s\n”,st1); printf(“%s\n”,st2); printf(“%s\n”,st2); }

28 28 BC322 : computer Programming (Week6) Ex6 : จงเขียนโปรแกรมเพื่ออ่านข้อมูล 3 ค่าจากไฟล์ Number.dat แล้วหาค่าผลรวมในแต่ละบรรทัดแล้วแสดงผล ทางหน้าจอ Answer Number.dat ผลลัพธ์ทางหน้าจอ

29 29 BC322 : computer Programming (Week6) เฉลย Ex6 Solution

30 30 BC322 : computer Programming (Week6) การอ่านข้อมูลจากไฟล์หนึ่ง เพื่อ แสดงผลในอีกไฟล์หนึ่ง  จะต้องเปิดไฟล์ 2 ไฟล์  ไฟล์แรก เปิดเพื่ออ่านข้อมูลจากไฟล์ (เปิดแบบ r)  ไฟล์ที่สอง เปิดเพื่อแสดงผลข้อมูลลงไฟล์ (เปิดแบบ w)  เมื่อสิ้นสุดการทำงานจะต้องปิดไฟล์ทั้ง 2 ไฟล์

31 31 BC322 : computer Programming (Week6) Ex7 บริษัทแห่งหนึ่งต้องการเขียนโปรแกรมเพื่ออ่านชื่อ แผนก และจำนวนพนักงานจากไฟล์ Exployee.dat และ เพื่อคิดค่าแรงให้กับพนักงาน โดยพนักงานแต่ละคนจะได้ ค่าแรงวันละ 250 บาท แล้วจัดเก็บข้อมูลลงในไฟล์ Wage_emp.dat 4 Marketing 15 Personnel 20 Finance 6 Computer 7 Department Employee Wage = = = = = = = = = Marketing Personnel Finance Computer Employee.dat จำนวน แผนก Wage_emp.dat

32 32 BC322 : computer Programming (Week6) #include #include void main() { FILE *fin,*fout; int Num,Max,i,Wage; int Num,Max,i,Wage; char Dep[10]; char Dep[10]; clrscr(); clrscr(); if(fin == NULL) if(fin == NULL) { printf("Cannot open file\n"); { printf("Cannot open file\n"); exit(0); exit(0); } เฉลย Ex7 Solution

33 33 BC322 : computer Programming (Week6) เฉลย Ex7( ต่อ )

34 34 BC322 : computer Programming (Week6)Quiz โรงแรมแห่งหนึ่ง ต้องการเขียนโปรแกรมเพื่อ อ่านค่าจากไฟล์ Hotel.dat โดยอ่าน รหัส พนักงาน (ID), จำนวนชั่วโมงทำงาน (Hour), อัตราค่าแรง (Rate) เพื่อคิดค่าแรงของพนักงาน (Wage) โดยมี เงื่อนไขดังนี้  ถ้าทำงาน ไม่เกิน 10 ชั่วโมง คิดตามอัตรา ค่าแรงปกติ  ถ้า ชั่วโมง คิดค่าแรง 8 ชั่วโมงแรก เป็นอัตราปกติ ส่วนที่เกิน คิด 1.5 เท่าของ ค่าแรงปกติ  ถ้า มากกว่า 15 ชั่วโมง คิดค่าแรง 8 ชั่วโมง แรกเป็นอัตราปกติ ส่วนที่เกินคิด 2 เท่าของ ค่าแรงปกติ ต่อจากนั้นเก็บ ID และ Wage ลงในไฟล์ Salary.dat

35 35 BC322 : computer Programming (Week6) A A A A A A Hotel.dat Salary.dat ตัวอย่าง input และ output


ดาวน์โหลด ppt 1 BC322 : computer Programming (Week6) BC322 ครั้งที่ 6 Text file.

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


Ads by Google