//标准输入文件stdin,标准输出文件stdout,标准错误输出文件stderr,分别得到文件描述符 0, 1, 2
//创建、写入、读取文件。
//蔡军生 2007/10/21 QQ:9073204 深圳
void CreateFileDemo(void)
{
//
HANDLE hFile = ::CreateFile(_T("CreateFileDemo.txt"), //创建文件的名称。
GENERIC_WRITE|GENERIC_READ, // 写和读文件。
0, // 不共享读写。
NULL, // 缺省安全属性。
CREATE_ALWAYS, // 如果文件存在,也创建。
FILE_ATTRIBUTE_NORMAL, // 一般的文件。
NULL); // 模板文件为空。
if (hFile == INVALID_HANDLE_VALUE)
{
//
OutputDebugString(_T("CreateFile fail!/r/n"));
}
//往文件里写数据。
const int BUFSIZE = 4096;
char chBuffer[BUFSIZE];
memcpy(chBuffer,"Test",4);
DWORD dwWritenSize = 0;
BOOL bRet = ::WriteFile(hFile,chBuffer,4,&dwWritenSize,NULL);
if (bRet)
{
//
OutputDebugString(_T("WriteFile 写文件成功/r/n"));
}
//先把写文件缓冲区的数据强制写入磁盘。
FlushFileBuffers(hFile);
//
//从文件里读取数据。
LONG lDistance = 0;
DWORD dwPtr = SetFilePointer(hFile, lDistance, NULL, FILE_BEGIN);
if (dwPtr == INVALID_SET_FILE_POINTER)
{
//获取出错码。
DWORD dwError = GetLastError() ;
//处理出错。
}
DWORD dwReadSize = 0;
bRet = ::ReadFile(hFile,chBuffer,4,&dwReadSize,NULL);
if (bRet)
{
//
OutputDebugString(_T("ReadFile 读文件成功/r/n"));
}
else
{
//获取出错码。
DWORD dwError = GetLastError();
//处理出错。
TCHAR chErrorBuf[1024];
wsprintf(chErrorBuf,_T("GetLastError()=%d/r/n"),dwError);
OutputDebugString(chErrorBuf);
}
}
procedure write(str:string);
Filestream : integer;
begin
Filestream := FileCreate(FileName);
FileWrite(Filestream ,PCHAR(str)^,length(str)+1);
end;
procedure writeln(str:string);
Filestream : integer;
begin
Filestream := FileCreate(FileName);
FileWrite(Filestream ,PCHAR(str+chr($a))^,length(str)+1);
end;
重定向rtl中的Output,然后Writleln就可以向文件输出了
比如:
AssignFile(Output, 'debug.log');
Rewrite(Output);
...
Writeln(blahblah);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。