打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
delphi readline writeln stdout
 //标准输入文件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);                              
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Windows API一日一练(54)WriteFile和ReadFile函数
FlushFileBuffers和SetFilePointer函数
对文件的创建、删除、修改、读取基本操作
亲手打造一个QQ恶作剧程序
WinCE程序C/C++/C#实现带时间标记的日志记录
批处理技术内幕:重定向与句柄 | Demon's Blog
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服