Computer Programming การเขียนโปรแกรมคอมพิวเตอร์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Lecture no. 10 Files System
Advertisements

Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
การเขียนคำสั่งควบคุม การทำงานขั้นพื้นฐาน
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
BC322 : Computer Programing (ครั้งที่ 1)
Operator of String Data Type
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
คำสั่ง ในระบบ DOS (Disk Operating System)
องค์ประกอบของคอมพิวเตอร์
Streams. Formatted output cout
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
MEE 231 Computer Programming สัปดาห์ที่ 6 ภาษา C หลักการของโปรแกรม ชนิดของตัวแปร การดำเนินการ คำสั่งการรับค่าตัวแปร และการแสดงผล.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
MTH 261 File Management. File Management File Management จะอธิบายเกี่ยวกับการเขียน ส่วนจัดการแฟ้มข้อมูล เราสามารถที่จะเขียน โปรแกรมเพื่อเรียกใช้แฟ้มข้อมูลที่เรามี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
งานวิชา เทคโนโลยี สารสนเทศ 4/3 เรื่อง INPUT และ OUTPUT จัดทำโดย นาย ชาญชัย ศรีน้อย เลขที่ 3 นาย ณัฐดนัย จันทมาศ เลขที่ 4 นาย อุดมศักดิ์ เกื้อนะ เลขที่
คำสั่งควบคุมการทำงาน
Chapter 10 Data Files.
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
เกม คณิตคิดเร็ว.
โครงสร้างโปรแกรมภาษา C
บทที่ 9 การออกแบบและเขียนโปรแกรมอย่างง่ายเพื่อ ประยุกต์ใช้ในธุรกิจ
การจัดการโปรเซส T.Kunlaya Charoenmongkonvilai
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 5 อินพุตและเอาต์พุต
โปรแกรมย่อย อาจารย์สมเกียรติ ช่อเหมือน
องค์ประกอบและเทคนิคการทำงาน
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
ครูวีรธรรม เทศประสิทธิ์ แผนกวิชาคอมพิวเตอร์ธุรกิจ
การประยุกต์ Logic Gates ภาค 2
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
บทที่ 1 โครงสร้างคอมพิวเตอร์พื้นฐาน
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Basic Input Output System
บทที่ 13 การจัดการไฟล์ (File Management)
ตัวแปรกับชนิดของข้อมูล
คำสั่ง Create , Insert, Delete, Update
บทที่ 8 การควบคุมระบบสารสนเทศทางการบัญชี : การควบคุมเฉพาะระบบงาน
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
บริษัท พัฒนาวิชาการ (2535) จำกัด
การเขียนภาษาจาวาเบื้องต้น
Week 5 C Programming.
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)
Array: One Dimension Programming I 9.
ฟังก์ชันของโปรแกรม Computer Game Programming
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Chapter 7: File แฟ้มข้อมูล Source of slides
Decision: Single and Double Selection (if and if-else statement)
พอยเตอร์ #include <stdio.h> void main() { int age; int *pointer;
Computer Game Programming
ใบสำเนางานนำเสนอ:

Computer Programming การเขียนโปรแกรมคอมพิวเตอร์ สัปดาห์ที่ 13 ไฟล์ข้อมูลตัวอักษร (Text File)

objectives เพื่อให้นิสิตรู้จักและเข้าใจการทำงานเกี่ยวกับไฟล์ข้อมูลตัวอักษรในภาษาซี สามารถเขียนโปรแกรมภาษาซีโดยให้ทำงานร่วมกับไฟล์ข้อมูลตัวอักษรได้ สามารถนำความรู้เรื่องไฟล์ข้อมูลตัวอักษรไปประยุกต์เพื่อแก้ไขโจทย์ปัญหาในชีวิตประจำวันได้ได้อย่างถูกต้องเหมาะสม

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Text File 5 Write Text File

C Programming Structure พรีโปรเซสเซอร์ไดเร็คทีฟ #include<file.h> type function_name(type); type variable; int main() { statement-1; ... statement-n; return 0; } type function_name(type variable) return(var); ฟังก์ชันโพรโทรไทพ์ ส่วนหัวโปรแกรม ตัวแปรชนิดโกบอล ตัวแปรชนิดโลคอล ฟังก์ชันหลัก คำสั่ง ส่วนตัวโปรแกรม ฟังก์ชันย่อย

Text File ไฟล์ข้อมูลถูกสร้างขึ้นเพื่อเก็บรวบรวมข้อมูลต่างๆ เข้าไว้ด้วยกัน ไฟล์ข้อมูลมักจะถูกเก็บอยู่ในหน่วยความจำภายนอก เช่น Hard Disk, CD หรือ DVD เป็นต้น เมื่อคอมพิวเตอร์ทำการอ่าน (read) ข้อมูลจะถูกสำเนาจากอุปกรณ์ภายนอกเข้ามายังหน่วยความจำภายใน เมื่อคอมพิวเตอร์ทำการบันทึก (write) ข้อมูลจะถูกสำเนาจากหน่วยความจำภายในไปยังอุปกรณ์ภายนอก

Text File (cont.) ในการเคลื่อนย้ายข้อมูลนี้จะมีการใช้พื้นที่หน่วยความจำที่กันเอาไว้สำหรับงานนี้เป็นพิเศษ ซึ่งเรียกว่า “buffer” เนื่องจากการอ่านหรือนำข้อมูลจากอุปกรณ์ภายนอกนั้น ในบางครั้งจะได้จำนวนข้อมูลที่มากกว่าที่จะป้อนเข้าโปรแกรมในครั้งเดียว ในทางกลับกันเมื่อโปรแกรมต้องการบันทึกข้อมูลลงฮาร์ดดิสค์ buffer จะทำหน้าที่ในการพักข้อมูลไว้จนกว่าจะมีข้อมูลจำนวนที่มากพอที่จะบันทึกลงฮาร์ดดิสค์ การทำงานที่เกี่ยวข้องกับ buffer จะดูแลโดยโปรแกรมพิเศษที่เราเรียกกันว่า “device drivers” ซึ่งโปรแกรมนี้จะให้มาโดยผู้สร้างอุปกรณ์ต่างๆ หรือมาพร้อมกับ Operating System โปรแกรมภาษา C จะมองข้อมูลที่ส่งมาจากอุปกรณ์ (e.g. keyboard) หรือไฟล์ว่าเป็นสายของข้อมูล (data stream) และเมื่อโปรแกรมต้องการส่งข้อมูลให้กับอุปกรณ์ (e.g. CRT) หรือไฟล์ก็จะส่งเป็นสายข้อมูลไปให้ ในระหว่างการรับส่งข้อมูลกับ buffer หากมีข้อผิดพลาดเกิดขึ้นก็จะทำให้มีข้อมูลบางส่วนตกค้างอยู่ใน buffer

Flush Data of Input Buffer #define FLUSH while (getchar() != ‘\n’) ………….. printf(\nPlease enter Number of Units Sold: “); while ( scanf(“%d”, &unitsSold) != 1) { // scanf returns 1 if number read correctly FLUSH; printf(“\aInvalid number. Please re-enter: “); }

C Programming & Text File Data Destination Program File or CRT Output Text Stream Data Data Source Program File or Keyboard Input Text Stream Data

Type of Data Stream ภาษา C จะแบ่ง data stream ออกเป็น 2 ประเภท คือ สายข้อมูลตัวอักษร (Text Stream) เป็นสายข้อมูลตัวอักษรที่มนุษย์สามารถอ่านได้ ข้อมูลจะอยู่ในรูปแบบของรหัส ASCII (ตัวอักษร) เช่น A, B,…,Z, a, b,…,z, 0,1,…, 9 และอักษรพิเศษ โดยที่สายข้อมูลตัวอักษรจะแบ่งออกเป็นบรรทัดๆ แต่ละบรรทัดปิดท้ายด้วยรหัส \n สายข้อมูลไบนารี่ (Binary Stream) เป็นสายข้อมูลชนิดต่างๆ เช่น intger, real, complex ซึ่งข้อมูลต่างๆเหล่านี้จะเก็บอยู่ในรูปแบบที่คอมพิวเตอร์จะเข้าใจ เช่น 2’s Complement

Basic Knowledge of Text File File เป็นสิ่งที่มีชื่อและ Operating System รู้จัก Stream เป็นสิ่งที่มีชื่อเหมือนกัน โดยที่ Stream ถูกสร้างโดยโปรแกรม ในการประมวลผลหรือทำงานเกี่ยวกับไฟล์จะต้องมีการเชื่อมโยงระหว่าง Stream และ File เข้าด้วยกัน

Text File Process ขั้นตอนการทำงานในการประมวลผลเกี่ยวกับไฟล์ ประกอบด้วย 4 ขั้นตอนหลัก คือ ทำการสร้าง File Stream Pointer ตัวอย่างคำสั่ง File* fp; ทำการเปิดไฟล์โดยการเชื่อม File Name เข้ากับชื่อของ Stream Name ตัวอย่างคำสั่ง fp = fopen(“c:\\MyFile.DAT”,”r”); ทำการอ่านหรือบันทึกข้อมูลลงไฟล์ผ่านทางชื่อ Stream ตัวอย่างคำสั่ง fscanf(fp,”%d %d %d”,&date,&month,&year); ทำการปิดไฟล์ ตัวอย่างคำสั่ง fclose(fp);

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Text File 5 Write Text File

How to open file? FILE คือ ประเภทข้อมูลแบบโครงสร้างที่กำหนดไว้ให้แล้วใน stdio.h * คือ เครื่องหมายที่แสดงว่าเป็นตัวแปร Pointer fp คือ ชื่อตัวแปรพอยน์เตอร์ไปยังไฟล์ Stream (file stream pointer) name คือ ชื่อของไฟล์ที่ทำการเปิด mode คือ โหมดของการจัดการกับไฟล์ หมายเหตุ ชื่อของ file stream pointer ที่ระบบกำหนดให้แล้วใน stdio.h ได้แก่ stdin (standard input stream), stdout (standard output stream) และ stderr (standard error stream) FILE* fp; fp = fopen("name", "mode");

Mode of File Management r เป็นการเปิดเท็กซ์ไฟล์เพื่ออ่าน (Read) ถ้าไม่มีไฟล์อยู่ก็จะเกิดสถานะ fail EOF File Stream Pointer

Mode of File Management (cont.) w เป็นการสร้างไฟล์เพื่อเขียน (Write) ถ้าไฟล์นั้นมีอยู่แล้วจะลบข้อมูลเดิมทั้งหมด ถ้าไม่มีไฟล์นั้นจะทำการสร้างเท็กซ์ไฟล์ใหม่ EOF File Stream Pointer

Mode of File Management (cont.) a เป็นการ เปิด หรือ สร้าง ไฟล์เพื่อเขียนเพิ่ม (Append) ถ้าไฟล์นั้นมีอยู่แล้วจะเป็นการเขียนข้อมูลต่อท้าย ถ้าไม่มีไฟล์นั้นจะทำการสร้างเท็กซ์ไฟล์ใหม่ EOF File Stream Pointer

Mode of File Management (cont.) r+ เป็นการเปิดไฟล์เพื่อ Update (อ่านและเขียนข้อมูล) ถ้าไม่มีไฟล์อยู่ก็จะเกิดสถานะ fail ตัวชี้ตำแหน่งจะชี้ไปที่ตำแหน่งเริ่มต้นของไฟล์ w+ เป็นการสร้างไฟล์เพื่อ Update (อ่านและเขียนข้อมูล) ถ้าไฟล์นั้นมีอยู่แล้วจะลบข้อมูลเดิมทั้งหมด ถ้าไม่มีไฟล์นั้นจะทำการสร้างเท็กซ์ไฟล์ใหม่เพื่อ Update a+ เป็นการเปิดหรือสร้างไฟล์เพื่อ Update (อ่านและเขียนข้อมูล) ถ้าไฟล์นั้นมีอยู่แล้วการเขียนจะเขียนต่อท้ายข้อมูลเดิม ตัวชี้ตำแหน่งจะชี้ไปยังตำแหน่งท้ายสุด (EOF: End Of File)

Example 1 จงเขียนโปรแกรมเพื่อเปิดไฟล์ข้อมูล ใช้โปรแกรม Notepad สร้างไฟล์ข้อมูล บันทึกเป็นชื่อ test.txt เก็บไว้ที่ C:\Temp\ เขียนโปรแกรมเพื่อเปิดไฟล์ข้อมูล

ไม่ได้อยู่ที่ Directory เดียวกับ โปรแกรม Wrong Directory #include<stdio.h> #include<conio.h> int main() { FILE *fp; fp = fopen(“test.txt","r"); if (fp == NULL) { printf("Cannot open file\n"); return 0; } else printf("Can open file\n"); กรณีที่ไฟล์ test.txt ไม่ได้อยู่ที่ Directory เดียวกับ โปรแกรม Cannot open file

Correct Directory Can open file_ #include<stdio.h> #include<conio.h> int main() { FILE *fp; fp = fopen("C:/Temp/test.txt","r"); if (fp == NULL) { printf("Cannot open file\n"); return 0; } else printf("Can open file\n"); Can open file_

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Text File 5 Write Text File

fp คือ ตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์สตรีม How to close file ? fp คือ ตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์สตรีม ผลลัพธ์ของฟังก์ชั่น fclose() หากสามารถปิดไฟล์ได้สำเร็จจะ return ค่า 0 กลับ แต่หากไม่สำเร็จจะ return ค่า EOF (โดยปกติคือค่า -1) fclose (fp);

Open & Close File Example #include<stdio.h> #include<conio.h> int main() { FILE *fp; fp = fopen("C:/Temp/test.txt","r"); if (fp == NULL) { printf("Cannot open file\n"); return 0; } printf("Can open file\n"); if (!fclose(fp)) printf("\nClose file\n"); Can open file Close file _

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Data Stream 5 Write Data Stream

fp คือตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream Read Text File Format fp คือตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream format คือ การกำหนดรูปแบบในการอ่านข้อมูลขึ้นมาจากไฟล์ เช่น อ่านข้อมูลเป็นชนิด int หรือ double variable คือ ตัวแปรที่เก็บค่าข้อมูลจากไฟล์ (จะต้องกำหนด แอดเดรสของตัวแปรโดยใช้สัญลักษณ์ & เสมอ) fscanf (fp,"format",&variable);

จงเขียนโปรแกรมเพื่อเปิดไฟล์ข้อมูลเพื่ออ่านข้อมูลและแสดงผล Example 2 จงเขียนโปรแกรมเพื่อเปิดไฟล์ข้อมูลเพื่ออ่านข้อมูลและแสดงผล ใช้โปรแกรม Notepad สร้างไฟล์ข้อมูล บันทึกเป็น test.txt เก็บไว้ที่ C:\Temp\

Read Single String Can open file Close file _226101_ _ #include<stdio.h> #include<conio.h> int main() { FILE *fp; char str[8]; fp = fopen("C:/Temp/test.txt","r"); if (fp == NULL) printf("Cannot open file\n"); return 0; } printf("Can open file\n"); //read data to str variable fscanf(fp,"%s",str); if (!fclose(fp)) printf("\nClose file\n"); printf("%s",str); Can open file Close file _226101_ _

Read Sentence _226101 C Programming _ #include<stdio.h> #include<conio.h> int main() { FILE *fp; char str1[8],str2[2],str3[14]; fp = fopen("C:/Temp/test.txt","r"); if (fp == NULL) printf("Cannot open file\n"); return 0; } printf("Can open file\n"); //read data to str variable fscanf(fp,"%s%s%s",str1,str2,str3); if (!fclose(fp)) printf("\nClose file\n"); printf("%s %s %s",str1,str2,str3); _226101 C Programming _

Read Character Pro _ #include<stdio.h> #include<conio.h> int main() { FILE *fp; char ch1,ch2,ch3; fp = fopen("C:/Temp/test.txt","r"); if (fp == NULL) printf("Cannot open file\n"); return 0; } printf("Can open file\n"); fscanf(fp,"%c%c%c",&ch1,&ch2,&ch3); if (!fclose(fp)) printf("\nClose file\n"); printf("%c%c%c",ch1,ch2,ch3); Pro _

Read Text File (String & Integer) #include<stdio.h> #include<conio.h> int main() { FILE *fp; char str1[2],str2[14]; long int num; fp = fopen("C:/Temp/test.txt","r"); if (fp == NULL) printf("Cannot open file\n"); return 0; } printf("Can open file\n"); fscanf(fp,"%lu%s%s",&num,str1,str2); if (!fclose(fp)) printf("\nClose file\n"); printf("%lu %s %s",num,str1,str2); _226101 C Programming _

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Data Stream 5 Write Data Stream

fp คือตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream Write Text File Format fp คือตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream format คือ การกำหนดรูปแบบของข้อมูลที่จะเขียนลงไฟล์ variable คือ ค่าที่ต้องการเขียนลงไฟล์ (ไม่ต้องมี & ) fprintf (fp,"format",value);

Example 3 จงเขียนโปรแกรม 1. เพื่อรับข้อมูล ชื่อ และอายุของคน 3 คน 1. เพื่อรับข้อมูล ชื่อ และอายุของคน 3 คน 2. เก็บข้อมูลใน C:\Temp\new.txt 3. นำข้อมูลจากไฟล์มาแสดงผล * หลังจากนั้นให้เปิดไฟล์ new.txt เพื่อตรวจสอบผล

#include<stdio.h> #include<conio.h> int main() { FILE *fp; char name[20],ch; int age,count=0; fp = fopen("C:/Temp/new.txt","w"); if (fp == NULL) printf("Cannot open file\n"); return 0; } printf("Can open file (write)\n"); /*input data in program & write on file*/ while(count<3) printf ("Enter name : "); scanf ("%s",name); printf ("Enter age : "); scanf ("%d",&age); fprintf (fp,"%-20s %d\n",name,age); count++; if (!fclose(fp)) printf("\nClose file\n");

fp = fopen("C:/Temp/new.txt","r"); if (fp == NULL) { printf("Cannot open file\n"); return 0; } printf("Can open file (read)\n"); // Print data by each character do { ch = getc(fp); printf("%c",ch); } while (ch!=EOF); if (!fclose(fp)) printf("\nClose file\n");

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Binary Stream 5 Write Binary Stream

Read Structure or Array from Binary Stream dest คือ ตำแหน่งของตัวแปร Structure หรือ Array ที่ใช้เก็บค่าที่อ่านจากไฟล์ size คือ ขนาดของตัวแปร Structure หรือ Array ที่ต้องการอ่านเข้ามา items คือ จำนวนของ Structure หรือ Array ที่ต้องการจะอ่านจากไฟล์ stream คือ ตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream int fread(dest,size,items,stream); หมายเหตุ : fread จะ return ค่าเป็นจำนวน bytes ที่อ่านได้ และจะ return 0 มันทำการอ่านจนถึงตำแหน่งสุดท้ายของไฟล์

Example 5 Name: Kmitl ID: 48010000 and Age: 45 int main() { FILE *fptr; struct student { char name[20]; char ID[9]; int age; }s; fptr = fopen("StRecord.txt", "r"); if (fptr == (FILE *)NULL) printf("Cannot open file\n"); else while (fread(&s,sizeof(struct student),1,fptr)!=0) { printf("Name: %s\n", s.name); printf("ID: %s and Age: %d\n", s.ID,s.age); printf("---------------------------------\n"); } fclose(fptr); return 0; } Name: Kmitl ID: 48010000 and Age: 45 --------------------------------

Outline 1 Text File 2 Open Text File 3 Close Text File 4 Read Binary Stream 5 Write Binary Stream

Write Structure or Array into Binary Stream ptr คือ ตำแหน่งของตัวแปร Structure หรือ Array ในหน่วยความจำ (Address) ที่ต้องการจะเขียนลงไฟล์ size คือ ขนาดของตัวแปร Structure หรือ Array items คือ จำนวนของ Structure หรือ Array ที่ต้องการจะเขียนลงไฟล์ stream คือ ตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream int fwrite(ptr,size,items,stream);

Example 4 Name : Kmitl ID : 48010000 Age : 45_ int main() { FILE *fptr; struct student { char name[20]; char ID[9]; int age; } s; fptr = fopen("StRecord.txt", "w"); printf("Name : "); scanf("%s",s.name); printf("ID : "); scanf("%s",s.ID); printf("Age : "); scanf("%d",&s.age); fwrite(&s, sizeof(struct student), 1, fptr); fclose(fptr); return 0; } Name : Kmitl ID : 48010000 Age : 45_

Reposition Stream Position Indicator stream คือ ตัวแปรพอยน์เตอร์ที่ชี้ไปยังไฟล์ Stream offset คือ ระยะที่ต้องการให้ตัวชี้ตำแหน่งในไฟล์เคลื่อนไปในแต่ละครั้ง where เป็นกำหนดตำแหน่งของตัวชี้ตำแหน่งในไฟล์ มีได้ 3 ค่าคือ 0 : ตัวชี้ตำแหน่งในไฟล์เริ่มต้นที่ตำแหน่งแรกสุดของไฟล์ 1 : ตัวชี้ตำแหน่งในไฟล์เริ่มต้นที่ตำแหน่งปัจจุบัน 2 : ตัวชี้ตำแหน่งในไฟล์เริ่มต้นที่ตำแหน่งสุดท้ายของไฟล์ int fseek(stream, offset, where); หมายเหตุ : fseek จะ return 0 ถ้าสามารถเลื่อนตัวชี้ตำแหน่งในไฟล์ได้สำเร็จ และจะ return ค่า int ใด ๆ ที่ไม่เท่ากับ 0 เมื่อดำเนินการตาม parameter ไม่สำเร็จ

Example 6 FILE *fptr; int noffset; struct student { char name[20]; char ID[9]; int age; } s; fptr = fopen("StRecord.txt", "w"); strcpy (s.name,"Student A"); strcpy (s.ID,"48010000"); s.age = 17; fwrite(&s, sizeof(struct student), 1, fptr); strcpy (s.name,"Student B"); strcpy (s.ID,"48012000"); s.age = 18; strcpy (s.name,"Student C"); strcpy (s.ID,"48015000"); s.age = 20; fclose(fptr);

Example 6 (cont.) fptr = fopen("StRecord.txt", "r"); noffset = 0 * sizeof(struct student); if (fseek( fptr, noffset, 0) == 0 ) { if (fread(&s,sizeof(struct student),1,fptr) != 0) { printf("Name: %s\n", s.name); printf("ID: %s and Age: %d\n", s.ID,s.age); printf("---------------------------------\n"); } fclose(fptr); Name: Student A ID: 48010000 and Age: 17 ---------------------------------

Example 6 (cont.) fptr = fopen("StRecord.txt", "r"); noffset = 1 * sizeof(struct student); if (fseek( fptr, noffset, 0) == 0 ) { if (fread(&s,sizeof(struct student),1,fptr) != 0) { printf("Name: %s\n", s.name); printf("ID: %s and Age: %d\n", s.ID,s.age); printf("---------------------------------\n"); } fclose(fptr); Name: Student B ID: 48012000 and Age: 18 ---------------------------------

Example 6 (cont.) fptr = fopen("StRecord.txt", "r"); noffset = 2 * sizeof(struct student); if (fseek( fptr, noffset, 0) == 0 ) { if (fread(&s,sizeof(struct student),1,fptr) != 0) { printf("Name: %s\n", s.name); printf("ID: %s and Age: %d\n", s.ID,s.age); printf("---------------------------------\n"); } fclose(fptr); Name: Student C ID: 48015000 and Age: 20 ---------------------------------

Summary Read & Write Function การอ่านและเขียนข้อมูลตามชนิดของข้อมูล fscanf (fp,"format",&variable); fprintf (fp,"format",value); การอ่านและเขียนข้อมูลจาก Array ชี้โดย ptr fread(*ptr,size,items,*stream); fwrite(*ptr,size,items,*stream);

The Other Function of Text File การอ่านและเขียนข้อมูลตัวอักษร var = fgetc(fp); //var = getc(fp); fputc (ch,fp); //putc (ch,fp); คำสั่ง getchar() และ putchar() ใช้ได้กับสตรีม stdin และ stdout เท่านั้น การอ่านและเขียนข้อมูลที่เป็นข้อความ fgets(var,length,fp); fputs (str,fp); การอ่านจะอ่านข้อความขนาดไม่เกิน length-1

#include<stdio.h> #include<conio.h> FILE * file_open(char[],char[]); void file_close(FILE *); FILE * file_open(char filename[],char mode[]) { FILE *fp; fp = fopen(filename,mode); if (fp == NULL) printf("Cannot open file\n"); return (NULL); } printf("Can open file\n"); return (fp); void file_close(FILE *fp) if (!fclose(fp)) printf("\nClose file\n");

int main() { char file[]="Text.txt"; //Filename char mode[]="r"; //mode FILE *fp; //File pointer fp = file_open(file,mode); file_close(fp); return 0; }