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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างของภาษา C ในโปรแกรมที่พัฒนาด้วยภาษา C ทุกโปรแกรมจะมีโครงสร้างการพัฒนาไม่แตกต่างกัน ซึ่งประกอบด้วย 6 ส่วนหลัก ๆ โดยที่แต่ละส่วนจะมีหน้าที่แตกต่างกัน.
Advertisements

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
ครั้งที่ 9 Function(ต่อ).
Introduction to C Introduction to C.
โครงสร้างโปรแกรมภาษา C
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
BC322 ครั้งที่ 10 ตัวแปรชุด (Array)
Introduction to C Programming
ทบทวน & ลุยโจทย์ (Midterm)
คำสั่ง while และ คำสั่ง do..while
การแสดงผล และการรับข้อมูล การแสดงผล และการรับข้อมูล.
การรับค่าและแสดงผล.
Control Statement for while do-while.
พอยน์เตอร์ (Pointer) Chapter Introduction to Programming
ข้อมูลชนิดโครงสร้าง (Structure Data)
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
6. โครงสร้างข้อมูลแบบแฟ้ม
Structure Programming
การใช้ PHP ติดต่อกับ Text File
Introduction to C Programming.
Week 6 ประกาศค่าตัวแปร.
Week 15 C Programming.
การแสดงผล และการรับข้อมูล
รับและแสดงผลข้อมูล.
รูปแบบโครงสร้างภาษาซี
PHP LANGUAGE.
โครงสร้างภาษาซี.
Lecture no. 10 Files System
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
Week4 Data types, Variables, Operators and Input/output (ต่อ)
บทที่ 12 Structure and union Kairoek choeychuen
C Programming Lecture no. 6: Function.
SCC : Suthida Chaichomchuen
SC131 ภาคต้น 2550 การอ่านและเขียนสตรีม
การจัดการแฟ้มข้อมูล.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
บทที่ 11 การเขียนโปรแกรมภาษาซี
หน่วยที่ 1 พื้นฐานภาษา C
การเขียนโปรแกรมภาษาซี
Introduction to C Language
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ฟังก์ชันรับข้อมูล ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
การรับและพิมพ์ข้อมูลเบื้องต้น
ประวัติความเป็นมาภาษาซี
ตัวแปรกับชนิดของข้อมูล
Week 2 Variables.
การประมวลผลสายอักขระ
Computer Programming for Engineers
2 /* ข้อความนี้เป็นเพียงคำอธิบาย ไม่มีผลต่อขั้นตอนการ ทำงานของโปรแกรม */ /* A simple program to display a line of text */ #include void main ( ) { printf.
โปรแกรม Microsoft Access
การใช้ PHP ติดต่อกับ Text File
คำสั่งเกี่ยวกับการรับ และแสดงผล
หลักการสร้างสรรค์ชุดคำสั่ง ๓
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษาซี
Output of C.
การจัดการแฟ้มข้อมูล.
โครงสร้าง ภาษาซี.
บทที่ 5 Function. Function Function เป็นการแบ่งโค้ดโปรแกรมออกเป็นส่วนย่อยๆ เพื่อทำงานบางอย่าง - โค้ดโปรแกรมเรียงต่อกันยาว - สามารถเรียกใช้ Function ซ้ำได้
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
File & Directory Management การจัดการไฟล์และไดเรคทอรี
PHP Html Form && Query string
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
Chapter 7: File แฟ้มข้อมูล Source of slides
ใบสำเนางานนำเสนอ:

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

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

แฟ้มข้อมูล (Data File) การรวบรวมข้อมูลที่สัมพันธ์กัน, เกี่ยวข้องกันมาไว้ที่เดียวกัน เพื่อสะดวกในการเรียกใช้ ค้นหาข้อมูล ข้อมูลในไฟล์ – แบ่งเป็น Record 1 Field Name Age Major Year Level Sara 20 BC 3 Vevee 18 MK 1 Ken 22 IB 4 1 File 1 Record BC322 : computer Programming (Week6)

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

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

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

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

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

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

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

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

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

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

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

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

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

Ex2 จงเขียนโปรแกรมเพื่อเปลี่ยนค่าองศาเซลเซียส (C) เป็นองศาโรเมอร์และองศาฟาเรนไฮต์(F) ตั้งแต่ 1 – 10 องศาเซลเซียส ผลลัพธ์การเปลี่ยนค่าให้เก็บไว้ในแฟ้มข้อมูลชื่อ temp.dat C R F 1 0.00 32.00 2 1.00 3 2.00 4 3.00 5 4.00 41.00 6 5.00 7 6.00 8 7.00 9 8.00 10 9.00 50.00 BC322 : computer Programming (Week6)

Solution BC322 : computer Programming (Week6)

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

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

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

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

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

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

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

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

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

Ex6 : จงเขียนโปรแกรมเพื่ออ่านข้อมูล 3 ค่าจากไฟล์Number Ex6 : จงเขียนโปรแกรมเพื่ออ่านข้อมูล 3 ค่าจากไฟล์Number.dat แล้วหาค่าผลรวมในแต่ละบรรทัดแล้วแสดงผลทางหน้าจอ Number.dat ผลลัพธ์ทางหน้าจอ 10 20 30 12 13 15 8 10 15 7 13 19 Answer 60 40 33 39 BC322 : computer Programming (Week6)

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

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

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

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

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

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

ตัวอย่าง input และ output Salary.dat Hotel.dat A123 5 120 A325 12 150 A140 8 200 A123 600 A325 1650 A140 1600 ตัวอย่าง input และ output BC322 : computer Programming (Week6)