简单的文件操作读取的问题,很郁闷
一个文件内容是这样的:
FILE === 文件
DIALOG ===对话框
TEXT === 文本
........
要求是将 ===前面的字符一行一行读到一个新文本中去
忘了咋做了,很丢人哦 希望各位帮我实现这个代码, 谢谢了
[解决办法]
忘了咋做了,很丢人哦
[解决办法]
StdioFile::ReadString
[解决办法]
File *fp;
fopen(),fgets()
fclose(fp)
[解决办法]
CStdioFile file;
if(file.Open(fileName,CFile::modeRead))
{
CString fileText;
//读文件
while(file.ReadString(fileText))
{
CString str = fileText.Mid(0,fileText.find( "=== "));
}
}
[解决办法]
CStdioFile sFile(...);
CString strLine;
while (sFile.ReadString(strLine))
{
....
}
[解决办法]
CStdioFile::WriteString
[解决办法]
HANDLE hFile;
//Read from a txt file
hFile=CreateFile(TEXT( "src.txt "), GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(INVALID_HANDLE_VALUE==hFile) return -1;
DWORD dwFileSize=GetFileSize(hFile);
LPTSTR buffer=(LPTSTR)LocalAlloc(LPTR, dwFileSize+1);
if(NULL==buffer) {
CloseHandle(hFile);
return -1;
}
ReadFile(hFile, buffer, dwFileSize, &dwFileSize, NULL);
CloseHandle(hFile);
// Write to a text file
hFile=CreateFile(TEXT( "dest.txt ", GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
if(INVALID_HANDLE_VALUE!=hFile)
{
TCHAR szLine[1024];
LPTSTR pCursor=buffer;
LPTSTR pEnd;
DWORD dwWritten;
szLine[0]=0;
while(pEnd=_tcsstr(pCursor, "=== "))
{
WriteFile(hFile, pCursor, pEnd-pCursor, &dwWritten, NULL);
pCursor=_tcsstr(pEnd+3, TEXT( "\r\n "));
if(NULL==pCursor) break;
WriteFile(hFile, TEXT( "\r\n "), 2, &dwWritten, NULL);
}
CloseHandle(hFile);
LocalFree(buffer);
}