求助!C++ Builder 读写txt文件中数据问题~~

时间:2021-03-05 11:43:20
菜鸟求助!我需要读取文本文件中的数据,要求读完图头后把各列曲线名和曲线数据对应读取出来(曲线名和曲线数据分别放在两个数组里),从#DEP这行开始读取,尝试了一下午没成功,请各位帮下忙,感谢大家了!
求助!C++ Builder 读写txt文件中数据问题~~

6 个解决方案

#1


不成功 是那里出错?
贴出来看看

#2


看不到图。

#3


求助!C++ Builder 读写txt文件中数据问题~~图呢??

#4


一行一行读出字符串,用substring()和trim()函数判断读取的字符串是不是以#DEP这一行
如果是就读把 

#5


一下是我同学在VC++中帮我写的程序,我想直接把它移植到BCB6中:(tt3中是原数据,tt4保存结果)
 

#include "stdio.h"
#include "iostream.h"
#include "fstream.h"
#include "stdlib.h"
#include "math.h"
void main()

  ifstream ifile;
  ofstream ofiles;
  ofstream ofilen;
  ofstream ofilex;
  int s=1,nzxs=1;
  double start[50],stop[50];
  /*double nzhd[500],nzed[500];*/
  double yxhd[500],yxed[500];
  double xc[1000];
  int b[50],c[50];
  int p[100],q[100];
  int t[500];
  double a[5201][5];
  int i,j,m,n,d,e,f,z;
  double u,v,w;
  i=j=0;
  ifile.open("E:\\tt3.txt",ios::in|ios::nocreate);
  if(!ifile)
  { 
  cout<<"不能打开源文件"<<endl;
  exit(1);
  }

  while(ifile.good())
  { 
  for(j=0;j<5;j++)
  { ifile>>a[i][j]; }
    i++;
  }
  if(ifile.eof())
  cout<<"End of file reached.\n";
  /*for(j=0;j<5;j++) printf("%4.3f\n",a[0][j]);*/
  
   ofiles.open("E:\\tt4.txt",ios::out|ios::nocreate);
  
  i=m=0;
   do 
   { if(a[i][1]<=89.0000&&a[i][2]>=59.5000) 
   {start[m]=a[i][0];b[m]=i;
   do{ i++; }while (a[i][1]<=89.0000&&a[i][2]>=59.5000 );
     stop[m]=a[i-1][0];
     c[m]=i-1;
cout<<"砂岩层"<<s<<"起始深度:"<<start[m]<<endl;
cout<<"砂岩层"<<s<<"终止深度:"<<stop[m]<<endl;
    ofiles<<"        "<<s<<"        "<<start[m]<<"        "<<stop[m]<<"        "<<"砂岩层"<<endl;
m++;s++;i++;
   }
     else i++;
   }while (i<=5201); 
   ofiles.close();
   ifile.close();
}

#6


这个应该不需要移植的吧,应该直接就可以编译的,都用的是c++的基本库

#1


不成功 是那里出错?
贴出来看看

#2


看不到图。

#3


求助!C++ Builder 读写txt文件中数据问题~~图呢??

#4


一行一行读出字符串,用substring()和trim()函数判断读取的字符串是不是以#DEP这一行
如果是就读把 

#5


一下是我同学在VC++中帮我写的程序,我想直接把它移植到BCB6中:(tt3中是原数据,tt4保存结果)
 

#include "stdio.h"
#include "iostream.h"
#include "fstream.h"
#include "stdlib.h"
#include "math.h"
void main()

  ifstream ifile;
  ofstream ofiles;
  ofstream ofilen;
  ofstream ofilex;
  int s=1,nzxs=1;
  double start[50],stop[50];
  /*double nzhd[500],nzed[500];*/
  double yxhd[500],yxed[500];
  double xc[1000];
  int b[50],c[50];
  int p[100],q[100];
  int t[500];
  double a[5201][5];
  int i,j,m,n,d,e,f,z;
  double u,v,w;
  i=j=0;
  ifile.open("E:\\tt3.txt",ios::in|ios::nocreate);
  if(!ifile)
  { 
  cout<<"不能打开源文件"<<endl;
  exit(1);
  }

  while(ifile.good())
  { 
  for(j=0;j<5;j++)
  { ifile>>a[i][j]; }
    i++;
  }
  if(ifile.eof())
  cout<<"End of file reached.\n";
  /*for(j=0;j<5;j++) printf("%4.3f\n",a[0][j]);*/
  
   ofiles.open("E:\\tt4.txt",ios::out|ios::nocreate);
  
  i=m=0;
   do 
   { if(a[i][1]<=89.0000&&a[i][2]>=59.5000) 
   {start[m]=a[i][0];b[m]=i;
   do{ i++; }while (a[i][1]<=89.0000&&a[i][2]>=59.5000 );
     stop[m]=a[i-1][0];
     c[m]=i-1;
cout<<"砂岩层"<<s<<"起始深度:"<<start[m]<<endl;
cout<<"砂岩层"<<s<<"终止深度:"<<stop[m]<<endl;
    ofiles<<"        "<<s<<"        "<<start[m]<<"        "<<stop[m]<<"        "<<"砂岩层"<<endl;
m++;s++;i++;
   }
     else i++;
   }while (i<=5201); 
   ofiles.close();
   ifile.close();
}

#6


这个应该不需要移植的吧,应该直接就可以编译的,都用的是c++的基本库