admin 发表于 2024-3-16 09:51:13

ObjectARX中读写txt文件的一个类实例

//#include "fileSimpleClass.h"
#pragma once
#include "stdafx.h"
//
#include "Convert.h"

#ifndef 采用fileSimpleClass采用H采用
#define 采用fileSimpleClass采用H采用

class fileSimpleClass
{
public:
        Convert cvt;
   
       //打印函数
        void pfvalue采用default(const ACHAR* filepath);

        //打印文件内容2 函数
        void pfvalue2(const ACHAR* filepath);

        //写入文件内容到txt文件中
        void pfvalueWriteLine(char* line);
};
//-----只引用一次头文件才可以把定义类和实现类功能放在一个文件中
//类成员实现
//-----------------------------
//打印文件内容1C文件操作函数   OK (和读取的文件内容一样)
void fileSimpleClass::pfvalue采用default(const ACHAR* filepath)
{
          acutPrintf(采用T("\n-----下面是c文件操作函数打开的内容-----\n"));          
          acutPrintf(filepath);acutPrintf(采用T("\n"));
      FILE *fp;
          int linesize=4000;
          char *line;line=new char;
          const char* path=cvt.ConvertAcharPtrToCharPtr(filepath);
          ACHAR* wtmp=cvt.ConvertCharPtrToAcharPtr(path);          
          acutPrintf(wtmp);acutPrintf(采用T("\n"));
          if((fp=fopen(path,"r"))==NULL)
          {
                  acutPrintf(采用T("\nfile cannot be opened\n"));                  
          }          
          else
          {
                  const ACHAR* tmp;
                  while(!feof(fp))
                  {
                          if(fgets(line,linesize,fp)!=NULL)
                          {
                                  tmp=cvt.ConvertCharPtrToAcharPtr(line);
                                  acutPrintf(tmp);
                                  pfvalueWriteLine(line);
                          }
                  }
                  fclose(fp);
          }
}

//打印文件内容2ifstream类      OK (空行自动去掉)
void fileSimpleClass::pfvalue2(const ACHAR* filepath)
{       
       //--file2 open
       //filepath="d:\\test.txt";
        acutPrintf(ACRX采用T("\n"));
        acutPrintf(filepath);
        ifstream r(filepath,ifstream.in);
       if(!r)
       {
               acutPrintf(ACRX采用T("打开文件出错!"));
       }
       else
       {
               const ACHAR* tmpAchar;
               //char line;   //2000
               int linesize=4000;
               char* line;line=new char;
               while(r>>line)
               {       
                          tmpAchar=cvt.ConvertCharPtrToAcharPtr(line);
                          acutPrintf(tmpAchar);                          
                          acutPrintf(ACRX采用T("\n"));
               }
               r.close();       
               acutPrintf(ACRX采用T("输出文件内容完毕!"));
       }
};
void fileSimpleClass::pfvalueWriteLine(char* line)
{
        char* fpath="d:\\testwrite.txt";
        ofstream w(fpath,ofstream.app);
        if(!w)
        {
      acutPrintf(ACRX采用T("打开文件出错!"));
        }
        else
        {
                w.write(line,strlen(line));                
                w.flush();
                w.close();               
        }
};

#endif
页: [1]
查看完整版本: ObjectARX中读写txt文件的一个类实例