1. 程式人生 > 實用技巧 >windows程式設計中檔案操作的幾種方法,C,C++,MFC,Win32sdk

windows程式設計中檔案操作的幾種方法,C,C++,MFC,Win32sdk

windows程式設計中檔案操作的幾種方法

2012-11-15 11:28youxin 閱讀(336) 評論(0)編輯收藏

windows程式設計中檔案操作有以下幾種常見方法:


1.C語言中檔案操作。
2.C++語言中的檔案操作。
3.Win32 API函式檔案操作。
4.MFC CFile類檔案操作。
5.MFC CFileDialog類的檔案操作。
6.登錄檔檔案操作。

下面我來詳細說明一下各種檔案操作方法:
1. C語言中檔案操作.需要包含的標頭檔案STDIO.H

寫入檔案:

fread(buffer,size,count,fp));

fwrite(buffer,size,count,,fp);

size:要讀寫的位元組數(記錄的長度).

count:要讀寫多少個size自己的資料項,即讀/寫的記錄數。

返回:已讀入或輸出的項數,即執行成功返回count的值。

例如 fwrite(arr,80,3,fp);

表示從陣列名arr所代表的陣列起始地址開始,每次輸出80B,共輸出3次,即輸出240B,輸出到fp所指向的磁碟檔案中。如果指向成功,返回值為3.


FILE *pfile=fopen("C.txt","w");//以寫的方式開啟C.txt檔案。
fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//將資料寫入檔案。
fflush(pfile);//重新整理緩衝區。將緩衝區資料寫入檔案
fclose(pfile);//關閉檔案


讀取檔案:


FILE *pfile=fopen("C.txt","r");//以讀的方式開啟C.txt檔案。
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
fread(FileContent,1,100,pfile);//將剛才C.txt檔案中的內容讀入到FileContent
MessageBox(FileContent);//輸出結果
fclose(pfile);//關閉檔案

2.C++語言中的檔案操作。需要包含的標頭檔案fstream.h


寫入檔案:


ofstream ofs("C++.txt");//建立ofstream對像。
ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//將資料寫入檔案
ofs.close();//關閉ofstream物件。

  讀取檔案:

ifstream ifs("C++.txt");
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
ifs.read(FileContent,100);//讀取資料
ifs.close();//關閉ifstream對像
MessageBox(FileContent);//輸出結果

3.Win32 API函式檔案操作。需要包含的標頭檔案winbase.h,需要類庫:kernel32.lib

寫入檔案:

HANDLE hFile;//定義一個控制代碼。
hFile=CreateFile("API.txt",
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);//使用CreatFile這個API函式開啟檔案
DWORD Written;
WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//寫入檔案
CloseHandle(hFile);//關閉控制代碼


  讀取檔案:


HANDLE hFile;//定義一個控制代碼。
hFile=CreateFile("API.txt",
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);//使用CreatFile這個API函式開啟檔案
DWORD dwDataLen;
char FileContent[100];
ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//讀取資料
FileContent[dwDataLen]=0;//將陣列未尾設零。
CloseHandle(hFile);//關閉控制代碼
MessageBox(FileContent);//輸出結果

4.MFC CFile類檔案操作。需要包含的標頭檔案afx.h


寫入檔案:

CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//構造CFile物件
file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//寫入資料到檔案
file.Close();//關閉CFile物件。


讀取檔案:


CFile file("CFile.txt",CFile::modeRead);//構造CFile物件
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
file.Read(FileContent,100);//讀入資料
file.Close();//關閉檔案物件
MessageBox(FileContent);//輸出資料

5.MFC CFileDialog類的檔案操作。需要包含的標頭檔案Afxdlgs.h


寫入檔案:

CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog物件
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//構造CFile物件
file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//寫入資料到檔案
file.Close(); 
};


讀取檔案:


CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog物件
if(IDOK==fileDlg.DoModal())
{
CFile file(fileDlg.GetFileName(),CFile::modeRead);//構造CFile物件
char FileContent[100];
memset(FileContent,0,100);//初始化FileContent
file.Read(FileContent,100);//讀入資料
file.Close();//關閉檔案物件
MessageBox(FileContent); 
};

6.登錄檔檔案操作。


    寫入登錄檔:

HKEY hKey;
DWORD dwSex=1;
RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//開啟登錄檔鍵
RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//寫入登錄檔資料
RegCloseKey(hKey);//關閉登錄檔鍵
讀登錄檔:
HKEY hKey;
RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//開啟登錄檔鍵
DWORD dwType;
DWORD dwValue;
DWORD dwSex;
RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查詢登錄檔資料
RegCloseKey(hKey);//關閉登錄檔鍵
CString str;
str.Format("sex=%d",dwSex);
MessageBox(str);