编写函数读取文件中指定位置内容

要求,写一个函数,可以读一个文件里某行的指定位置的字符串

QString Read(QTextStream& ts,int line,int column=0)
{
//使用ts.readLine
//QString中的section函数
//文件内容见 文件内容格式.txt
}
  /*文件内容格式.txt如下:
  aaaaa bbbbb ccccc
  1111 2222 333
  ADFEASD PPPP FDEDSFE
  文件相关解释:
  每行中间间隔\t

  window下换行用2个字符"\r\n"来实现,回车(return)换行(newline)

。二进制代码为0x0D,0x0A。Linux下只需要字符"\n"实现即可,换行(

newline),二进制代码为0x0A。*/



一、VS2005+qt环境
1.通过"项目->属性->链接器->输入->附加依赖项"添加静态库
对某个项目添加库:附加依赖项 :qt-mt338.lib
2.工具->选项->项目个解决方案->VC++目录 下添加静态库
对所有项目有效
二、程序调试:
在需要的行上点右键,选“插入断点”,然后点“启动”(F5)(方案要

配置成Debug,一般默认就是),程序就会在运行到设置断点的地方停

下来,然后点“逐过程”(F10),或“逐语句”(F11)
三、所写程序代码:

#include <qfile.h>
#include <qstring.h>
#include <qtextstream.h>
#include <iostream>
using namespace std;


QString Read(QTextStream& ts,int line=0,int column=0)
{
int index=0;
QString data;

if(index==line)
  { data =ts.readLine();}
else
  {
        while((!ts.eof())&&((index++)!=line))
    {
data =ts.readLine();
    }
data =ts.readLine();
  }

QString s = data.section( "\t", column,column );
return s;
}

int main(int argc,char **argv)

QFile f1("D:/testfile/test/file.txt" );
if (! f1.open( IO_ReadOnly ) )
{
cout<<"打开文件错误!";
return 1;
}
QTextStream stream( &f1 );
    QString ss= Read(stream,2,2);
printf("%s",ss.latin1());
f1.close();
}

你可能感兴趣的:(linux,qt,vc++)