第10章 檔案與資料夾處理 10-1 檔案的基礎 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫 10-4 檔案與資料夾處理.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

計算機程式語言實習課.
檔案與資料存取.
第十三章 文件.
File Access 井民全製作.
第9章 例外與檔案處理 9-4 檔案與資料夾處理 9-5 Java的輸入/輸出串流 9-6 檔案的讀取與寫入.
第13章 檔案與資料夾處理 13-1 System.IO類別的基礎 13-2 檔案與資料夾操作 13-3 文字檔案的讀寫
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C File System.
Speaker: Wen-Ching Lo Date: 2009/12/23
Visual C++ introduction
计算概论 第二十一讲 文件操作 北京大学信息学院.
Chapter 8 檔案.
第12章 伺服器的檔案處理 12-1 System.IO類別的基礎 12-2 檔案與資料夾操作 12-3 文字檔案的寫入
JAVA 程式設計與資料結構 第十二章 JAR File.
JAVA 程式設計與資料結構 第六章 輸出與輸入.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 二元檔輸出入.
C語言簡介 日期 : 2018/12/2.
C 語言簡介 - 2.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
程式設計 博碩文化出版發行.
|13 檔案資料讀寫.
檔案與磁碟的基本介紹.
File(檔案處理) 學習目標:開檔、讀檔、更新檔與關閉檔案.
THE C PROGRAMMING LANGUAGE
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
Chap3 Linked List 鏈結串列.
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
程式設計實習課(四) ----C 函數運用----
研讨课4 文件操作.
PHP5與MySQL4 入門學習指南 凱文瑞克 著 第 16 章 檔案處理.
第一單元 建立java 程式.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
輸入&輸出 函數 P20~P21.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
Unix 指令1.
挑戰C++程式語言 ──第8章 進一步談字元與字串
如何使用Gene Ontology 網址:
引用檔案.
C qsort.
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
挑戰C++程式語言 ──第7章 輸入與輸出.
第14章 結構與其他資料形式.
陣列與結構.
第10章 檔案系統 (file system).
基本指令.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
第13章 文 件.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
結構、檔案處理(Structure, File)
資料表示方法 資料儲存單位.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
SQLite資料庫 靜宜大學資管系 楊子青.
C语言程序设计 第13章 文件操作.
台大資訊工程學系 資訊系統訓練班 第119期 吳晉賢
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
InputStreamReader Console Scanner
Presentation transcript:

第10章 檔案與資料夾處理 10-1 檔案的基礎 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫 10-4 檔案與資料夾處理

10-1 檔案的基礎-說明 「檔案」(Files)是儲存在電腦周邊裝置的位元 組資料集合,通常是儲存在軟硬磁碟機的資料, 程式可以將輸出的資料儲存在檔案中保存,或是 將檔案視為輸入資料讀取檔案內容,檔案的位元 組資料可能被解譯成字元、數值、整數、字串或 資料庫的記錄,取決於程式開啟的檔案存取類型。 C語言標準函式庫的「檔案I/O」(File Input/Output)函數可以處理二種檔案類型:文 字和二進位檔案。

10-1 檔案的基礎-文字檔案(Text Files) 文字檔案儲存的是字元資料,文字檔案視為一種「文字串流」(Text Stream),串流可以想像成水龍頭流出的是一個個字元,也就是說處理文字檔案只能向前一個個循序處理字元,也稱為「循序檔案」(Squential Files),如同水往低處流,並不能回頭處理之前處理過的字元。 文字檔案的處理就是讀取(Input)、寫入(Output)和新增(Append)三種方式,將字元資料寫入檔案與讀取文字檔案的內容。

10-1 檔案的基礎-二進位檔案(Binary Files) 儲存在磁碟機的二進位(Binary)檔和文字檔案並沒有什麼不同,C語言標準函式庫存取的二進位檔是指沒有處理過的「位元組」(Bytes)資料,這種「二進位串流」(Binary Stream)的特性是寫入和讀出檔案的資料完全相同。 二進位檔案可以依需求以循序或「隨機存取」(Random Access)方式進行處理,隨機處理可以將檔案視為一個儲存在記憶體的陣列或結構陣列,只需移動「檔案指標」(File Pointer)到存取的位置,就可以存取資料,如同在陣列使用索引存取陣列元素。

10-2 文字檔案的讀寫 10-2-1 開啟與關閉文字檔案 10-2-2 讀寫字串到文字檔案 10-2-3 讀寫字元到文字檔案 10-2-4 格式化讀寫文字檔案

10-2-1 開啟與關閉文字檔案-函數

10-2-1 開啟與關閉文字檔案-範例 在程式只需宣告FILE指標變數fp,就可以使用fopen()函數開啟檔案,如下所示: fp = fopen("filename", "w"); 函數的第1個參數是檔案名稱或檔案的完整路徑,第2個參數是檔案開啟模式字串,文字檔案支援的開啟模式。

10-2-1 開啟與關閉文字檔案-開啟模式

10-2-1 開啟與關閉文字檔案-檢查檔案是否開啟 fopen()函數傳回NULL表示檔案開啟失敗,可以使用if條件檢查檔案指標,如下所示: if ( fp == NULL ) { printf("檔案開啟失敗....\n"); exit(1); } 最後在執行完檔案操作後,請執行fclose()函數關閉檔案,如下所示: fclose(fp);

10-2-2 讀寫字串到文字檔案-函數

10-2-2 讀寫字串到文字檔案-範例 使用fgets()函數讀取整個檔案內容,可以配合while迴圈來讀取,如下所示: while( fgets(line, 50 ,fp) != NULL ) { } while迴圈以一次一行的方式讀取檔案,每一行最多為50-1即49個字元,直到fgets()函數傳回NULL為止,也就是到達檔尾。

10-2-3 讀寫字元到文字檔案-函數

10-2-3 讀寫字元到文字檔案-範例 使用getc()函數讀取整個檔案內容,一樣可以配合while迴圈來讀取,如下所示: while ((c = getc(fp))!= EOF ) putchar(c); while迴圈以一次一個字元的方式讀取檔案,直到getc()函數傳回EOF為止,也就是到達檔尾。

10-2-4 格式化讀寫文字檔案-函數

10-2-4 格式化讀寫文字檔案-範例 使用fscanf()函數配合while迴圈就可以讀取整個檔案的內容,如下所示: while ( fscanf(fp,"%s", line) != EOF ) printf("%s\n", line); while迴圈以一次讀取一個格式字串的資料,以此例是字串,直到傳回EOF為止,也就是到達檔尾。

10-3 二進位檔案的讀寫 10-3-1 寫入記錄到二進位檔案 10-3-2 循序讀取檔案的記錄 10-3-3 隨機存取記錄資料

10-3 二進位檔案的讀寫-說明 二進位檔案讀寫除了可以使用文字檔案的循序方式存取,還可以使用隨機方式,以記錄為單位進行存取,能夠隨機存取任一筆記錄或更改指定記錄的資料。

10-3 二進位檔案的讀寫-開啟 C語言的二進位檔案也是使用fopen()函數開啟和fclose()函數關閉檔案,只是使用不同的開啟模式字串,在程式宣告FILE指標變數fp後,就可以開啟指定的檔案,如下所示: FILE *fp; fp = fopen("filename", "wb"); 函數開啟檔案filename,第2個參數的檔案開啟模式多了字元'b',表示開啟的是二進位檔案。

10-3 二進位檔案的讀寫-開啟模式

10-3-1 寫入記錄到二進位檔案-結構 隨機存取是以記錄為存取單位,在建立二進位檔案的隨機存取前,C程式需要宣告結構來儲存資料,例如:學生資料的record結構,如下所示: struct record { char name[20]; int age; float score; }; typedef struct record student;

10-3-1 寫入記錄到二進位檔案-函數

10-3-1 寫入記錄到二進位檔案-範例 以student結構為例,如下所示: student temp; ……… fwrite(&temp, sizeof(temp), 1, fp); 程式碼建立結構變數temp,在指定成員變數的值後,呼叫fwrite()函數寫入此結構,&temp取得結構位址,sizeof運算子計算結構大小,以此例就是寫入一筆結構temp到檔案fp。

10-3-2 循序讀取檔案的記錄-函數

10-3-2 循序讀取檔案的記錄-使用 二進位檔案可能儲存多筆記錄,feof()函數是用來檢查是否讀到檔尾,在配合while迴圈後,就可以讀取檔案的所有記錄,如下所示: while ( !feof(fp) ) { } while迴圈讀取檔案直到feof()函數傳回非零值,也就是到達檔尾。

10-3-3 隨機存取記錄資料-函數

10-3-3 隨機存取記錄資料-使用 fseek()函數的offset參數是位移量,可以使用記錄數和結構大小計算而得,如下所示: fseek(fp, rec*sizeof(std), SEEK_SET); 程式碼是從SEEK_SET位置的檔案開頭開始,位移量是rec*sizeof(std)位元組數,其中rec是記錄編號從0開始,使用sizeof運算子計算結構大小,即記錄尺寸,origin參數值有三種,如下: SEEK_SET:從檔案開頭。 SEEK_CUR:從檔案現在的位置。 SEEK_END:從檔案結尾。

10-4 檔案與資料夾處理 10-4-1 更改檔名與刪除檔案 10-4-2 建立、刪除和切換目錄 10-4-3 複製檔案

10-4-1 更改檔名與刪除檔案

10-4-2 建立、刪除和切換目錄

10-4-3 複製檔案 C語言的標準函式庫並沒有提供複製檔案的函數,不過只需使用本章前說明的檔案讀寫函數,在開啟2個檔案指標sfp和dfp後,使用while迴圈就可以複製檔案內容,如下所示: while ( (c = getc(sfp)) != EOF ) putc(c, dfp);